Documentation ¶
Index ¶
- func Case() expr.CaseChain[Expression, Expression]
- func Delete(queryMods ...bob.Mod[*dialect.DeleteQuery]) bob.BaseQuery[*dialect.DeleteQuery]
- func F(name string, args ...any) mods.Moddable[*dialect.Function]
- func Insert(queryMods ...bob.Mod[*dialect.InsertQuery]) bob.BaseQuery[*dialect.InsertQuery]
- func RawQuery(q string, args ...any) bob.BaseQuery[expr.Clause]
- func Select(queryMods ...bob.Mod[*dialect.SelectQuery]) bob.BaseQuery[*dialect.SelectQuery]
- func Update(queryMods ...bob.Mod[*dialect.UpdateQuery]) bob.BaseQuery[*dialect.UpdateQuery]
- func UseSchema(ctx context.Context, schema string) context.Context
- func WhereAnd[Q Filterable](whereMods ...mods.Where[Q]) mods.Where[Q]
- func WhereOr[Q Filterable](whereMods ...mods.Where[Q]) mods.Where[Q]
- type Expression
- func And(args ...bob.Expression) Expression
- func Arg(args ...any) Expression
- func ArgGroup(args ...any) Expression
- func Cast(exp bob.Expression, typname string) Expression
- func Concat(args ...bob.Expression) Expression
- func Group(exps ...bob.Expression) Expression
- func Not(exp bob.Expression) Expression
- func Or(args ...bob.Expression) Expression
- func Placeholder(n uint) Expression
- func Quote(ss ...string) Expression
- func Raw(query string, args ...any) Expression
- func S(s string) Expression
- type Filterable
- type Loader
- type PreloadOption
- type PreloadSettings
- type Preloader
- type Table
- func (t *Table[T, Tslice, Tset]) Delete(queryMods ...bob.Mod[*dialect.DeleteQuery]) *orm.Query[*dialect.DeleteQuery, T, Tslice]
- func (t *Table[T, Tslice, Tset]) Insert(queryMods ...bob.Mod[*dialect.InsertQuery]) *orm.Query[*dialect.InsertQuery, T, Tslice]
- func (t *Table[T, Tslice, Tset]) Update(queryMods ...bob.Mod[*dialect.UpdateQuery]) *orm.Query[*dialect.UpdateQuery, T, Tslice]
- type View
- type ViewQuery
- type WhereMod
- func (w WhereMod[Q, C]) EQ(val C) mods.Where[Q]
- func (w WhereMod[Q, C]) GT(val C) mods.Where[Q]
- func (w WhereMod[Q, C]) GTE(val C) mods.Where[Q]
- func (w WhereMod[Q, C]) ILike(val C) mods.Where[Q]
- func (w WhereMod[Q, C]) In(slice ...C) mods.Where[Q]
- func (w WhereMod[Q, C]) LT(val C) mods.Where[Q]
- func (w WhereMod[Q, C]) LTE(val C) mods.Where[Q]
- func (w WhereMod[Q, C]) Like(val C) mods.Where[Q]
- func (w WhereMod[Q, C]) NE(val C) mods.Where[Q]
- func (w WhereMod[Q, C]) NotIn(slice ...C) mods.Where[Q]
- type WhereNullMod
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Case ¶ added in v0.29.0
func Case() expr.CaseChain[Expression, Expression]
SQL: CASE WHEN a THEN b ELSE c END Go: psql.Case().When("a", "b").Else("c")
func Delete ¶
func Delete(queryMods ...bob.Mod[*dialect.DeleteQuery]) bob.BaseQuery[*dialect.DeleteQuery]
func F ¶
F creates a function expression with the given name and args
SQL: generate_series(1, 3) Go: psql.F("generate_series", 1, 3)
func Insert ¶
func Insert(queryMods ...bob.Mod[*dialect.InsertQuery]) bob.BaseQuery[*dialect.InsertQuery]
func Select ¶
func Select(queryMods ...bob.Mod[*dialect.SelectQuery]) bob.BaseQuery[*dialect.SelectQuery]
func Update ¶
func Update(queryMods ...bob.Mod[*dialect.UpdateQuery]) bob.BaseQuery[*dialect.UpdateQuery]
func UseSchema ¶ added in v0.15.0
UseSchema modifies a context to add a schema that will be used when a tablle/view was generated with an empty schema
Types ¶
type Expression ¶ added in v0.2.0
type Expression = dialect.Expression
func And ¶
func And(args ...bob.Expression) Expression
SQL: a AND b AND c Go: psql.And("a", "b", "c")
func ArgGroup ¶ added in v0.15.0
func ArgGroup(args ...any) Expression
SQL: ($1, $2, $3) Go: psql.ArgGroup("a", "b", "c")
func Cast ¶ added in v0.28.0
func Cast(exp bob.Expression, typname string) Expression
SQL: CAST(a AS int) Go: psql.Cast("a", "int")
func Concat ¶
func Concat(args ...bob.Expression) Expression
SQL: a || b || c Go: psql.Concat("a", "b", "c")
func Quote ¶
func Quote(ss ...string) Expression
SQL: "table"."column" Go: psql.Quote("table", "column")
func Raw ¶
func Raw(query string, args ...any) Expression
SQL: where a = $1 Go: psql.Raw("where a = ?", "something")
func S ¶
func S(s string) Expression
S creates a string literal SQL: 'a string' Go: psql.S("a string")
type Filterable ¶ added in v0.13.0
type Filterable interface {
AppendWhere(...any)
}
type Loader ¶ added in v0.13.0
type Loader = internal.Loader[*dialect.SelectQuery]
Loader builds a query mod that makes an extra query after the object is retrieved it can be used to prevent N+1 queries by loading relationships in batches
type PreloadOption ¶ added in v0.13.0
type PreloadOption = internal.PreloadOption[*dialect.SelectQuery]
Modifies preloading relationships
func PreloadAs ¶ added in v0.27.0
func PreloadAs(alias string) PreloadOption
func PreloadExcept ¶ added in v0.20.0
func PreloadExcept(cols ...string) PreloadOption
func PreloadOnly ¶ added in v0.20.0
func PreloadOnly(cols ...string) PreloadOption
func PreloadWhere ¶ added in v0.20.0
func PreloadWhere(f ...func(from, to string) []bob.Expression) PreloadOption
type PreloadSettings ¶ added in v0.19.0
type PreloadSettings = internal.PreloadSettings[*dialect.SelectQuery]
Settings for preloading relationships
type Preloader ¶ added in v0.13.0
type Preloader = internal.Preloader[*dialect.SelectQuery]
Preloader builds a query mod that modifies the original query to retrieve related fields while it can be used as a queryMod, it does not have any direct effect. if using manually, the ApplyPreload method should be called with the query's context AFTER other mods have been applied
func Preload ¶ added in v0.13.0
func Preload[T any, Ts ~[]T](rel orm.Relationship, cols []string, opts ...PreloadOption) Preloader
type Table ¶ added in v0.13.0
type Table[T orm.Model, Tslice ~[]T, Tset setter[T]] struct { *View[T, Tslice] BeforeInsertHooks bob.Hooks[Tset, bob.SkipModelHooksKey] AfterInsertHooks bob.Hooks[Tslice, bob.SkipModelHooksKey] BeforeUpdateHooks bob.Hooks[Tslice, bob.SkipModelHooksKey] AfterUpdateHooks bob.Hooks[Tslice, bob.SkipModelHooksKey] BeforeDeleteHooks bob.Hooks[Tslice, bob.SkipModelHooksKey] AfterDeleteHooks bob.Hooks[Tslice, bob.SkipModelHooksKey] InsertQueryHooks bob.Hooks[*dialect.InsertQuery, bob.SkipQueryHooksKey] UpdateQueryHooks bob.Hooks[*dialect.UpdateQuery, bob.SkipQueryHooksKey] DeleteQueryHooks bob.Hooks[*dialect.DeleteQuery, bob.SkipQueryHooksKey] // contains filtered or unexported fields }
The table contains extract information from the struct and contains caches ???
func (*Table[T, Tslice, Tset]) Delete ¶ added in v0.13.0
func (t *Table[T, Tslice, Tset]) Delete(queryMods ...bob.Mod[*dialect.DeleteQuery]) *orm.Query[*dialect.DeleteQuery, T, Tslice]
Starts a Delete query for this table
type View ¶ added in v0.13.0
type View[T any, Tslice ~[]T] struct { AfterSelectHooks bob.Hooks[Tslice, bob.SkipModelHooksKey] SelectQueryHooks bob.Hooks[*dialect.SelectQuery, bob.SkipQueryHooksKey] // contains filtered or unexported fields }
func (*View[T, Tslice]) Name ¶ added in v0.13.0
func (v *View[T, Tslice]) Name() Expression
func (*View[T, Tslice]) NameAs ¶ added in v0.15.0
func (v *View[T, Tslice]) NameAs() bob.Expression
type ViewQuery ¶ added in v0.13.0
type ViewQuery[T any, Ts ~[]T] struct { orm.Query[*dialect.SelectQuery, T, Ts] }
type WhereMod ¶ added in v0.13.0
type WhereMod[Q Filterable, C any] struct { // contains filtered or unexported fields }
func Where ¶ added in v0.13.0
func Where[Q Filterable, C any](name Expression) WhereMod[Q, C]
type WhereNullMod ¶ added in v0.13.0
func WhereNull ¶ added in v0.13.0
func WhereNull[Q Filterable, C any](name Expression) WhereNullMod[Q, C]
func (WhereNullMod[Q, C]) IsNotNull ¶ added in v0.13.0
func (w WhereNullMod[Q, C]) IsNotNull() mods.Where[Q]
func (WhereNullMod[Q, C]) IsNull ¶ added in v0.13.0
func (w WhereNullMod[Q, C]) IsNull() mods.Where[Q]