Documentation ¶
Index ¶
- func LoadExceptColumns(cols ...string) exceptColumnsOpt
- func LoadOnlyColumns(cols ...string) onlyColumnsOpt
- func NewEagerLoadSettings[T any, Ts ~[]T](cols orm.Columns) eagerLoadSettings
- type EagerLoadOption
- type EagerLoader
- type Filterable
- type Loader
- type Table
- func (t *Table[T, Tslice, Topt]) Delete(ctx context.Context, exec scan.Queryer, row T) (int64, error)
- func (t *Table[T, Tslice, Topt]) DeleteMany(ctx context.Context, exec scan.Queryer, rows ...T) (int64, error)
- func (t *Table[T, Tslice, Topt]) Insert(ctx context.Context, exec scan.Queryer, row Topt) (T, error)
- func (t *Table[T, Tslice, Topt]) InsertMany(ctx context.Context, exec scan.Queryer, rows ...Topt) (Tslice, error)
- func (t *Table[T, Tslice, Topt]) Query(queryMods ...bob.Mod[*psql.SelectQuery]) *TableQuery[T, Tslice, Topt]
- func (t *Table[T, Tslice, Topt]) Update(ctx context.Context, exec scan.Queryer, columns *orm.Columns, row T) (T, int64, error)
- func (t *Table[T, Tslice, Topt]) UpdateMany(ctx context.Context, exec scan.Queryer, vals Topt, rows ...T) (Tslice, int64, error)
- func (t *Table[T, Tslice, Topt]) Upsert(ctx context.Context, exec scan.Queryer, updateOnConflict bool, ...) (T, error)
- func (t *Table[T, Tslice, Topt]) UpsertMany(ctx context.Context, exec scan.Queryer, updateOnConflict bool, ...) (Tslice, error)
- type TableQuery
- type View
- type ViewQuery
- func (f *ViewQuery[T, Tslice]) All(ctx context.Context, exec scan.Queryer) (Tslice, error)
- func (f *ViewQuery[T, Tslice]) Count(ctx context.Context, exec scan.Queryer) (int64, error)
- func (f *ViewQuery[T, Tslice]) Cursor(ctx context.Context, exec scan.Queryer) (scan.ICursor[T], error)
- func (f *ViewQuery[T, Tslice]) Exists(ctx context.Context, exec scan.Queryer) (bool, error)
- func (f *ViewQuery[T, Tslice]) One(ctx context.Context, exec scan.Queryer) (T, error)
- type WhereMod
- func (w WhereMod[Q, C]) EQ(val C) bob.Mod[Q]
- func (w WhereMod[Q, C]) GT(val C) bob.Mod[Q]
- func (w WhereMod[Q, C]) GTE(val C) bob.Mod[Q]
- func (w WhereMod[Q, C]) IN(slice ...C) bob.Mod[Q]
- func (w WhereMod[Q, C]) LT(val C) bob.Mod[Q]
- func (w WhereMod[Q, C]) LTE(val C) bob.Mod[Q]
- func (w WhereMod[Q, C]) NE(val C) bob.Mod[Q]
- func (w WhereMod[Q, C]) NIN(slice ...C) bob.Mod[Q]
- type WhereNullMod
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func LoadExceptColumns ¶
func LoadExceptColumns(cols ...string) exceptColumnsOpt
func LoadOnlyColumns ¶
func LoadOnlyColumns(cols ...string) onlyColumnsOpt
func NewEagerLoadSettings ¶
Types ¶
type EagerLoadOption ¶
type EagerLoadOption interface {
ModifyEagerLoader(*eagerLoadSettings)
}
type EagerLoader ¶
type EagerLoader func(ctx context.Context) (bob.Mod[*psql.SelectQuery], scan.MapperMod, []bob.ExtraLoader)
func Preload ¶
func Preload[T any, Ts ~[]T](rel orm.Relationship, cols orm.Columns, opts ...EagerLoadOption) EagerLoader
func (EagerLoader) Apply ¶
func (l EagerLoader) Apply(q *psql.SelectQuery)
func (EagerLoader) ModifyEagerLoader ¶
func (l EagerLoader) ModifyEagerLoader(s *eagerLoadSettings)
type Filterable ¶
type Filterable interface {
AppendWhere(...any)
}
type Loader ¶
func (Loader) Apply ¶
func (l Loader) Apply(q *psql.SelectQuery)
func (Loader) ModifyEagerLoader ¶
func (l Loader) ModifyEagerLoader(s *eagerLoadSettings)
type Table ¶
type Table[T any, Tslice ~[]T, Topt any] struct { *View[T, Tslice] BeforeInsertHooks orm.Hooks[Topt] AfterInsertHooks orm.Hooks[T] BeforeUpsertHooks orm.Hooks[Topt] AfterUpsertHooks orm.Hooks[T] BeforeUpdateHooks orm.Hooks[T] AfterUpdateHooks orm.Hooks[T] BeforeDeleteHooks orm.Hooks[T] AfterDeleteHooks orm.Hooks[T] }
The table contains extract information from the struct and contains hooks ??? caches ???
func (*Table[T, Tslice, Topt]) Delete ¶
func (t *Table[T, Tslice, Topt]) Delete(ctx context.Context, exec scan.Queryer, row T) (int64, error)
Deletes the given model if columns is nil, every column is deleted
func (*Table[T, Tslice, Topt]) DeleteMany ¶
func (t *Table[T, Tslice, Topt]) DeleteMany(ctx context.Context, exec scan.Queryer, rows ...T) (int64, error)
Deletes the given models if columns is nil, every column is deleted
func (*Table[T, Tslice, Topt]) Insert ¶
func (t *Table[T, Tslice, Topt]) Insert(ctx context.Context, exec scan.Queryer, row Topt) (T, error)
Insert inserts a row into the table with only the set columns in Topt
func (*Table[T, Tslice, Topt]) InsertMany ¶
func (t *Table[T, Tslice, Topt]) InsertMany(ctx context.Context, exec scan.Queryer, rows ...Topt) (Tslice, error)
Insert inserts a row into the table with only the set columns in Topt
func (*Table[T, Tslice, Topt]) Query ¶
func (t *Table[T, Tslice, Topt]) Query(queryMods ...bob.Mod[*psql.SelectQuery]) *TableQuery[T, Tslice, Topt]
Adds table name et al
func (*Table[T, Tslice, Topt]) Update ¶
func (t *Table[T, Tslice, Topt]) Update(ctx context.Context, exec scan.Queryer, columns *orm.Columns, row T) (T, int64, error)
Updates the given model if columns is nil, every column is updated
func (*Table[T, Tslice, Topt]) UpdateMany ¶
func (t *Table[T, Tslice, Topt]) UpdateMany(ctx context.Context, exec scan.Queryer, vals Topt, rows ...T) (Tslice, int64, error)
Updates the given models if columns is nil, every column is updated
func (*Table[T, Tslice, Topt]) Upsert ¶
func (t *Table[T, Tslice, Topt]) Upsert(ctx context.Context, exec scan.Queryer, updateOnConflict bool, conflictCols, updateCols *orm.Columns, row Topt) (T, error)
Uses the optional columns to know what to insert If conflictCols is nil, it uses the primary key columns If updateCols is nil, it updates all the columns set in Topt
func (*Table[T, Tslice, Topt]) UpsertMany ¶
func (t *Table[T, Tslice, Topt]) UpsertMany(ctx context.Context, exec scan.Queryer, updateOnConflict bool, conflictCols, updateCols *orm.Columns, rows ...Topt) (Tslice, error)
Uses the optional columns to know what to insert If conflictCols is nil, it uses the primary key columns If updateCols is nil, it updates all the columns set in Topt
type TableQuery ¶
func (*TableQuery[T, Tslice, Topt]) DeleteAll ¶
func (f *TableQuery[T, Tslice, Topt]) DeleteAll() (int64, error)
func (*TableQuery[T, Tslice, Topt]) UpdateAll ¶
func (f *TableQuery[T, Tslice, Topt]) UpdateAll(Topt) (int64, error)
type View ¶
type View[T any, Tslice ~[]T] struct { AfterSelectHooks orm.Hooks[T] // contains filtered or unexported fields }
func (*View[T, Tslice]) Name ¶
func (t *View[T, Tslice]) Name() psql.Expression
type ViewQuery ¶
type ViewQuery[T any, Ts ~[]T] struct { bob.BaseQuery[*psql.SelectQuery] // contains filtered or unexported fields }
type WhereMod ¶
type WhereMod[Q Filterable, C any] struct { // contains filtered or unexported fields }
func Where ¶
func Where[Q Filterable, C any](name psql.Expression) WhereMod[Q, C]
type WhereNullMod ¶
func WhereNull ¶
func WhereNull[Q Filterable, C any](name psql.Expression) WhereNullMod[Q, C]
func (WhereNullMod[Q, C]) IsNotNull ¶
func (w WhereNullMod[Q, C]) IsNotNull() bob.Mod[Q]
func (WhereNullMod[Q, C]) IsNull ¶
func (w WhereNullMod[Q, C]) IsNull() bob.Mod[Q]