Documentation ¶
Index ¶
- Variables
- 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 bob.Executor, row T) (int64, error)
- func (t *Table[T, Tslice, Topt]) DeleteMany(ctx context.Context, exec bob.Executor, rows ...T) (int64, error)
- func (t *Table[T, Tslice, Topt]) Insert(ctx context.Context, exec bob.Executor, row Topt) (T, error)
- func (t *Table[T, Tslice, Topt]) InsertMany(ctx context.Context, exec bob.Executor, rows ...Topt) (Tslice, error)
- func (t *Table[T, Tslice, Topt]) PKColumns() orm.Columns
- 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 bob.Executor, cols []string, row T) (int64, error)
- func (t *Table[T, Tslice, Topt]) UpdateMany(ctx context.Context, exec bob.Executor, vals Topt, rows ...T) (int64, error)
- func (t *Table[T, Tslice, Topt]) Upsert(ctx context.Context, exec bob.Executor, updateOnConflict bool, ...) (T, error)
- func (t *Table[T, Tslice, Topt]) UpsertMany(ctx context.Context, exec bob.Executor, updateOnConflict bool, ...) (Tslice, error)
- type TableQuery
- type View
- type ViewQuery
- func (f *ViewQuery[T, Tslice]) All(ctx context.Context, exec bob.Executor) (Tslice, error)
- func (f *ViewQuery[T, Tslice]) Count(ctx context.Context, exec bob.Executor) (int64, error)
- func (f *ViewQuery[T, Tslice]) Cursor(ctx context.Context, exec bob.Executor) (scan.ICursor[T], error)
- func (f *ViewQuery[T, Tslice]) Exists(ctx context.Context, exec bob.Executor) (bool, error)
- func (f *ViewQuery[T, Tslice]) One(ctx context.Context, exec bob.Executor) (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]) NotIn(slice ...C) bob.Mod[Q]
- type WhereNullMod
Constants ¶
This section is empty.
Variables ¶
var ErrNothingToUpdate = errors.New("nothing to update")
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] // contains filtered or unexported fields }
The table contains extract information from the struct and contains caches ???
func (*Table[T, Tslice, Topt]) Delete ¶
func (t *Table[T, Tslice, Topt]) Delete(ctx context.Context, exec bob.Executor, 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 bob.Executor, 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 bob.Executor, 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 bob.Executor, 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 bob.Executor, cols []string, row T) (int64, error)
Updates the given model if columns is nil, every non-primary-key column is updated NOTE: values from the DB are not refreshed into the model
func (*Table[T, Tslice, Topt]) UpdateMany ¶
func (t *Table[T, Tslice, Topt]) UpdateMany(ctx context.Context, exec bob.Executor, vals Topt, rows ...T) (int64, error)
Updates the given models if columns is nil, every column is updated NOTE: values from the DB are not refreshed into the models
func (*Table[T, Tslice, Topt]) Upsert ¶
func (t *Table[T, Tslice, Topt]) Upsert(ctx context.Context, exec bob.Executor, updateOnConflict bool, conflictCols, updateCols []string, 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 if no column is set in Topt (i.e. INSERT DEFAULT VALUES), then it upserts all NonPK columns
func (*Table[T, Tslice, Topt]) UpsertMany ¶
func (t *Table[T, Tslice, Topt]) UpsertMany(ctx context.Context, exec bob.Executor, updateOnConflict bool, conflictCols, updateCols []string, 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 if no column is set in Topt (i.e. INSERT DEFAULT VALUES), then it upserts all NonPK columns
type TableQuery ¶
type TableQuery[T any, Ts ~[]T, Topt any] struct { ViewQuery[T, Ts] // contains filtered or unexported fields }
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]