Documentation
¶
Index ¶
- func Listen(listener QueryListener)
- type Builder
- func (b *Builder) Avg(column string) (int, error)
- func (b *Builder) Clone() *Builder
- func (b *Builder) Count(column string) (int, error)
- func (b *Builder) CrossJoin(table string) *Builder
- func (b *Builder) Delete() (sql.Result, error)
- func (b *Builder) Distinct() *Builder
- func (b *Builder) Get() (*sql.Rows, error)
- func (b *Builder) GroupBy(columns ...string) *Builder
- func (b *Builder) Having(column, operator string, value any) *Builder
- func (b *Builder) Insert(values map[string]any) (sql.Result, error)
- func (b *Builder) Join(table, first, operator, second string) *Builder
- func (b *Builder) LeftJoin(table, first, operator, second string) *Builder
- func (b *Builder) Limit(limit int) *Builder
- func (b *Builder) LockForUpdate() *Builder
- func (b *Builder) Max(column string) (int, error)
- func (b *Builder) Min(column string) (int, error)
- func (b *Builder) Offset(offset int) *Builder
- func (b *Builder) OrHaving(column, operator string, value any) *Builder
- func (b *Builder) OrWhere(column, operator string, value any) *Builder
- func (b *Builder) OrWhereRaw(sql string, args ...any) *Builder
- func (b *Builder) OrderBy(column, direction string) *Builder
- func (b *Builder) RightJoin(table, first, operator, second string) *Builder
- func (b *Builder) Select(columns ...string) *Builder
- func (b *Builder) SelectRaw(sql string, args ...any) *Builder
- func (b *Builder) SharedLock() *Builder
- func (b *Builder) Sum(column string) (int, error)
- func (b *Builder) Table(table string) *Builder
- func (b *Builder) ToSQL() (string, []any)
- func (b *Builder) Update(values map[string]any) (sql.Result, error)
- func (b *Builder) Upsert(values map[string]any, updateColumns []string, conflictColumns []string) (sql.Result, error)
- func (b *Builder) When(condition bool, callback func(*Builder)) *Builder
- func (b *Builder) Where(column, operator string, value any) *Builder
- func (b *Builder) WhereBetween(column string, values []any) *Builder
- func (b *Builder) WhereIn(column string, values []any) *Builder
- func (b *Builder) WhereNotNull(column string) *Builder
- func (b *Builder) WhereNull(column string) *Builder
- func (b *Builder) WhereRaw(sql string, args ...any) *Builder
- func (b *Builder) WithConn(conn QueryExecer) *Builder
- type QueryEvent
- type QueryExecer
- type QueryListener
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder provides a fluent API for building SQL queries.
func NewBuilder ¶
func NewBuilder(conn QueryExecer, d dialect.Dialect) *Builder
NewBuilder creates a new query builder.
func (*Builder) Get ¶
Get executes the query and returns the raw rows. In Goquent (ORM), we will wrap this to hydrate models.
func (*Builder) LockForUpdate ¶
LockForUpdate adds FOR UPDATE pessimistic lock (useful in transactions).
func (*Builder) OrWhereRaw ¶
OrWhereRaw adds a raw OR WHERE condition.
func (*Builder) SharedLock ¶
SharedLock adds FOR SHARE / FOR READ ONLY lock.
func (*Builder) Upsert ¶
func (b *Builder) Upsert(values map[string]any, updateColumns []string, conflictColumns []string) (sql.Result, error)
Upsert inserts or updates on conflict using dialect-specific syntax.
func (*Builder) WhereNotNull ¶
func (*Builder) WithConn ¶
func (b *Builder) WithConn(conn QueryExecer) *Builder
WithConn returns a new builder with the given connection (useful for transactions).
type QueryEvent ¶
QueryEvent represents an executed database query.
type QueryExecer ¶
type QueryExecer interface {
QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)
QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row
ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
}
QueryExecer abstracts *sql.DB and *sql.Tx
type QueryListener ¶
type QueryListener func(QueryEvent)
QueryListener is a callback function that listens for query events.