package sql
import "entgo.io/ent/dialect/sql"
Package sql provides wrappers around the standard database/sql package to allow the generated code to interact with a statically-typed API.
Users that are interacting with this package should be aware that the following builders don't check the given SQL syntax nor validate or escape user-inputs. ~All validations are expected to be happened in the generated ent package.
Index ¶
- func AndPredicates[P ~func(*Selector)](predicates ...P) func(*Selector)
- func As(ident string, as string) string
- func Asc(column string) string
- func Avg(ident string) string
- func Count(ident string) string
- func Desc(column string) string
- func Distinct(idents ...string) string
- func FieldContains(name string, substr string) func(*Selector)
- func FieldContainsFold(name string, substr string) func(*Selector)
- func FieldEQ(name string, v any) func(*Selector)
- func FieldEqualFold(name string, substr string) func(*Selector)
- func FieldGT(name string, v any) func(*Selector)
- func FieldGTE(name string, v any) func(*Selector)
- func FieldHasPrefix(name string, prefix string) func(*Selector)
- func FieldHasPrefixFold(name string, prefix string) func(*Selector)
- func FieldHasSuffix(name string, suffix string) func(*Selector)
- func FieldHasSuffixFold(name string, suffix string) func(*Selector)
- func FieldIn[T any](name string, vs ...T) func(*Selector)
- func FieldIsNull(name string) func(*Selector)
- func FieldLT(name string, v any) func(*Selector)
- func FieldLTE(name string, v any) func(*Selector)
- func FieldNEQ(name string, v any) func(*Selector)
- func FieldNotIn[T any](name string, vs ...T) func(*Selector)
- func FieldNotNull(name string) func(*Selector)
- func FieldsEQ(field1, field2 string) func(*Selector)
- func FieldsGT(field1, field2 string) func(*Selector)
- func FieldsGTE(field1, field2 string) func(*Selector)
- func FieldsHasPrefix(field1, field2 string) func(*Selector)
- func FieldsLT(field1, field2 string) func(*Selector)
- func FieldsLTE(field1, field2 string) func(*Selector)
- func FieldsNEQ(field1, field2 string) func(*Selector)
- func Lower(ident string) string
- func Max(ident string) string
- func Min(ident string) string
- func NotPredicates[P ~func(*Selector)](predicates ...P) func(*Selector)
- func OrPredicates[P ~func(*Selector)](predicates ...P) func(*Selector)
- func OrderByRand() func(*Selector)
- func ScanBool(rows ColumnScanner) (bool, error)
- func ScanInt(rows ColumnScanner) (int, error)
- func ScanInt64(rows ColumnScanner) (int64, error)
- func ScanOne(rows ColumnScanner, v any) error
- func ScanSlice(rows ColumnScanner, v any) error
- func ScanString(rows ColumnScanner) (string, error)
- func ScanTypeOf(rows *Rows, i int) any
- func ScanValue(rows ColumnScanner) (driver.Value, error)
- func Sum(ident string) string
- func WithIntVar(ctx context.Context, name string, value int) context.Context
- func WithVar(ctx context.Context, name, value string) context.Context
- type Builder
- func (b *Builder) AddError(err error) *Builder
- func (b *Builder) Arg(a any) *Builder
- func (b *Builder) Argf(format string, a any) *Builder
- func (b *Builder) Args(a ...any) *Builder
- func (b *Builder) Comma() *Builder
- func (b Builder) Dialect() string
- func (b *Builder) Err() error
- func (b *Builder) Ident(s string) *Builder
- func (b *Builder) IdentComma(s ...string) *Builder
- func (b *Builder) Join(qs ...Querier) *Builder
- func (b *Builder) JoinComma(qs ...Querier) *Builder
- func (b *Builder) Len() int
- func (b *Builder) Nested(f func(*Builder)) *Builder
- func (b *Builder) Pad() *Builder
- func (b Builder) Query() (string, []any)
- func (b *Builder) Quote(ident string) string
- func (b *Builder) Reset() *Builder
- func (b *Builder) S(s string) *Builder
- func (b *Builder) SetDialect(dialect string)
- func (b *Builder) SetTotal(total int)
- func (b *Builder) String() string
- func (b Builder) Total() int
- func (b *Builder) Wrap(f func(*Builder)) *Builder
- func (b *Builder) WriteByte(c byte) *Builder
- func (b *Builder) WriteOp(op Op) *Builder
- func (b *Builder) WriteString(s string) *Builder
- type ColumnBuilder
- func Column(name string) *ColumnBuilder
- func (c *ColumnBuilder) Attr(attr string) *ColumnBuilder
- func (c *ColumnBuilder) Check(check func(*Builder)) *ColumnBuilder
- func (c *ColumnBuilder) Constraint(fk *ForeignKeyBuilder) *ColumnBuilder
- func (c *ColumnBuilder) Query() (string, []any)
- func (c *ColumnBuilder) Type(t string) *ColumnBuilder
- type ColumnCheck
- type ColumnScanner
- type ConflictOption
- func ConflictColumns(names ...string) ConflictOption
- func ConflictConstraint(name string) ConflictOption
- func ConflictWhere(p *Predicate) ConflictOption
- func DoNothing() ConflictOption
- func ResolveWith(fn func(*UpdateSet)) ConflictOption
- func ResolveWithIgnore() ConflictOption
- func ResolveWithNewValues() ConflictOption
- func UpdateWhere(p *Predicate) ConflictOption
- type Conn
- func (c Conn) Exec(ctx context.Context, query string, args, v any) (rerr error)
- func (c Conn) Query(ctx context.Context, query string, args, v any) error
- type DeleteBuilder
- func Delete(table string) *DeleteBuilder
- func (d *DeleteBuilder) FromSelect(s *Selector) *DeleteBuilder
- func (d *DeleteBuilder) Query() (string, []any)
- func (d *DeleteBuilder) Schema(name string) *DeleteBuilder
- func (d *DeleteBuilder) Where(p *Predicate) *DeleteBuilder
- type DescribeBuilder
- type DialectBuilder
- func Dialect(name string) *DialectBuilder
- func (d *DialectBuilder) AlterIndex(name string) *IndexAlter
- func (d *DialectBuilder) AlterTable(name string) *TableAlter
- func (d *DialectBuilder) Column(name string) *ColumnBuilder
- func (d *DialectBuilder) CreateIndex(name string) *IndexBuilder
- func (d *DialectBuilder) CreateTable(name string) *TableBuilder
- func (d *DialectBuilder) CreateView(name string) *ViewBuilder
- func (d *DialectBuilder) Delete(table string) *DeleteBuilder
- func (d *DialectBuilder) Describe(name string) *DescribeBuilder
- func (d *DialectBuilder) DropIndex(name string) *DropIndexBuilder
- func (d *DialectBuilder) Expr(f func(*Builder)) Querier
- func (d *DialectBuilder) Insert(table string) *InsertBuilder
- func (d *DialectBuilder) Select(columns ...string) *Selector
- func (d *DialectBuilder) SelectExpr(exprs ...Querier) *Selector
- func (d *DialectBuilder) String(f func(*Builder)) string
- func (d *DialectBuilder) Table(name string) *SelectTable
- func (d *DialectBuilder) Update(table string) *UpdateBuilder
- func (d *DialectBuilder) With(name string) *WithBuilder
- type Driver
- func NewDriver(dialect string, c Conn) *Driver
- func Open(dialect, source string) (*Driver, error)
- func OpenDB(dialect string, db *sql.DB) *Driver
- func (d *Driver) BeginTx(ctx context.Context, opts *TxOptions) (dialect.Tx, error)
- func (d *Driver) Close() error
- func (d Driver) DB() *sql.DB
- func (d Driver) Dialect() string
- func (d *Driver) Tx(ctx context.Context) (dialect.Tx, error)
- type DropIndexBuilder
- func DropIndex(name string) *DropIndexBuilder
- func (d *DropIndexBuilder) Query() (string, []any)
- func (d *DropIndexBuilder) Table(table string) *DropIndexBuilder
- type ExecQuerier
- type ForeignKeyBuilder
- func ForeignKey(symbol ...string) *ForeignKeyBuilder
- func (fk *ForeignKeyBuilder) Columns(s ...string) *ForeignKeyBuilder
- func (fk *ForeignKeyBuilder) OnDelete(action string) *ForeignKeyBuilder
- func (fk *ForeignKeyBuilder) OnUpdate(action string) *ForeignKeyBuilder
- func (fk *ForeignKeyBuilder) Query() (string, []any)
- func (fk *ForeignKeyBuilder) Reference(r *ReferenceBuilder) *ForeignKeyBuilder
- func (fk *ForeignKeyBuilder) Symbol(s string) *ForeignKeyBuilder
- type Func
- func (f *Func) Append(fn func(*Builder)) *Func
- func (f *Func) Avg(ident string)
- func (f *Func) Count(ident string)
- func (f *Func) Lower(ident string)
- func (f *Func) Max(ident string)
- func (f *Func) Min(ident string)
- func (f *Func) String() string
- func (f *Func) Sum(ident string)
- type IndexAlter
- func AlterIndex(name string) *IndexAlter
- func (i *IndexAlter) Query() (string, []any)
- func (i *IndexAlter) Rename(name string) *IndexAlter
- type IndexBuilder
- func CreateIndex(name string) *IndexBuilder
- func (i *IndexBuilder) Column(column string) *IndexBuilder
- func (i *IndexBuilder) Columns(columns ...string) *IndexBuilder
- func (i *IndexBuilder) IfNotExists() *IndexBuilder
- func (i *IndexBuilder) Query() (string, []any)
- func (i *IndexBuilder) Table(table string) *IndexBuilder
- func (i *IndexBuilder) Unique() *IndexBuilder
- func (i *IndexBuilder) Using(method string) *IndexBuilder
- type InsertBuilder
- func Insert(table string) *InsertBuilder
- func (i *InsertBuilder) Columns(columns ...string) *InsertBuilder
- func (i *InsertBuilder) Default() *InsertBuilder
- func (i *InsertBuilder) OnConflict(opts ...ConflictOption) *InsertBuilder
- func (i *InsertBuilder) Query() (string, []any)
- func (i *InsertBuilder) QueryErr() (string, []any, error)
- func (i *InsertBuilder) Returning(columns ...string) *InsertBuilder
- func (i *InsertBuilder) Schema(name string) *InsertBuilder
- func (i *InsertBuilder) Set(column string, v any) *InsertBuilder
- func (i *InsertBuilder) Values(values ...any) *InsertBuilder
- type LockAction
- type LockOption
- func WithLockAction(action LockAction) LockOption
- func WithLockClause(clause string) LockOption
- func WithLockTables(tables ...string) LockOption
- type LockOptions
- type LockStrength
- type NullBool
- type NullFloat64
- type NullInt64
- type NullScanner
- type NullString
- type NullTime
- type Op
- type OrderExprTerm
- func OrderByCount(field string, opts ...OrderTermOption) *OrderExprTerm
- func OrderBySum(field string, opts ...OrderTermOption) *OrderExprTerm
- type OrderFieldTerm
- func OrderByField(field string, opts ...OrderTermOption) *OrderFieldTerm
- func (f *OrderFieldTerm) ToFunc() func(*Selector)
- type OrderTerm
- type OrderTermOption
- func OrderAs(as string) OrderTermOption
- func OrderAsc() OrderTermOption
- func OrderDesc() OrderTermOption
- func OrderNullsFirst() OrderTermOption
- func OrderNullsLast() OrderTermOption
- func OrderSelectAs(as string) OrderTermOption
- func OrderSelected() OrderTermOption
- type OrderTermOptions
- type ParamFormatter
- type Predicate
- func And(preds ...*Predicate) *Predicate
- func ColumnsEQ(col1, col2 string) *Predicate
- func ColumnsGT(col1, col2 string) *Predicate
- func ColumnsGTE(col1, col2 string) *Predicate
- func ColumnsHasPrefix(col, prefixC string) *Predicate
- func ColumnsLT(col1, col2 string) *Predicate
- func ColumnsLTE(col1, col2 string) *Predicate
- func ColumnsNEQ(col1, col2 string) *Predicate
- func ColumnsOp(col1, col2 string, op Op) *Predicate
- func CompositeGT(columns []string, args ...any) *Predicate
- func CompositeLT(columns []string, args ...any) *Predicate
- func Contains(col, sub string) *Predicate
- func ContainsFold(col, sub string) *Predicate
- func EQ(col string, value any) *Predicate
- func EqualFold(col, sub string) *Predicate
- func Exists(query Querier) *Predicate
- func ExprP(exr string, args ...any) *Predicate
- func False() *Predicate
- func GT(col string, value any) *Predicate
- func GTE(col string, value any) *Predicate
- func HasPrefix(col, prefix string) *Predicate
- func HasPrefixFold(col, prefix string) *Predicate
- func HasSuffix(col, suffix string) *Predicate
- func HasSuffixFold(col, suffix string) *Predicate
- func In(col string, args ...any) *Predicate
- func InInts(col string, args ...int) *Predicate
- func InValues(col string, args ...driver.Value) *Predicate
- func IsFalse(col string) *Predicate
- func IsNull(col string) *Predicate
- func IsTrue(col string) *Predicate
- func LT(col string, value any) *Predicate
- func LTE(col string, value any) *Predicate
- func Like(col, pattern string) *Predicate
- func NEQ(col string, value any) *Predicate
- func Not(pred *Predicate) *Predicate
- func NotExists(query Querier) *Predicate
- func NotIn(col string, args ...any) *Predicate
- func NotNull(col string) *Predicate
- func Or(preds ...*Predicate) *Predicate
- func P(fns ...func(*Builder)) *Predicate
- func (p *Predicate) Append(f func(*Builder)) *Predicate
- func (p *Predicate) ColumnsEQ(col1, col2 string) *Predicate
- func (p *Predicate) ColumnsGT(col1, col2 string) *Predicate
- func (p *Predicate) ColumnsGTE(col1, col2 string) *Predicate
- func (p *Predicate) ColumnsHasPrefix(col, prefixC string) *Predicate
- func (p *Predicate) ColumnsLT(col1, col2 string) *Predicate
- func (p *Predicate) ColumnsLTE(col1, col2 string) *Predicate
- func (p *Predicate) ColumnsNEQ(col1, col2 string) *Predicate
- func (p *Predicate) ColumnsOp(col1, col2 string, op Op) *Predicate
- func (p *Predicate) CompositeGT(columns []string, args ...any) *Predicate
- func (p *Predicate) CompositeLT(columns []string, args ...any) *Predicate
- func (p *Predicate) Contains(col, substr string) *Predicate
- func (p *Predicate) ContainsFold(col, substr string) *Predicate
- func (p *Predicate) EQ(col string, arg any) *Predicate
- func (p *Predicate) EqualFold(col, sub string) *Predicate
- func (p *Predicate) Exists(query Querier) *Predicate
- func (p *Predicate) False() *Predicate
- func (p *Predicate) GT(col string, arg any) *Predicate
- func (p *Predicate) GTE(col string, arg any) *Predicate
- func (p *Predicate) HasPrefix(col, prefix string) *Predicate
- func (p *Predicate) HasPrefixFold(col, prefix string) *Predicate
- func (p *Predicate) HasSuffix(col, suffix string) *Predicate
- func (p *Predicate) HasSuffixFold(col, suffix string) *Predicate
- func (p *Predicate) In(col string, args ...any) *Predicate
- func (p *Predicate) InInts(col string, args ...int) *Predicate
- func (p *Predicate) InValues(col string, args ...driver.Value) *Predicate
- func (p *Predicate) IsFalse(col string) *Predicate
- func (p *Predicate) IsNull(col string) *Predicate
- func (p *Predicate) IsTrue(col string) *Predicate
- func (p *Predicate) LT(col string, arg any) *Predicate
- func (p *Predicate) LTE(col string, arg any) *Predicate
- func (p *Predicate) Like(col, pattern string) *Predicate
- func (p *Predicate) NEQ(col string, arg any) *Predicate
- func (p *Predicate) Not() *Predicate
- func (p *Predicate) NotExists(query Querier) *Predicate
- func (p *Predicate) NotIn(col string, args ...any) *Predicate
- func (p *Predicate) NotNull(col string) *Predicate
- func (p *Predicate) Query() (string, []any)
- type Querier
- func DescExpr(x Querier) Querier
- func Expr(exr string, args ...any) Querier
- func ExprFunc(fn func(*Builder)) Querier
- func Raw(s string) Querier
- type Queries
- type ReferenceBuilder
- func Reference() *ReferenceBuilder
- func (r *ReferenceBuilder) Columns(s ...string) *ReferenceBuilder
- func (r *ReferenceBuilder) Query() (string, []any)
- func (r *ReferenceBuilder) Table(s string) *ReferenceBuilder
- type Result
- type Rows
- type SelectTable
- func Table(name string) *SelectTable
- func (s *SelectTable) As(alias string) *SelectTable
- func (s *SelectTable) C(column string) string
- func (s *SelectTable) Columns(columns ...string) []string
- func (s *SelectTable) Schema(name string) *SelectTable
- func (s *SelectTable) Unquote() *SelectTable
- type SelectValues
- type Selector
- func Select(columns ...string) *Selector
- func SelectExpr(exprs ...Querier) *Selector
- func (s *Selector) AppendFrom(t TableView) *Selector
- func (s *Selector) AppendFromExpr(x Querier) *Selector
- func (s *Selector) AppendSelect(columns ...string) *Selector
- func (s *Selector) AppendSelectAs(column, as string) *Selector
- func (s *Selector) AppendSelectExpr(exprs ...Querier) *Selector
- func (s *Selector) AppendSelectExprAs(expr Querier, as string) *Selector
- func (s *Selector) As(alias string) *Selector
- func (s *Selector) C(column string) string
- func (s *Selector) ClearOrder() *Selector
- func (s *Selector) Clone() *Selector
- func (s *Selector) CollectPredicates() *Selector
- func (s *Selector) CollectedPredicates() []*Predicate
- func (s *Selector) Columns(columns ...string) []string
- func (s *Selector) Context() context.Context
- func (s *Selector) Count(columns ...string) *Selector
- func (s *Selector) Distinct() *Selector
- func (s *Selector) Except(t TableView) *Selector
- func (s *Selector) ExceptAll(t TableView) *Selector
- func (s *Selector) FindSelection(name string) (matches []string)
- func (s *Selector) For(l LockStrength, opts ...LockOption) *Selector
- func (s *Selector) ForShare(opts ...LockOption) *Selector
- func (s *Selector) ForUpdate(opts ...LockOption) *Selector
- func (s *Selector) From(t TableView) *Selector
- func (s *Selector) FromExpr(x Querier) *Selector
- func (s *Selector) FromSelect(s2 *Selector) *Selector
- func (s *Selector) FullJoin(t TableView) *Selector
- func (s *Selector) GroupBy(columns ...string) *Selector
- func (s *Selector) HasJoins() bool
- func (s *Selector) Having(p *Predicate) *Selector
- func (s *Selector) Intersect(t TableView) *Selector
- func (s *Selector) IntersectAll(t TableView) *Selector
- func (s *Selector) Join(t TableView) *Selector
- func (s *Selector) JoinedTable(name string) (*SelectTable, bool)
- func (s *Selector) JoinedTableView(name string) (TableView, bool)
- func (s *Selector) LeftJoin(t TableView) *Selector
- func (s *Selector) Limit(limit int) *Selector
- func (s *Selector) New() *Selector
- func (s *Selector) Not() *Selector
- func (s *Selector) Offset(offset int) *Selector
- func (s *Selector) On(c1, c2 string) *Selector
- func (s *Selector) OnP(p *Predicate) *Selector
- func (s *Selector) Or() *Selector
- func (s *Selector) OrderBy(columns ...string) *Selector
- func (s *Selector) OrderColumns() []string
- func (s *Selector) OrderExpr(exprs ...Querier) *Selector
- func (s *Selector) OrderExprFunc(f func(*Builder)) *Selector
- func (s *Selector) P() *Predicate
- func (s *Selector) Prefix(queries ...Querier) *Selector
- func (s *Selector) Query() (string, []any)
- func (s *Selector) RightJoin(t TableView) *Selector
- func (s *Selector) Select(columns ...string) *Selector
- func (s *Selector) SelectDistinct(columns ...string) *Selector
- func (s *Selector) SelectExpr(exprs ...Querier) *Selector
- func (s *Selector) SelectedColumns() []string
- func (s *Selector) SetDistinct(v bool) *Selector
- func (s *Selector) SetP(p *Predicate) *Selector
- func (s *Selector) Table() *SelectTable
- func (s *Selector) TableName() string
- func (s *Selector) UncollectedPredicates() *Selector
- func (s *Selector) Union(t TableView) *Selector
- func (s *Selector) UnionAll(t TableView) *Selector
- func (s *Selector) UnionDistinct(t TableView) *Selector
- func (s *Selector) UnqualifiedColumns() []string
- func (s *Selector) Where(p *Predicate) *Selector
- func (s *Selector) WithContext(ctx context.Context) *Selector
- type StmtInfo
- type TableAlter
- func AlterTable(name string) *TableAlter
- func (t *TableAlter) AddColumn(c *ColumnBuilder) *TableAlter
- func (t *TableAlter) AddForeignKey(fk *ForeignKeyBuilder) *TableAlter
- func (t *TableAlter) AddIndex(idx *IndexBuilder) *TableAlter
- func (t *TableAlter) ChangeColumn(name string, c *ColumnBuilder) *TableAlter
- func (t *TableAlter) DropColumn(c *ColumnBuilder) *TableAlter
- func (t *TableAlter) DropConstraint(ident string) *TableAlter
- func (t *TableAlter) DropForeignKey(ident string) *TableAlter
- func (t *TableAlter) DropIndex(name string) *TableAlter
- func (t *TableAlter) ModifyColumn(c *ColumnBuilder) *TableAlter
- func (t *TableAlter) ModifyColumns(cs ...*ColumnBuilder) *TableAlter
- func (t *TableAlter) Query() (string, []any)
- func (t *TableAlter) RenameColumn(old, new string) *TableAlter
- func (t *TableAlter) RenameIndex(curr, new string) *TableAlter
- type TableBuilder
- func CreateTable(name string) *TableBuilder
- func (t *TableBuilder) Charset(s string) *TableBuilder
- func (t *TableBuilder) Checks(checks ...func(*Builder)) *TableBuilder
- func (t *TableBuilder) Collate(s string) *TableBuilder
- func (t *TableBuilder) Column(c *ColumnBuilder) *TableBuilder
- func (t *TableBuilder) Columns(columns ...*ColumnBuilder) *TableBuilder
- func (t *TableBuilder) Constraints(fks ...*ForeignKeyBuilder) *TableBuilder
- func (t *TableBuilder) ForeignKeys(fks ...*ForeignKeyBuilder) *TableBuilder
- func (t *TableBuilder) IfNotExists() *TableBuilder
- func (t *TableBuilder) Options(s string) *TableBuilder
- func (t *TableBuilder) PrimaryKey(column ...string) *TableBuilder
- func (t *TableBuilder) Query() (string, []any)
- type TableView
- type Tx
- type TxOptions
- type UnknownType
- type UpdateBuilder
- func Update(table string) *UpdateBuilder
- func (u *UpdateBuilder) Add(column string, v any) *UpdateBuilder
- func (u *UpdateBuilder) Empty() bool
- func (u *UpdateBuilder) FromSelect(s *Selector) *UpdateBuilder
- func (u *UpdateBuilder) Limit(limit int) *UpdateBuilder
- func (u *UpdateBuilder) OrderBy(columns ...string) *UpdateBuilder
- func (u *UpdateBuilder) Prefix(stmts ...Querier) *UpdateBuilder
- func (u *UpdateBuilder) Query() (string, []any)
- func (u *UpdateBuilder) Returning(columns ...string) *UpdateBuilder
- func (u *UpdateBuilder) Schema(name string) *UpdateBuilder
- func (u *UpdateBuilder) Set(column string, v any) *UpdateBuilder
- func (u *UpdateBuilder) SetNull(column string) *UpdateBuilder
- func (u *UpdateBuilder) Where(p *Predicate) *UpdateBuilder
- type UpdateSet
- func (u *UpdateSet) Add(column string, v any) *UpdateSet
- func (u *UpdateSet) Columns() []string
- func (u *UpdateSet) Set(column string, v any) *UpdateSet
- func (u *UpdateSet) SetExcluded(name string) *UpdateSet
- func (u *UpdateSet) SetIgnore(name string) *UpdateSet
- func (u *UpdateSet) SetNull(column string) *UpdateSet
- func (u *UpdateSet) Table() *SelectTable
- func (u *UpdateSet) UpdateColumns() []string
- type ViewBuilder
- func CreateView(name string) *ViewBuilder
- func (v *ViewBuilder) As(as Querier) *ViewBuilder
- func (v *ViewBuilder) Column(c *ColumnBuilder) *ViewBuilder
- func (v *ViewBuilder) Columns(columns ...*ColumnBuilder) *ViewBuilder
- func (v *ViewBuilder) IfNotExists() *ViewBuilder
- func (v *ViewBuilder) Query() (string, []any)
- func (v *ViewBuilder) Schema(name string) *ViewBuilder
- type WindowBuilder
- func RowNumber() *WindowBuilder
- func Window(fn func(*Builder)) *WindowBuilder
- func (w *WindowBuilder) OrderBy(columns ...string) *WindowBuilder
- func (w *WindowBuilder) OrderExpr(exprs ...Querier) *WindowBuilder
- func (w *WindowBuilder) PartitionBy(columns ...string) *WindowBuilder
- func (w *WindowBuilder) PartitionExpr(x Querier) *WindowBuilder
- func (w *WindowBuilder) Query() (string, []any)
- type WithBuilder
- func With(name string, columns ...string) *WithBuilder
- func WithRecursive(name string, columns ...string) *WithBuilder
- func (w *WithBuilder) As(s *Selector) *WithBuilder
- func (w *WithBuilder) C(column string) string
- func (w *WithBuilder) Name() string
- func (w *WithBuilder) Query() (string, []any)
- func (w *WithBuilder) With(name string, columns ...string) *WithBuilder
- type Wrapper
Functions ¶
func AndPredicates ¶
AndPredicates returns a new predicate for joining multiple generated predicates with AND between them.
func As ¶
As suffixed the given column with an alias (`a` AS `b`).
func Asc ¶
Asc adds the ASC suffix for the given column.
func Avg ¶
Avg wraps the ident with the AVG aggregation function.
func Count ¶
Count wraps the ident with the COUNT aggregation function.
func Desc ¶
Desc adds the DESC suffix for the given column.
func Distinct ¶
Distinct prefixed the given columns with the `DISTINCT` keyword (DISTINCT `id`).
func FieldContains ¶
FieldContains returns a raw predicate to check if the field contains the given substring.
func FieldContainsFold ¶
FieldContainsFold returns a raw predicate to check if the field contains the given substring with case-folding.
func FieldEQ ¶
FieldEQ returns a raw predicate to check if the given field equals to the given value.
func FieldEqualFold ¶
FieldEqualFold returns a raw predicate to check if the field has the given prefix with case-folding.
func FieldGT ¶
FieldGT returns a raw predicate to check if the given field is greater than the given value.
func FieldGTE ¶
FieldGTE returns a raw predicate to check if the given field is greater than or equal the given value.
func FieldHasPrefix ¶
FieldHasPrefix returns a raw predicate to check if the field has the given prefix.
func FieldHasPrefixFold ¶
FieldHasPrefixFold returns a raw predicate to check if the field has the given prefix with case-folding
func FieldHasSuffix ¶
FieldHasSuffix returns a raw predicate to check if the field has the given suffix.
func FieldHasSuffixFold ¶
FieldHasSuffixFold returns a raw predicate to check if the field has the given suffix with case-folding
func FieldIn ¶
FieldIn returns a raw predicate to check if the value of the field is IN the given values.
func FieldIsNull ¶
FieldIsNull returns a raw predicate to check if the given field is NULL.
func FieldLT ¶
FieldLT returns a raw predicate to check if the value of the field is less than the given value.
func FieldLTE ¶
FieldLTE returns a raw predicate to check if the value of the field is less than the given value.
func FieldNEQ ¶
FieldNEQ returns a raw predicate to check if the given field does not equal to the given value.
func FieldNotIn ¶
FieldNotIn returns a raw predicate to check if the value of the field is NOT IN the given values.
func FieldNotNull ¶
FieldNotNull returns a raw predicate to check if the given field is not NULL.
func FieldsEQ ¶
FieldsEQ returns a raw predicate to check if the given fields (columns) are equal.
func FieldsGT ¶
FieldsGT returns a raw predicate to check if field1 is greater than field2.
func FieldsGTE ¶
FieldsGTE returns a raw predicate to check if field1 is greater than or equal field2.
func FieldsHasPrefix ¶
FieldsHasPrefix returns a raw predicate to checks if field1 begins with the value of field2.
func FieldsLT ¶
FieldsLT returns a raw predicate to check if field1 is lower than field2.
func FieldsLTE ¶
FieldsLTE returns a raw predicate to check if field1 is lower than or equal field2.
func FieldsNEQ ¶
FieldsNEQ returns a raw predicate to check if the given fields (columns) are not equal.
func Lower ¶
Lower wraps the given column with the LOWER function.
P().EQ(sql.Lower("name"), "a8m")
func Max ¶
Max wraps the ident with the MAX aggregation function.
func Min ¶
Min wraps the ident with the MIN aggregation function.
func NotPredicates ¶
NotPredicates wraps the generated predicates with NOT. For example, NOT(P), NOT((P1 AND P2)).
func OrPredicates ¶
OrPredicates returns a new predicate for joining multiple generated predicates with OR between them.
func OrderByRand ¶
func OrderByRand() func(*Selector)
OrderByRand returns a term to natively order by a random value.
func ScanBool ¶
func ScanBool(rows ColumnScanner) (bool, error)
ScanBool scans and returns a boolean from the rows.
func ScanInt ¶
func ScanInt(rows ColumnScanner) (int, error)
ScanInt scans and returns an int from the rows.
func ScanInt64 ¶
func ScanInt64(rows ColumnScanner) (int64, error)
ScanInt64 scans and returns an int64 from the rows.
func ScanOne ¶
func ScanOne(rows ColumnScanner, v any) error
ScanOne scans one row to the given value. It fails if the rows holds more than 1 row.
func ScanSlice ¶
func ScanSlice(rows ColumnScanner, v any) error
ScanSlice scans the given ColumnScanner (basically, sql.Row or sql.Rows) into the given slice.
func ScanString ¶
func ScanString(rows ColumnScanner) (string, error)
ScanString scans and returns a string from the rows.
func ScanTypeOf ¶
ScanTypeOf returns the type used for scanning column i from the database.
func ScanValue ¶
func ScanValue(rows ColumnScanner) (driver.Value, error)
ScanValue scans and returns a driver.Value from the rows.
func Sum ¶
Sum wraps the ident with the SUM aggregation function.
func WithIntVar ¶
WithIntVar calls WithVar with the string representation of the value.
func WithVar ¶
WithVar returns a new context that holds the session variable to be executed before every query.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder is the base query builder for the sql dsl.
func (*Builder) AddError ¶
AddError appends an error to the builder errors.
func (*Builder) Arg ¶
Arg appends an input argument to the builder.
func (*Builder) Argf ¶
Argf appends an input argument to the builder with the given format. For example:
FormatArg("JSON(?)", b). FormatArg("ST_GeomFromText(?)", geom)
func (*Builder) Args ¶
Args appends a list of arguments to the builder.
func (*Builder) Comma ¶
Comma adds a comma to the query.
func (Builder) Dialect ¶
Dialect returns the dialect of the builder.
func (*Builder) Err ¶
Err returns a concatenated error of all errors encountered during the query-building, or were added manually by calling AddError.
func (*Builder) Ident ¶
Ident appends the given string as an identifier.
func (*Builder) IdentComma ¶
IdentComma calls Ident on all arguments and adds a comma between them.
func (*Builder) Join ¶
Join joins a list of Queries to the builder.
func (*Builder) JoinComma ¶
JoinComma joins a list of Queries and adds comma between them.
func (*Builder) Len ¶
Len returns the number of accumulated bytes.
func (*Builder) Nested ¶
Nested gets a callback, and wraps its result with parentheses.
Deprecated: Use Builder.Wrap instead.
func (*Builder) Pad ¶
Pad adds a space to the query.
func (Builder) Query ¶
Query implements the Querier interface.
func (*Builder) Quote ¶
Quote quotes the given identifier with the characters based on the configured dialect. It defaults to "`".
func (*Builder) Reset ¶
Reset resets the Builder to be empty.
func (*Builder) S ¶
S is a short version of WriteString.
func (*Builder) SetDialect ¶
SetDialect sets the builder dialect. It's used for garnering dialect specific queries.
func (*Builder) SetTotal ¶
SetTotal sets the value of the total arguments. Used to pass this information between sub queries/expressions.
func (*Builder) String ¶
String returns the accumulated string.
func (Builder) Total ¶
Total returns the total number of arguments so far.
func (*Builder) Wrap ¶
Wrap gets a callback, and wraps its result with parentheses.
func (*Builder) WriteByte ¶
WriteByte wraps the Buffer.WriteByte to make it chainable with other methods.
func (*Builder) WriteOp ¶
WriteOp writes an operator to the builder.
func (*Builder) WriteString ¶
WriteString wraps the Buffer.WriteString to make it chainable with other methods.
type ColumnBuilder ¶
type ColumnBuilder struct { Builder // contains filtered or unexported fields }
ColumnBuilder is a builder for column definition in table creation.
func Column ¶
func Column(name string) *ColumnBuilder
Column returns a new ColumnBuilder with the given name.
sql.Column("group_id").Type("int").Attr("UNIQUE")
func (*ColumnBuilder) Attr ¶
func (c *ColumnBuilder) Attr(attr string) *ColumnBuilder
Attr sets an extra attribute for the column, like UNIQUE or AUTO_INCREMENT.
func (*ColumnBuilder) Check ¶
func (c *ColumnBuilder) Check(check func(*Builder)) *ColumnBuilder
Check adds a CHECK clause to the ADD COLUMN statement.
func (*ColumnBuilder) Constraint ¶
func (c *ColumnBuilder) Constraint(fk *ForeignKeyBuilder) *ColumnBuilder
Constraint adds the CONSTRAINT clause to the ADD COLUMN statement in SQLite.
func (*ColumnBuilder) Query ¶
func (c *ColumnBuilder) Query() (string, []any)
Query returns query representation of a Column.
func (*ColumnBuilder) Type ¶
func (c *ColumnBuilder) Type(t string) *ColumnBuilder
Type sets the column type.
type ColumnCheck ¶
ColumnCheck is a function that verifies whether the specified column exists within the given table.
func NewColumnCheck ¶
func NewColumnCheck(checks map[string]func(string) bool) ColumnCheck
NewColumnCheck returns a function that verifies whether the specified column exists within the given table. This function is utilized by the generated code to validate column names in ordering functions.
type ColumnScanner ¶
type ColumnScanner interface { Close() error ColumnTypes() ([]*sql.ColumnType, error) Columns() ([]string, error) Err() error Next() bool NextResultSet() bool Scan(dest ...any) error }
ColumnScanner is the interface that wraps the standard sql.Rows methods used for scanning database rows.
type ConflictOption ¶
type ConflictOption func(*conflict)
ConflictOption allows configuring the conflict config using functional options.
func ConflictColumns ¶
func ConflictColumns(names ...string) ConflictOption
ConflictColumns sets the unique constraints that trigger the conflict resolution on insert to perform an upsert operation. The columns must have a unique constraint applied to trigger this behaviour.
sql.Insert("users"). Columns("id", "name"). Values(1, "Mashraki"). OnConflict( sql.ConflictColumns("id"), sql.ResolveWithNewValues(), )
func ConflictConstraint ¶
func ConflictConstraint(name string) ConflictOption
ConflictConstraint allows setting the constraint name (i.e. `ON CONSTRAINT <name>`) for PostgreSQL.
sql.Insert("users"). Columns("id", "name"). Values(1, "Mashraki"). OnConflict( sql.ConflictConstraint("users_pkey"), sql.ResolveWithNewValues(), )
func ConflictWhere ¶
func ConflictWhere(p *Predicate) ConflictOption
ConflictWhere allows inference of partial unique indexes. See, PostgreSQL doc: https://www.postgresql.org/docs/current/sql-insert.html#SQL-ON-CONFLICT
func DoNothing ¶
func DoNothing() ConflictOption
DoNothing configures the conflict_action to `DO NOTHING`. Supported by SQLite and PostgreSQL.
sql.Insert("users"). Columns("id", "name"). Values(1, "Mashraki"). OnConflict( sql.ConflictColumns("id"), sql.DoNothing() )
func ResolveWith ¶
func ResolveWith(fn func(*UpdateSet)) ConflictOption
ResolveWith allows setting a custom function to set the `UPDATE` clause.
Insert("users"). Columns("id", "name"). Values(1, "Mashraki"). OnConflict( ConflictColumns("name"), ResolveWith(func(u *UpdateSet) { u.SetIgnore("id") u.SetNull("created_at") u.Set("name", Expr(u.Excluded().C("name"))) }), )
func ResolveWithIgnore ¶
func ResolveWithIgnore() ConflictOption
ResolveWithIgnore sets each column to itself to force an update and return the ID, otherwise does not change any data. This may still trigger update hooks in the database.
sql.Insert("users"). Columns("id"). Values(1). OnConflict( sql.ConflictColumns("id"), sql.ResolveWithIgnore() ) // Output: // MySQL: INSERT INTO `users` (`id`) VALUES(1) ON DUPLICATE KEY UPDATE `id` = `users`.`id` // PostgreSQL: INSERT INTO "users" ("id") VALUES(1) ON CONFLICT ("id") DO UPDATE SET "id" = "users"."id
func ResolveWithNewValues ¶
func ResolveWithNewValues() ConflictOption
ResolveWithNewValues updates columns using the new values proposed for insertion using the special EXCLUDED/VALUES table.
sql.Insert("users"). Columns("id", "name"). Values(1, "Mashraki"). OnConflict( sql.ConflictColumns("id"), sql.ResolveWithNewValues() ) // Output: // MySQL: INSERT INTO `users` (`id`, `name`) VALUES(1, 'Mashraki) ON DUPLICATE KEY UPDATE `id` = VALUES(`id`), `name` = VALUES(`name`), // PostgreSQL: INSERT INTO "users" ("id") VALUES(1) ON CONFLICT ("id") DO UPDATE SET "id" = "excluded"."id, "name" = "excluded"."name"
func UpdateWhere ¶
func UpdateWhere(p *Predicate) ConflictOption
UpdateWhere allows setting the update condition. Only rows for which this expression returns true will be updated.
type Conn ¶
type Conn struct { ExecQuerier }
Conn implements dialect.ExecQuerier given ExecQuerier.
func (Conn) Exec ¶
Exec implements the dialect.Exec method.
func (Conn) Query ¶
Query implements the dialect.Query method.
type DeleteBuilder ¶
type DeleteBuilder struct { Builder // contains filtered or unexported fields }
DeleteBuilder is a builder for `DELETE` statement.
func Delete ¶
func Delete(table string) *DeleteBuilder
Delete creates a builder for the `DELETE` statement.
Delete("users"). Where( Or( EQ("name", "foo").And().EQ("age", 10), EQ("name", "bar").And().EQ("age", 20), And( EQ("name", "qux"), EQ("age", 1).Or().EQ("age", 2), ), ), )
func (*DeleteBuilder) FromSelect ¶
func (d *DeleteBuilder) FromSelect(s *Selector) *DeleteBuilder
FromSelect makes it possible to delete a sub query.
func (*DeleteBuilder) Query ¶
func (d *DeleteBuilder) Query() (string, []any)
Query returns query representation of a `DELETE` statement.
func (*DeleteBuilder) Schema ¶
func (d *DeleteBuilder) Schema(name string) *DeleteBuilder
Schema sets the database name for the table whose row will be deleted.
func (*DeleteBuilder) Where ¶
func (d *DeleteBuilder) Where(p *Predicate) *DeleteBuilder
Where appends a where predicate to the `DELETE` statement.
type DescribeBuilder ¶
type DescribeBuilder struct { Builder // contains filtered or unexported fields }
DescribeBuilder is a query builder for `DESCRIBE` statement.
func Describe ¶
func Describe(name string) *DescribeBuilder
Describe returns a query builder for the `DESCRIBE` statement.
Describe("users")
func (*DescribeBuilder) Query ¶
func (t *DescribeBuilder) Query() (string, []any)
Query returns query representation of a `DESCRIBE` statement.
type DialectBuilder ¶
type DialectBuilder struct {
// contains filtered or unexported fields
}
DialectBuilder prefixes all root builders with the `Dialect` constructor.
func Dialect ¶
func Dialect(name string) *DialectBuilder
Dialect creates a new DialectBuilder with the given dialect name.
func (*DialectBuilder) AlterIndex ¶
func (d *DialectBuilder) AlterIndex(name string) *IndexAlter
AlterIndex creates an IndexAlter for the configured dialect.
Dialect(dialect.Postgres). AlterIndex("old"). Rename("new")
func (*DialectBuilder) AlterTable ¶
func (d *DialectBuilder) AlterTable(name string) *TableAlter
AlterTable creates a TableAlter for the configured dialect.
Dialect(dialect.Postgres). AlterTable("users"). AddColumn(Column("group_id").Type("int").Attr("UNIQUE")). AddForeignKey(ForeignKey().Columns("group_id"). Reference(Reference().Table("groups").Columns("id")). OnDelete("CASCADE"), )
func (*DialectBuilder) Column ¶
func (d *DialectBuilder) Column(name string) *ColumnBuilder
Column creates a ColumnBuilder for the configured dialect.
Dialect(dialect.Postgres).. Column("group_id").Type("int").Attr("UNIQUE")
func (*DialectBuilder) CreateIndex ¶
func (d *DialectBuilder) CreateIndex(name string) *IndexBuilder
CreateIndex creates a IndexBuilder for the configured dialect.
Dialect(dialect.Postgres). CreateIndex("unique_name"). Unique(). Table("users"). Columns("first", "last")
func (*DialectBuilder) CreateTable ¶
func (d *DialectBuilder) CreateTable(name string) *TableBuilder
CreateTable creates a TableBuilder for the configured dialect.
Dialect(dialect.Postgres). CreateTable("users"). Columns( Column("id").Type("int").Attr("auto_increment"), Column("name").Type("varchar(255)"), ). PrimaryKey("id")
func (*DialectBuilder) CreateView ¶
func (d *DialectBuilder) CreateView(name string) *ViewBuilder
CreateView creates a ViewBuilder for the configured dialect.
t := Table("users") Dialect(dialect.Postgres). CreateView("users"). Columns( Column("id").Type("int"), Column("name").Type("varchar(255)"), ). As(Select(t.C("id"), t.C("name")).From(t))
func (*DialectBuilder) Delete ¶
func (d *DialectBuilder) Delete(table string) *DeleteBuilder
Delete creates a DeleteBuilder for the configured dialect.
Dialect(dialect.Postgres). Delete().From("users")
func (*DialectBuilder) Describe ¶
func (d *DialectBuilder) Describe(name string) *DescribeBuilder
Describe creates a DescribeBuilder for the configured dialect.
Dialect(dialect.Postgres). Describe("users")
func (*DialectBuilder) DropIndex ¶
func (d *DialectBuilder) DropIndex(name string) *DropIndexBuilder
DropIndex creates a DropIndexBuilder for the configured dialect.
Dialect(dialect.Postgres). DropIndex("name")
func (*DialectBuilder) Expr ¶
func (d *DialectBuilder) Expr(f func(*Builder)) Querier
Expr builds a dialect-aware expression from the given callback.
func (*DialectBuilder) Insert ¶
func (d *DialectBuilder) Insert(table string) *InsertBuilder
Insert creates a InsertBuilder for the configured dialect.
Dialect(dialect.Postgres). Insert("users").Columns("age").Values(1)
func (*DialectBuilder) Select ¶
func (d *DialectBuilder) Select(columns ...string) *Selector
Select creates a Selector for the configured dialect.
Dialect(dialect.Postgres). Select().From(Table("users"))
func (*DialectBuilder) SelectExpr ¶
func (d *DialectBuilder) SelectExpr(exprs ...Querier) *Selector
SelectExpr is like Select, but supports passing arbitrary expressions for SELECT clause.
Dialect(dialect.Postgres). SelectExpr(expr...). From(Table("users"))
func (*DialectBuilder) String ¶
func (d *DialectBuilder) String(f func(*Builder)) string
String builds a dialect-aware expression string from the given callback.
func (*DialectBuilder) Table ¶
func (d *DialectBuilder) Table(name string) *SelectTable
Table creates a SelectTable for the configured dialect.
Dialect(dialect.Postgres). Table("users").As("u")
func (*DialectBuilder) Update ¶
func (d *DialectBuilder) Update(table string) *UpdateBuilder
Update creates a UpdateBuilder for the configured dialect.
Dialect(dialect.Postgres). Update("users").Set("name", "foo")
func (*DialectBuilder) With ¶
func (d *DialectBuilder) With(name string) *WithBuilder
With creates a WithBuilder for the configured dialect.
Dialect(dialect.Postgres). With("users_view"). As(Select().From(Table("users")))
type Driver ¶
type Driver struct { Conn // contains filtered or unexported fields }
Driver is a dialect.Driver implementation for SQL based databases.
func NewDriver ¶
NewDriver creates a new Driver with the given Conn and dialect.
func Open ¶
Open wraps the database/sql.Open method and returns a dialect.Driver that implements the an ent/dialect.Driver interface.
func OpenDB ¶
OpenDB wraps the given database/sql.DB method with a Driver.
func (*Driver) BeginTx ¶
BeginTx starts a transaction with options.
func (*Driver) Close ¶
Close closes the underlying connection.
func (Driver) DB ¶
DB returns the underlying *sql.DB instance.
func (Driver) Dialect ¶
Dialect implements the dialect.Dialect method.
func (*Driver) Tx ¶
Tx starts and returns a transaction.
type DropIndexBuilder ¶
type DropIndexBuilder struct { Builder // contains filtered or unexported fields }
DropIndexBuilder is a builder for `DROP INDEX` statement.
func DropIndex ¶
func DropIndex(name string) *DropIndexBuilder
DropIndex creates a builder for the `DROP INDEX` statement.
MySQL: DropIndex("index_name"). Table("users"). SQLite/PostgreSQL: DropIndex("index_name")
func (*DropIndexBuilder) Query ¶
func (d *DropIndexBuilder) Query() (string, []any)
Query returns query representation of a reference clause.
DROP INDEX index_name [ON table_name]
func (*DropIndexBuilder) Table ¶
func (d *DropIndexBuilder) Table(table string) *DropIndexBuilder
Table defines the table for the index.
type ExecQuerier ¶
type ExecQuerier interface { ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error) QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error) }
ExecQuerier wraps the standard Exec and Query methods.
type ForeignKeyBuilder ¶
type ForeignKeyBuilder struct { Builder // contains filtered or unexported fields }
ForeignKeyBuilder is the builder for the foreign-key constraint clause.
func ForeignKey ¶
func ForeignKey(symbol ...string) *ForeignKeyBuilder
ForeignKey returns a builder for the foreign-key constraint clause in create/alter table statements.
ForeignKey(). Columns("group_id"). Reference(Reference().Table("groups").Columns("id")). OnDelete("CASCADE")
func (*ForeignKeyBuilder) Columns ¶
func (fk *ForeignKeyBuilder) Columns(s ...string) *ForeignKeyBuilder
Columns sets the columns of the foreign key in the source table.
func (*ForeignKeyBuilder) OnDelete ¶
func (fk *ForeignKeyBuilder) OnDelete(action string) *ForeignKeyBuilder
OnDelete sets the on delete action for this constraint.
func (*ForeignKeyBuilder) OnUpdate ¶
func (fk *ForeignKeyBuilder) OnUpdate(action string) *ForeignKeyBuilder
OnUpdate sets the on delete action for this constraint.
func (*ForeignKeyBuilder) Query ¶
func (fk *ForeignKeyBuilder) Query() (string, []any)
Query returns query representation of a foreign key constraint.
func (*ForeignKeyBuilder) Reference ¶
func (fk *ForeignKeyBuilder) Reference(r *ReferenceBuilder) *ForeignKeyBuilder
Reference sets the reference clause.
func (*ForeignKeyBuilder) Symbol ¶
func (fk *ForeignKeyBuilder) Symbol(s string) *ForeignKeyBuilder
Symbol sets the symbol of the foreign key.
type Func ¶
type Func struct { Builder // contains filtered or unexported fields }
Func represents an SQL function.
func (*Func) Append ¶
Append appends a new function to the function callbacks. The callback list are executed on call to String.
func (*Func) Avg ¶
Avg wraps the ident with the AVG aggregation function.
func (*Func) Count ¶
Count wraps the ident with the COUNT aggregation function.
func (*Func) Lower ¶
Lower wraps the given ident with the LOWER function.
func (*Func) Max ¶
Max wraps the ident with the MAX aggregation function.
func (*Func) Min ¶
Min wraps the ident with the MIN aggregation function.
func (*Func) String ¶
String implements the fmt.Stringer.
func (*Func) Sum ¶
Sum wraps the ident with the SUM aggregation function.
type IndexAlter ¶
type IndexAlter struct { Builder Queries []Querier // alter options. // contains filtered or unexported fields }
IndexAlter is a query builder for `ALTER INDEX` statement.
func AlterIndex ¶
func AlterIndex(name string) *IndexAlter
AlterIndex returns a query builder for the `ALTER INDEX` statement.
AlterIndex("old_key"). Rename("new_key")
func (*IndexAlter) Query ¶
func (i *IndexAlter) Query() (string, []any)
Query returns query representation of the `ALTER INDEX` statement.
ALTER INDEX name [alter_specification]
func (*IndexAlter) Rename ¶
func (i *IndexAlter) Rename(name string) *IndexAlter
Rename appends the `RENAME TO` clause to the `ALTER INDEX` statement.
type IndexBuilder ¶
type IndexBuilder struct { Builder // contains filtered or unexported fields }
IndexBuilder is a builder for `CREATE INDEX` statement.
func CreateIndex ¶
func CreateIndex(name string) *IndexBuilder
CreateIndex creates a builder for the `CREATE INDEX` statement.
CreateIndex("index_name"). Unique(). Table("users"). Column("name")
Or:
CreateIndex("index_name"). Unique(). Table("users"). Columns("name", "age")
func (*IndexBuilder) Column ¶
func (i *IndexBuilder) Column(column string) *IndexBuilder
Column appends a column to the column list for the index.
func (*IndexBuilder) Columns ¶
func (i *IndexBuilder) Columns(columns ...string) *IndexBuilder
Columns appends the given columns to the column list for the index.
func (*IndexBuilder) IfNotExists ¶
func (i *IndexBuilder) IfNotExists() *IndexBuilder
IfNotExists appends the `IF NOT EXISTS` clause to the `CREATE INDEX` statement.
func (*IndexBuilder) Query ¶
func (i *IndexBuilder) Query() (string, []any)
Query returns query representation of a reference clause.
func (*IndexBuilder) Table ¶
func (i *IndexBuilder) Table(table string) *IndexBuilder
Table defines the table for the index.
func (*IndexBuilder) Unique ¶
func (i *IndexBuilder) Unique() *IndexBuilder
Unique sets the index to be a unique index.
func (*IndexBuilder) Using ¶
func (i *IndexBuilder) Using(method string) *IndexBuilder
Using sets the method to create the index with.
type InsertBuilder ¶
type InsertBuilder struct { Builder // contains filtered or unexported fields }
InsertBuilder is a builder for `INSERT INTO` statement.
func Insert ¶
func Insert(table string) *InsertBuilder
Insert creates a builder for the `INSERT INTO` statement.
Insert("users"). Columns("name", "age"). Values("a8m", 10). Values("foo", 20)
Note: Insert inserts all values in one batch.
func (*InsertBuilder) Columns ¶
func (i *InsertBuilder) Columns(columns ...string) *InsertBuilder
Columns appends columns to the INSERT statement.
func (*InsertBuilder) Default ¶
func (i *InsertBuilder) Default() *InsertBuilder
Default sets the default values clause based on the dialect type.
func (*InsertBuilder) OnConflict ¶
func (i *InsertBuilder) OnConflict(opts ...ConflictOption) *InsertBuilder
OnConflict allows configuring the `ON CONFLICT` / `ON DUPLICATE KEY` clause of the `INSERT` statement. For example:
sql.Insert("users"). Columns("id", "name"). Values(1, "Mashraki"). OnConflict( sql.ConflictColumns("id"), sql.ResolveWithNewValues() )
func (*InsertBuilder) Query ¶
func (i *InsertBuilder) Query() (string, []any)
Query returns query representation of an `INSERT INTO` statement.
func (*InsertBuilder) QueryErr ¶
func (i *InsertBuilder) QueryErr() (string, []any, error)
QueryErr returns query representation of an `INSERT INTO` statement and any error occurred in building the statement.
func (*InsertBuilder) Returning ¶
func (i *InsertBuilder) Returning(columns ...string) *InsertBuilder
Returning adds the `RETURNING` clause to the insert statement. Supported by SQLite and PostgreSQL.
func (*InsertBuilder) Schema ¶
func (i *InsertBuilder) Schema(name string) *InsertBuilder
Schema sets the database name for the insert table.
func (*InsertBuilder) Set ¶
func (i *InsertBuilder) Set(column string, v any) *InsertBuilder
Set is a syntactic sugar API for inserting only one row.
func (*InsertBuilder) Values ¶
func (i *InsertBuilder) Values(values ...any) *InsertBuilder
Values append a value tuple for the insert statement.
type LockAction ¶
type LockAction string
LockAction tells the transaction what to do in case of requesting a row that is locked by other transaction.
const ( // NoWait means never wait and returns an error. NoWait LockAction = "NOWAIT" // SkipLocked means never wait and skip. SkipLocked LockAction = "SKIP LOCKED" )
type LockOption ¶
type LockOption func(*LockOptions)
LockOption allows configuring the LockOptions using functional options.
func WithLockAction ¶
func WithLockAction(action LockAction) LockOption
WithLockAction sets the Action of the lock.
func WithLockClause ¶
func WithLockClause(clause string) LockOption
WithLockClause allows providing a custom clause for locking the statement. For example, in MySQL <= 8.22:
Select(). From(Table("users")). ForShare( WithLockClause("LOCK IN SHARE MODE"), )
func WithLockTables ¶
func WithLockTables(tables ...string) LockOption
WithLockTables sets the Tables of the lock.
type LockOptions ¶
type LockOptions struct { // Strength of the lock. Strength LockStrength // Action of the lock. Action LockAction // Tables are an option tables. Tables []string // contains filtered or unexported fields }
LockOptions defines a SELECT statement lock for protecting concurrent updates.
type LockStrength ¶
type LockStrength string
LockStrength defines the strength of the lock (see the list below).
const ( LockStrength = "SHARE" LockUpdate LockStrength = "UPDATE" LockNoKeyUpdate LockStrength = "NO KEY UPDATE" LockStrength = "KEY SHARE" )
A list of all locking clauses.
type NullBool ¶
NullBool is an alias to sql.NullBool.
type NullFloat64 ¶
type NullFloat64 = sql.NullFloat64
NullFloat64 is an alias to sql.NullFloat64.
type NullInt64 ¶
NullInt64 is an alias to sql.NullInt64.
type NullScanner ¶
type NullScanner struct { S sql.Scanner Valid bool // Valid is true if the Scan value is not NULL. }
NullScanner implements the sql.Scanner interface such that it can be used as a scan destination, similar to the types above.
func (*NullScanner) Scan ¶
func (n *NullScanner) Scan(value any) error
Scan implements the Scanner interface.
type NullString ¶
type NullString = sql.NullString
NullString is an alias to sql.NullString.
type NullTime ¶
NullTime represents a time.Time that may be null.
type Op ¶
type Op int
An Op represents an operator.
const ( OpEQ Op = iota // = OpNEQ // <> OpGT // > OpGTE // >= OpLT // < OpLTE // <= OpIn // IN OpNotIn // NOT IN OpLike // LIKE OpIsNull // IS NULL OpNotNull // IS NOT NULL OpAdd // + OpSub // - OpMul // * OpDiv // / (Quotient) OpMod // % (Reminder) )
Predicate and arithmetic operators.
type OrderExprTerm ¶
type OrderExprTerm struct { OrderTermOptions Expr func(*Selector) Querier // Expression. }
OrderExprTerm represents an ordering by an expression.
func OrderByCount ¶
func OrderByCount(field string, opts ...OrderTermOption) *OrderExprTerm
OrderByCount returns an ordering by the count of the given field.
func OrderBySum ¶
func OrderBySum(field string, opts ...OrderTermOption) *OrderExprTerm
OrderBySum returns an ordering by the sum of the given field.
type OrderFieldTerm ¶
type OrderFieldTerm struct { OrderTermOptions Field string // Field name. }
OrderFieldTerm represents an ordering by a field.
func OrderByField ¶
func OrderByField(field string, opts ...OrderTermOption) *OrderFieldTerm
OrderByField returns an ordering by the given field.
func (*OrderFieldTerm) ToFunc ¶
func (f *OrderFieldTerm) ToFunc() func(*Selector)
ToFunc returns a function that sets the ordering on the given selector. This is used by the generated code.
type OrderTerm ¶
type OrderTerm interface {
// contains filtered or unexported methods
}
OrderTerm represents an ordering by a term.
type OrderTermOption ¶
type OrderTermOption func(*OrderTermOptions)
OrderTermOption is an option for ordering by a term.
func OrderAs ¶
func OrderAs(as string) OrderTermOption
OrderAs returns an option to set the alias for the ordering.
func OrderAsc ¶
func OrderAsc() OrderTermOption
OrderAsc returns an option to sort in ascending order.
func OrderDesc ¶
func OrderDesc() OrderTermOption
OrderDesc returns an option to sort in descending order.
func OrderNullsFirst ¶
func OrderNullsFirst() OrderTermOption
OrderNullsFirst returns an option to sort nulls first.
func OrderNullsLast ¶
func OrderNullsLast() OrderTermOption
OrderNullsLast returns an option to sort nulls last.
func OrderSelectAs ¶
func OrderSelectAs(as string) OrderTermOption
OrderSelectAs returns an option to set and select the alias for the ordering.
func OrderSelected ¶
func OrderSelected() OrderTermOption
OrderSelected returns an option to select the ordering term.
type OrderTermOptions ¶
type OrderTermOptions struct { Desc bool // Whether to sort in descending order. As string // Optional alias. Selected bool // Whether the term should be selected. NullsFirst bool // Whether to sort nulls first. NullsLast bool // Whether to sort nulls last. }
OrderTermOptions represents options for ordering by a term.
func NewOrderTermOptions ¶
func NewOrderTermOptions(opts ...OrderTermOption) *OrderTermOptions
NewOrderTermOptions returns a new OrderTermOptions from the given options.
type ParamFormatter ¶
type ParamFormatter interface { // The FormatParam function lets users define // custom placeholder formatting for their types. // For example, formatting the default placeholder // from '?' to 'ST_GeomFromWKB(?)' for MySQL dialect. FormatParam(placeholder string, info *StmtInfo) string }
ParamFormatter wraps the FormatPram function.
type Predicate ¶
type Predicate struct { Builder // contains filtered or unexported fields }
Predicate is a where predicate.
func And ¶
And combines all given predicates with AND between them.
func ColumnsEQ ¶
ColumnsEQ appends a "=" predicate between 2 columns.
func ColumnsGT ¶
ColumnsGT appends a ">" predicate between 2 columns.
func ColumnsGTE ¶
ColumnsGTE appends a ">=" predicate between 2 columns.
func ColumnsHasPrefix ¶
ColumnsHasPrefix appends a new predicate that checks if the given column begins with the other column (prefix).
func ColumnsLT ¶
ColumnsLT appends a "<" predicate between 2 columns.
func ColumnsLTE ¶
ColumnsLTE appends a "<=" predicate between 2 columns.
func ColumnsNEQ ¶
ColumnsNEQ appends a "<>" predicate between 2 columns.
func ColumnsOp ¶
ColumnsOp returns a new predicate between 2 columns.
func CompositeGT ¶
CompositeGT returns a composite ">" predicate
func CompositeLT ¶
CompositeLT returns a composite "<" predicate
func Contains ¶
Contains is a helper predicate that checks substring using the LIKE predicate.
func ContainsFold ¶
ContainsFold is a helper predicate that checks substring using the LIKE predicate with case-folding.
func EQ ¶
EQ returns a "=" predicate.
func EqualFold ¶
EqualFold is a helper predicate that applies the "=" predicate with case-folding.
func Exists ¶
Exists returns the `Exists` predicate.
func ExprP ¶
ExprP creates a new predicate from the given expression.
ExprP("A = ? AND B > ?", args...)
func False ¶
func False() *Predicate
False appends the FALSE keyword to the predicate.
Delete().From("users").Where(False())
func GT ¶
GT returns a ">" predicate.
func GTE ¶
GTE returns a ">=" predicate.
func HasPrefix ¶
HasPrefix is a helper predicate that checks prefix using the LIKE predicate.
func HasPrefixFold ¶
HasPrefixFold is a helper predicate that checks prefix using the ILIKE predicate.
func HasSuffix ¶
HasSuffix is a helper predicate that checks suffix using the LIKE predicate.
func HasSuffixFold ¶
HasSuffixFold is a helper predicate that checks suffix using the ILIKE predicate.
func In ¶
In returns the `IN` predicate.
func InInts ¶
InInts returns the `IN` predicate for ints.
func InValues ¶
InValues adds the `IN` predicate for slice of driver.Value.
func IsFalse ¶
IsFalse appends a predicate that checks if the column value is falsey.
func IsNull ¶
IsNull returns the `IS NULL` predicate.
func IsTrue ¶
IsTrue appends a predicate that checks if the column value is truthy.
func LT ¶
LT returns a "<" predicate.
func LTE ¶
LTE returns a "<=" predicate.
func Like ¶
Like returns the `LIKE` predicate.
func NEQ ¶
NEQ returns a "<>" predicate.
func Not ¶
Not wraps the given predicate with the not predicate.
Not(Or(EQ("name", "foo"), EQ("name", "bar")))
func NotExists ¶
NotExists returns the `NotExists` predicate.
func NotIn ¶
NotIn returns the `Not IN` predicate.
func NotNull ¶
NotNull returns the `IS NOT NULL` predicate.
func Or ¶
Or combines all given predicates with OR between them.
Or(EQ("name", "foo"), EQ("name", "bar"))
func P ¶
P creates a new predicate.
P().EQ("name", "a8m").And().EQ("age", 30)
func (*Predicate) Append ¶
Append appends a new function to the predicate callbacks. The callback list are executed on call to Query.
func (*Predicate) ColumnsEQ ¶
ColumnsEQ appends a "=" predicate between 2 columns.
func (*Predicate) ColumnsGT ¶
ColumnsGT appends a ">" predicate between 2 columns.
func (*Predicate) ColumnsGTE ¶
ColumnsGTE appends a ">=" predicate between 2 columns.
func (*Predicate) ColumnsHasPrefix ¶
ColumnsHasPrefix appends a new predicate that checks if the given column begins with the other column (prefix).
func (*Predicate) ColumnsLT ¶
ColumnsLT appends a "<" predicate between 2 columns.
func (*Predicate) ColumnsLTE ¶
ColumnsLTE appends a "<=" predicate between 2 columns.
func (*Predicate) ColumnsNEQ ¶
ColumnsNEQ appends a "<>" predicate between 2 columns.
func (*Predicate) ColumnsOp ¶
ColumnsOp appends the given predicate between 2 columns.
func (*Predicate) CompositeGT ¶
CompositeGT returns a composite ">" predicate.
func (*Predicate) CompositeLT ¶
CompositeLT appends a composite "<" predicate.
func (*Predicate) Contains ¶
Contains is a helper predicate that checks substring using the LIKE predicate.
func (*Predicate) ContainsFold ¶
ContainsFold is a helper predicate that applies the LIKE predicate with case-folding.
func (*Predicate) EQ ¶
EQ appends a "=" predicate.
func (*Predicate) EqualFold ¶
EqualFold is a helper predicate that applies the "=" predicate with case-folding.
func (*Predicate) Exists ¶
Exists appends the `EXISTS` predicate with the given query.
func (*Predicate) False ¶
False appends FALSE to the predicate.
func (*Predicate) GT ¶
GT appends a ">" predicate.
func (*Predicate) GTE ¶
GTE appends a ">=" predicate.
func (*Predicate) HasPrefix ¶
HasPrefix is a helper predicate that checks prefix using the LIKE predicate.
func (*Predicate) HasPrefixFold ¶
HasPrefixFold is a helper predicate that checks prefix using the ILIKE predicate.
func (*Predicate) HasSuffix ¶
HasSuffix is a helper predicate that checks suffix using the LIKE predicate.
func (*Predicate) HasSuffixFold ¶
HasSuffixFold is a helper predicate that checks suffix using the ILIKE predicate.
func (*Predicate) In ¶
In appends the `IN` predicate.
func (*Predicate) InInts ¶
InInts adds the `IN` predicate for ints.
func (*Predicate) InValues ¶
InValues adds the `IN` predicate for slice of driver.Value.
func (*Predicate) IsFalse ¶
IsFalse appends a predicate that checks if the column value is falsey.
func (*Predicate) IsNull ¶
IsNull appends the `IS NULL` predicate.
func (*Predicate) IsTrue ¶
IsTrue appends a predicate that checks if the column value is truthy.
func (*Predicate) LT ¶
LT appends a "<" predicate.
func (*Predicate) LTE ¶
LTE appends a "<=" predicate.
func (*Predicate) Like ¶
Like appends the `LIKE` predicate.
func (*Predicate) NEQ ¶
NEQ appends a "<>" predicate.
func (*Predicate) Not ¶
Not appends NOT to the predicate.
func (*Predicate) NotExists ¶
NotExists appends the `NOT EXISTS` predicate with the given query.
func (*Predicate) NotIn ¶
NotIn appends the `Not IN` predicate.
func (*Predicate) NotNull ¶
NotNull appends the `IS NOT NULL` predicate.
func (*Predicate) Query ¶
Query returns query representation of a predicate.
type Querier ¶
type Querier interface { // Query returns the query representation of the element // and its arguments (if any). Query() (string, []any) }
Querier wraps the basic Query method that is implemented by the different builders in this file.
func DescExpr ¶
DescExpr returns a new expression where the DESC suffix is added.
func Expr ¶
Expr returns an SQL expression that implements the Querier interface.
func ExprFunc ¶
ExprFunc returns an expression function that implements the Querier interface.
Update("users"). Set("x", ExprFunc(func(b *Builder) { // The sql.Builder config (argc and dialect) // was set before the function was executed. b.Ident("x").WriteOp(OpAdd).Arg(1) }))
func Raw ¶
Raw returns a raw SQL query that is placed as-is in the query.
type Queries ¶
type Queries []Querier
Queries are list of queries join with space between them.
func (Queries) Query ¶
Query returns query representation of Queriers.
type ReferenceBuilder ¶
type ReferenceBuilder struct { Builder // contains filtered or unexported fields }
ReferenceBuilder is a builder for the reference clause in constraints. For example, in foreign key creation.
func Reference ¶
func Reference() *ReferenceBuilder
Reference creates a reference builder for the reference_option clause.
Reference().Table("groups").Columns("id")
func (*ReferenceBuilder) Columns ¶
func (r *ReferenceBuilder) Columns(s ...string) *ReferenceBuilder
Columns sets the columns of the referenced table.
func (*ReferenceBuilder) Query ¶
func (r *ReferenceBuilder) Query() (string, []any)
Query returns query representation of a reference clause.
func (*ReferenceBuilder) Table ¶
func (r *ReferenceBuilder) Table(s string) *ReferenceBuilder
Table sets the referenced table.
type Result ¶
Result is an alias to sql.Result.
type Rows ¶
type Rows struct{ ColumnScanner }
Rows wraps the sql.Rows to avoid locks copy.
type SelectTable ¶
type SelectTable struct { Builder // contains filtered or unexported fields }
SelectTable is a table selector.
func Table ¶
func Table(name string) *SelectTable
Table returns a new table selector.
t1 := Table("users").As("u") return Select(t1.C("name"))
func (*SelectTable) As ¶
func (s *SelectTable) As(alias string) *SelectTable
As adds the AS clause to the table selector.
func (*SelectTable) C ¶
func (s *SelectTable) C(column string) string
C returns a formatted string for the table column.
func (*SelectTable) Columns ¶
func (s *SelectTable) Columns(columns ...string) []string
Columns returns a list of formatted strings for the table columns.
func (*SelectTable) Schema ¶
func (s *SelectTable) Schema(name string) *SelectTable
Schema sets the schema name of the table.
func (*SelectTable) Unquote ¶
func (s *SelectTable) Unquote() *SelectTable
Unquote makes the table name to be formatted as raw string (unquoted). It is useful when you don't want to query tables under the current database. For example: "INFORMATION_SCHEMA.TABLE_CONSTRAINTS" in MySQL.
type SelectValues ¶
SelectValues maps a selected column to its value. Used by the generated code for storing runtime selected columns/expressions.
func (SelectValues) Get ¶
func (s SelectValues) Get(name string) (any, error)
Get returns the value of the given column.
func (*SelectValues) Set ¶
func (s *SelectValues) Set(name string, v any)
Set sets the value of the given column.
type Selector ¶
type Selector struct { Builder // contains filtered or unexported fields }
Selector is a builder for the `SELECT` statement.
func Select ¶
Select returns a new selector for the `SELECT` statement.
t1 := Table("users").As("u") t2 := Select().From(Table("groups")).Where(EQ("user_id", 10)).As("g") return Select(t1.C("id"), t2.C("name")). From(t1). Join(t2). On(t1.C("id"), t2.C("user_id"))
func SelectExpr ¶
SelectExpr is like Select, but supports passing arbitrary expressions for SELECT clause.
func (*Selector) AppendFrom ¶
AppendFrom appends a new TableView to the `FROM` clause.
func (*Selector) AppendFromExpr ¶
AppendFromExpr appends an expression (Queries) to the `FROM` clause.
func (*Selector) AppendSelect ¶
AppendSelect appends additional columns to the SELECT statement.
func (*Selector) AppendSelectAs ¶
AppendSelectAs appends additional column to the SELECT statement with the given alias.
func (*Selector) AppendSelectExpr ¶
AppendSelectExpr appends additional expressions to the SELECT statement.
func (*Selector) AppendSelectExprAs ¶
AppendSelectExprAs appends additional expressions to the SELECT statement with the given name.
func (*Selector) As ¶
As give this selection an alias.
func (*Selector) C ¶
C returns a formatted string for a selected column from this statement.
func (*Selector) ClearOrder ¶
ClearOrder clears the ORDER BY clause to be empty.
func (*Selector) Clone ¶
Clone returns a duplicate of the selector, including all associated steps. It can be used to prepare common SELECT statements and use them differently after the clone is made.
func (*Selector) CollectPredicates ¶
CollectPredicates indicates the appended predicated should be collected and not appended to the `WHERE` clause.
func (*Selector) CollectedPredicates ¶
CollectedPredicates returns the collected predicates.
func (*Selector) Columns ¶
Columns returns a list of formatted strings for a selected columns from this statement.
func (*Selector) Context ¶
Context returns the Selector context or Background if nil.
func (*Selector) Count ¶
Count sets the Select statement to be a `SELECT COUNT(*)`.
func (*Selector) Distinct ¶
Distinct adds the DISTINCT keyword to the `SELECT` statement.
func (*Selector) Except ¶
Except appends the EXCEPT clause to the query.
func (*Selector) ExceptAll ¶
ExceptAll appends the EXCEPT ALL clause to the query.
func (*Selector) FindSelection ¶
FindSelection returns all occurrences in the selection that match the given column name. For example, for column "a" the following match: a, "a", "t"."a", "t"."b" AS "a".
func (*Selector) For ¶
func (s *Selector) For(l LockStrength, opts ...LockOption) *Selector
For sets the lock configuration for suffixing the `SELECT` statement with the `FOR [SHARE | UPDATE] ...` clause.
func (*Selector) ForShare ¶
func (s *Selector) ForShare(opts ...LockOption) *Selector
ForShare sets the lock configuration for suffixing the `SELECT` statement with the `FOR SHARE` clause.
func (*Selector) ForUpdate ¶
func (s *Selector) ForUpdate(opts ...LockOption) *Selector
ForUpdate sets the lock configuration for suffixing the `SELECT` statement with the `FOR UPDATE` clause.
func (*Selector) From ¶
From sets the source of `FROM` clause.
func (*Selector) FromExpr ¶
FromExpr sets the expression of `FROM` clause.
func (*Selector) FromSelect ¶
FromSelect copies the predicate from a selector.
func (*Selector) FullJoin ¶
FullJoin appends a `FULL JOIN` clause to the statement.
func (*Selector) GroupBy ¶
GroupBy appends the `GROUP BY` clause to the `SELECT` statement.
func (*Selector) HasJoins ¶
HasJoins reports if the selector has any JOINs.
func (*Selector) Having ¶
Having appends a predicate for the `HAVING` clause.
func (*Selector) Intersect ¶
Intersect appends the INTERSECT clause to the query.
func (*Selector) IntersectAll ¶
IntersectAll appends the INTERSECT ALL clause to the query.
func (*Selector) Join ¶
Join appends a `JOIN` clause to the statement.
func (*Selector) JoinedTable ¶
func (s *Selector) JoinedTable(name string) (*SelectTable, bool)
JoinedTable returns the first joined table with the given name.
func (*Selector) JoinedTableView ¶
JoinedTableView returns the first joined TableView with the given name or alias.
func (*Selector) LeftJoin ¶
LeftJoin appends a `LEFT JOIN` clause to the statement.
func (*Selector) Limit ¶
Limit adds the `LIMIT` clause to the `SELECT` statement.
func (*Selector) New ¶
New returns a new Selector with the same dialect and context.
func (*Selector) Not ¶
Not sets the next coming predicate with not.
func (*Selector) Offset ¶
Offset adds the `OFFSET` clause to the `SELECT` statement.
func (*Selector) On ¶
On sets the `ON` clause for the `JOIN` operation.
func (*Selector) OnP ¶
OnP sets or appends the given predicate for the `ON` clause of the statement.
func (*Selector) Or ¶
Or sets the next coming predicate with OR operator (disjunction).
func (*Selector) OrderBy ¶
OrderBy appends the `ORDER BY` clause to the `SELECT` statement.
func (*Selector) OrderColumns ¶
OrderColumns returns the ordered columns in the Selector. Note, this function skips columns selected with expressions.
func (*Selector) OrderExpr ¶
OrderExpr appends the `ORDER BY` clause to the `SELECT` statement with custom list of expressions.
func (*Selector) OrderExprFunc ¶
OrderExprFunc appends the `ORDER BY` expression that evaluates the given function.
func (*Selector) P ¶
P returns the predicate of a selector.
func (*Selector) Prefix ¶
Prefix prefixes the query with list of queries.
func (*Selector) Query ¶
Query returns query representation of a `SELECT` statement.
func (*Selector) RightJoin ¶
RightJoin appends a `RIGHT JOIN` clause to the statement.
func (*Selector) Select ¶
Select changes the columns selection of the SELECT statement. Empty selection means all columns *.
func (*Selector) SelectDistinct ¶
SelectDistinct selects distinct columns.
func (*Selector) SelectExpr ¶
SelectExpr changes the columns selection of the SELECT statement with custom list of expressions.
func (*Selector) SelectedColumns ¶
SelectedColumns returns the selected columns in the Selector.
func (*Selector) SetDistinct ¶
SetDistinct sets explicitly if the returned rows are distinct or indistinct.
func (*Selector) SetP ¶
SetP sets explicitly the predicate function for the selector and clear its previous state.
func (*Selector) Table ¶
func (s *Selector) Table() *SelectTable
Table returns the selected table.
func (*Selector) TableName ¶
TableName returns the name of the selected table or alias of selector.
func (*Selector) UncollectedPredicates ¶
UncollectedPredicates stop collecting predicates.
func (*Selector) Union ¶
Union appends the UNION (DISTINCT) clause to the query.
func (*Selector) UnionAll ¶
UnionAll appends the UNION ALL clause to the query.
func (*Selector) UnionDistinct ¶
UnionDistinct appends the UNION DISTINCT clause to the query. Deprecated: use Union instead as by default, duplicate rows are eliminated unless ALL is specified.
func (*Selector) UnqualifiedColumns ¶
UnqualifiedColumns returns an unqualified version of the selected columns in the Selector. e.g. "t1"."c" => "c".
func (*Selector) Where ¶
Where sets or appends the given predicate to the statement.
func (*Selector) WithContext ¶
WithContext sets the context into the *Selector.
type StmtInfo ¶
type StmtInfo struct { // The Dialect of the SQL driver. Dialect string }
StmtInfo holds an information regarding the statement
type TableAlter ¶
type TableAlter struct { Builder Queries []Querier // columns and foreign-keys to add. // contains filtered or unexported fields }
TableAlter is a query builder for `ALTER TABLE` statement.
func AlterTable ¶
func AlterTable(name string) *TableAlter
AlterTable returns a query builder for the `ALTER TABLE` statement.
AlterTable("users"). AddColumn(Column("group_id").Type("int").Attr("UNIQUE")). AddForeignKey(ForeignKey().Columns("group_id"). Reference(Reference().Table("groups").Columns("id")).OnDelete("CASCADE")), )
func (*TableAlter) AddColumn ¶
func (t *TableAlter) AddColumn(c *ColumnBuilder) *TableAlter
AddColumn appends the `ADD COLUMN` clause to the given `ALTER TABLE` statement.
func (*TableAlter) AddForeignKey ¶
func (t *TableAlter) AddForeignKey(fk *ForeignKeyBuilder) *TableAlter
AddForeignKey adds a foreign key constraint to the `ALTER TABLE` statement.
func (*TableAlter) AddIndex ¶
func (t *TableAlter) AddIndex(idx *IndexBuilder) *TableAlter
AddIndex appends the `ADD INDEX` clause to the given `ALTER TABLE` statement.
func (*TableAlter) ChangeColumn ¶
func (t *TableAlter) ChangeColumn(name string, c *ColumnBuilder) *TableAlter
ChangeColumn appends the `CHANGE COLUMN` clause to the given `ALTER TABLE` statement.
func (*TableAlter) DropColumn ¶
func (t *TableAlter) DropColumn(c *ColumnBuilder) *TableAlter
DropColumn appends the `DROP COLUMN` clause to the given `ALTER TABLE` statement.
func (*TableAlter) DropConstraint ¶
func (t *TableAlter) DropConstraint(ident string) *TableAlter
DropConstraint appends the `DROP CONSTRAINT` clause to the given `ALTER TABLE` statement.
func (*TableAlter) DropForeignKey ¶
func (t *TableAlter) DropForeignKey(ident string) *TableAlter
DropForeignKey appends the `DROP FOREIGN KEY` clause to the given `ALTER TABLE` statement.
func (*TableAlter) DropIndex ¶
func (t *TableAlter) DropIndex(name string) *TableAlter
DropIndex appends the `DROP INDEX` clause to the given `ALTER TABLE` statement.
func (*TableAlter) ModifyColumn ¶
func (t *TableAlter) ModifyColumn(c *ColumnBuilder) *TableAlter
ModifyColumn appends the `MODIFY/ALTER COLUMN` clause to the given `ALTER TABLE` statement.
func (*TableAlter) ModifyColumns ¶
func (t *TableAlter) ModifyColumns(cs ...*ColumnBuilder) *TableAlter
ModifyColumns calls ModifyColumn with each of the given builders.
func (*TableAlter) Query ¶
func (t *TableAlter) Query() (string, []any)
Query returns query representation of the `ALTER TABLE` statement.
ALTER TABLE name [alter_specification]
func (*TableAlter) RenameColumn ¶
func (t *TableAlter) RenameColumn(old, new string) *TableAlter
RenameColumn appends the `RENAME COLUMN` clause to the given `ALTER TABLE` statement.
func (*TableAlter) RenameIndex ¶
func (t *TableAlter) RenameIndex(curr, new string) *TableAlter
RenameIndex appends the `RENAME INDEX` clause to the given `ALTER TABLE` statement.
type TableBuilder ¶
type TableBuilder struct { Builder // contains filtered or unexported fields }
TableBuilder is a query builder for `CREATE TABLE` statement.
func CreateTable ¶
func CreateTable(name string) *TableBuilder
CreateTable returns a query builder for the `CREATE TABLE` statement.
CreateTable("users"). Columns( Column("id").Type("int").Attr("auto_increment"), Column("name").Type("varchar(255)"), ). PrimaryKey("id")
func (*TableBuilder) Charset ¶
func (t *TableBuilder) Charset(s string) *TableBuilder
Charset appends the `CHARACTER SET` clause to the statement. MySQL only.
func (*TableBuilder) Checks ¶
func (t *TableBuilder) Checks(checks ...func(*Builder)) *TableBuilder
Checks adds CHECK clauses to the CREATE TABLE statement.
func (*TableBuilder) Collate ¶
func (t *TableBuilder) Collate(s string) *TableBuilder
Collate appends the `COLLATE` clause to the statement. MySQL only.
func (*TableBuilder) Column ¶
func (t *TableBuilder) Column(c *ColumnBuilder) *TableBuilder
Column appends the given column to the `CREATE TABLE` statement.
func (*TableBuilder) Columns ¶
func (t *TableBuilder) Columns(columns ...*ColumnBuilder) *TableBuilder
Columns appends a list of columns to the builder.
func (*TableBuilder) Constraints ¶
func (t *TableBuilder) Constraints(fks ...*ForeignKeyBuilder) *TableBuilder
Constraints adds a list of foreign-key constraints to the statement.
func (*TableBuilder) ForeignKeys ¶
func (t *TableBuilder) ForeignKeys(fks ...*ForeignKeyBuilder) *TableBuilder
ForeignKeys adds a list of foreign-keys to the statement (without constraints).
func (*TableBuilder) IfNotExists ¶
func (t *TableBuilder) IfNotExists() *TableBuilder
IfNotExists appends the `IF NOT EXISTS` clause to the `CREATE TABLE` statement.
func (*TableBuilder) Options ¶
func (t *TableBuilder) Options(s string) *TableBuilder
Options appends additional options to the statement (MySQL only).
func (*TableBuilder) PrimaryKey ¶
func (t *TableBuilder) PrimaryKey(column ...string) *TableBuilder
PrimaryKey adds a column to the primary-key constraint in the statement.
func (*TableBuilder) Query ¶
func (t *TableBuilder) Query() (string, []any)
Query returns query representation of a `CREATE TABLE` statement.
CREATE TABLE [IF NOT EXISTS] name
(table definition) [charset and collation]
type TableView ¶
type TableView interface { // C returns a formatted string prefixed // with the table view qualifier. C(string) string // contains filtered or unexported methods }
TableView is a view that returns a table view. Can be a Table, Selector or a View (WITH statement).
type Tx ¶
Tx implements dialect.Tx interface.
type TxOptions ¶
TxOptions holds the transaction options to be used in DB.BeginTx.
type UnknownType ¶
type UnknownType any
UnknownType is a named type to any indicates the info needs to be extracted from the underlying rows.
type UpdateBuilder ¶
type UpdateBuilder struct { Builder // contains filtered or unexported fields }
UpdateBuilder is a builder for `UPDATE` statement.
func Update ¶
func Update(table string) *UpdateBuilder
Update creates a builder for the `UPDATE` statement.
Update("users").Set("name", "foo").Set("age", 10)
func (*UpdateBuilder) Add ¶
func (u *UpdateBuilder) Add(column string, v any) *UpdateBuilder
Add adds a numeric value to the given column. Note that, calling Set(c) after Add(c) will erase previous calls with c from the builder.
func (*UpdateBuilder) Empty ¶
func (u *UpdateBuilder) Empty() bool
Empty reports whether this builder does not contain update changes.
func (*UpdateBuilder) FromSelect ¶
func (u *UpdateBuilder) FromSelect(s *Selector) *UpdateBuilder
FromSelect makes it possible to update entities that match the sub-query.
func (*UpdateBuilder) Limit ¶
func (u *UpdateBuilder) Limit(limit int) *UpdateBuilder
Limit appends the `LIMIT` clause to the `UPDATE` statement. Supported by SQLite and MySQL.
func (*UpdateBuilder) OrderBy ¶
func (u *UpdateBuilder) OrderBy(columns ...string) *UpdateBuilder
OrderBy appends the `ORDER BY` clause to the `UPDATE` statement. Supported by SQLite and MySQL.
func (*UpdateBuilder) Prefix ¶
func (u *UpdateBuilder) Prefix(stmts ...Querier) *UpdateBuilder
Prefix prefixes the UPDATE statement with list of statements.
func (*UpdateBuilder) Query ¶
func (u *UpdateBuilder) Query() (string, []any)
Query returns query representation of an `UPDATE` statement.
func (*UpdateBuilder) Returning ¶
func (u *UpdateBuilder) Returning(columns ...string) *UpdateBuilder
Returning adds the `RETURNING` clause to the insert statement. Supported by SQLite and PostgreSQL.
func (*UpdateBuilder) Schema ¶
func (u *UpdateBuilder) Schema(name string) *UpdateBuilder
Schema sets the database name for the updated table.
func (*UpdateBuilder) Set ¶
func (u *UpdateBuilder) Set(column string, v any) *UpdateBuilder
Set sets a column to a given value. If `Set` was called before with the same column name, it overrides the value of the previous call.
func (*UpdateBuilder) SetNull ¶
func (u *UpdateBuilder) SetNull(column string) *UpdateBuilder
SetNull sets a column as null value.
func (*UpdateBuilder) Where ¶
func (u *UpdateBuilder) Where(p *Predicate) *UpdateBuilder
Where adds a where predicate for update statement.
type UpdateSet ¶
type UpdateSet struct { *UpdateBuilder // contains filtered or unexported fields }
UpdateSet describes a set of changes of the `DO UPDATE` clause.
func (*UpdateSet) Add ¶
Add adds a numeric value to the given column.
func (*UpdateSet) Columns ¶
Columns returns all columns in the `INSERT` statement.
func (*UpdateSet) Set ¶
Set sets a column to a given value.
func (*UpdateSet) SetExcluded ¶
SetExcluded sets the column name to its EXCLUDED/VALUES value. For example, "c" = "excluded"."c", or `c` = VALUES(`c`).
func (*UpdateSet) SetIgnore ¶
SetIgnore sets the column to itself. For example, "id" = "users"."id".
func (*UpdateSet) SetNull ¶
SetNull sets a column as null value.
func (*UpdateSet) Table ¶
func (u *UpdateSet) Table() *SelectTable
Table returns the table the `UPSERT` statement is executed on.
func (*UpdateSet) UpdateColumns ¶
UpdateColumns returns all columns in the `UPDATE` statement.
type ViewBuilder ¶
type ViewBuilder struct { Builder // contains filtered or unexported fields }
ViewBuilder is a query builder for `CREATE VIEW` statement.
func CreateView ¶
func CreateView(name string) *ViewBuilder
CreateView returns a query builder for the `CREATE VIEW` statement.
t := Table("users") CreateView("clean_users"). Columns( Column("id").Type("int").Attr("auto_increment"), Column("name").Type("varchar(255)"), ). As(Select(t.C("id"), t.C("name")).From(t))
func (*ViewBuilder) As ¶
func (v *ViewBuilder) As(as Querier) *ViewBuilder
As sets the view definition to the builder.
func (*ViewBuilder) Column ¶
func (v *ViewBuilder) Column(c *ColumnBuilder) *ViewBuilder
Column appends the given column to the `CREATE VIEW` statement.
func (*ViewBuilder) Columns ¶
func (v *ViewBuilder) Columns(columns ...*ColumnBuilder) *ViewBuilder
Columns appends a list of columns to the builder.
func (*ViewBuilder) IfNotExists ¶
func (v *ViewBuilder) IfNotExists() *ViewBuilder
IfNotExists appends the `IF NOT EXISTS` clause to the `CREATE VIEW` statement.
func (*ViewBuilder) Query ¶
func (v *ViewBuilder) Query() (string, []any)
Query returns query representation of a `CREATE VIEW` statement.
CREATE VIEW [IF NOT EXISTS] name AS
(view definition)
func (*ViewBuilder) Schema ¶
func (v *ViewBuilder) Schema(name string) *ViewBuilder
Schema sets the database name for the view.
type WindowBuilder ¶
type WindowBuilder struct { Builder // contains filtered or unexported fields }
WindowBuilder represents a builder for a window clause. Note that window functions support is limited and used only to query rows-limited edges in pagination.
func RowNumber ¶
func RowNumber() *WindowBuilder
RowNumber returns a new window clause with the ROW_NUMBER() as a function. Using this function will assign each row a number, from 1 to N, in the order defined by the ORDER BY clause in the window spec.
func Window ¶
func Window(fn func(*Builder)) *WindowBuilder
Window returns a new window clause with a custom selector allowing for custom window functions.
Window(func(b *Builder) { b.WriteString(Sum(posts.C("duration"))) }).PartitionBy("author_id").OrderBy("id"), "duration").
func (*WindowBuilder) OrderBy ¶
func (w *WindowBuilder) OrderBy(columns ...string) *WindowBuilder
OrderBy indicates how to sort rows in each partition.
func (*WindowBuilder) OrderExpr ¶
func (w *WindowBuilder) OrderExpr(exprs ...Querier) *WindowBuilder
OrderExpr appends the `ORDER BY` clause to the window partition with custom list of expressions.
func (*WindowBuilder) PartitionBy ¶
func (w *WindowBuilder) PartitionBy(columns ...string) *WindowBuilder
PartitionBy indicates to divide the query rows into groups by the given columns. Note that, standard SQL spec allows partition only by columns, and in order to use the "expression" version, use the PartitionByExpr.
func (*WindowBuilder) PartitionExpr ¶
func (w *WindowBuilder) PartitionExpr(x Querier) *WindowBuilder
PartitionExpr indicates to divide the query rows into groups by the given expression.
func (*WindowBuilder) Query ¶
func (w *WindowBuilder) Query() (string, []any)
Query returns query representation of the window function.
type WithBuilder ¶
type WithBuilder struct { Builder // contains filtered or unexported fields }
WithBuilder is the builder for the `WITH` statement.
func With ¶
func With(name string, columns ...string) *WithBuilder
With returns a new builder for the `WITH` statement.
n := Queries{ With("users_view").As(Select().From(Table("users"))), Select().From(Table("users_view")), } return n.Query()
func WithRecursive ¶
func WithRecursive(name string, columns ...string) *WithBuilder
WithRecursive returns a new builder for the `WITH RECURSIVE` statement.
n := Queries{ WithRecursive("users_view").As(Select().From(Table("users"))), Select().From(Table("users_view")), } return n.Query()
func (*WithBuilder) As ¶
func (w *WithBuilder) As(s *Selector) *WithBuilder
As sets the view sub query.
func (*WithBuilder) C ¶
func (w *WithBuilder) C(column string) string
C returns a formatted string for the WITH column.
func (*WithBuilder) Name ¶
func (w *WithBuilder) Name() string
Name returns the name of the view.
func (*WithBuilder) Query ¶
func (w *WithBuilder) Query() (string, []any)
Query returns query representation of a `WITH` clause.
func (*WithBuilder) With ¶
func (w *WithBuilder) With(name string, columns ...string) *WithBuilder
With appends another named CTE to the statement.
type Wrapper ¶
type Wrapper struct {
// contains filtered or unexported fields
}
Wrapper wraps a given Querier with different format. Used to prefix/suffix other queries.
func (*Wrapper) Dialect ¶
Dialect calls Dialect on the wrapped query.
func (*Wrapper) Query ¶
Query returns query representation of a wrapped Querier.
func (*Wrapper) SetDialect ¶
SetDialect calls SetDialect on the wrapped query.
func (*Wrapper) SetTotal ¶
SetTotal sets the value of the total arguments. Used to pass this information between sub queries/expressions.
func (*Wrapper) Total ¶
Total returns the total number of arguments so far.
Source Files ¶
builder.go driver.go scan.go sql.go
Directories ¶
Path | Synopsis |
---|---|
dialect/sql/schema | Package schema contains all schema migration logic for SQL dialects. |
dialect/sql/sqlgraph | Package sqlgraph provides graph abstraction capabilities on top of sql-based databases for ent codegen. |
dialect/sql/sqljson |
- Version
- v0.14.4 (latest)
- Published
- Mar 17, 2025
- Platform
- linux/amd64
- Imports
- 11 packages
- Last checked
- 1 day ago –
Tools for package owners.