Files
Gumble-Backend/internal/util/db/where_in.go
Zane Walker 7e940c83a7
Some checks failed
Build & Test / build-test (push) Has been cancelled
Build & Test / swagger-codegen-cli (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
(Feat): Initial Commit
2026-07-03 19:41:31 +05:30

26 lines
1.0 KiB
Go

package db
import (
"fmt"
"github.com/aarondl/sqlboiler/v4/queries/qm"
"github.com/lib/pq"
)
// WhereIn was a copy from sqlboiler's WHERE IN query helpers since these don't get generated for nullable columns.
// Since sqlboilers IN query helpers will set a param for earch element in the slice we reccomment using this packages IN.
func WhereIn(tableName string, columnName string, slice []string) qm.QueryMod {
return IN(fmt.Sprintf("%s.%s", tableName, columnName), slice)
}
// IN is a replacement for sqlboilers IN query mod. sqlboilers IN will set a param for
// each element in the slice and we do not recommend to use this, because it will run into driver and
// database limits. While the sqlboiler IN fails at about ~10000 params this was tested with over 1000000.
func IN(path string, slice []string) qm.QueryMod {
return qm.Where(fmt.Sprintf("%s = any(?)", path), pq.StringArray(slice))
}
func NIN(path string, slice []string) qm.QueryMod {
return qm.Where(fmt.Sprintf("%s <> all(?)", path), pq.StringArray(slice))
}