Documentation
¶
Index ¶
- Constants
- Variables
- func ContextBackend(ctx context.Context, be *Backend) context.Context
- func ContextConn(ctx context.Context, conn *sql.Conn) context.Context
- func ContextDB(ctx context.Context, db *sql.DB) context.Context
- func ContextTx(ctx context.Context, tx *TxProxy) context.Context
- func Count[T any](ctx context.Context, where any) (int, error)
- func DefineMagicType(typ string, definition string)
- func DefineMagicTypeEngine(e Engine, typ string, definition string)
- func Delete[T any](ctx context.Context, where any, opts ...*FetchOptions) (sql.Result, error)
- func DeleteOne[T any](ctx context.Context, where any, opts ...*FetchOptions) error
- func ErrorNumber(err error) uint16
- func Escape(val any) string
- func EscapeTx(ctx context.Context) (context.Context, bool)
- func Exec(q *SQLQuery) errordeprecated
- func ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
- func Factory[T any](ctxs ...context.Context) *T
- func Fetch[T any](ctx context.Context, where any, opts ...*FetchOptions) ([]*T, error)
- func FetchGrouped[T any](ctx context.Context, where map[string]any, key string, opts ...*FetchOptions) (map[string][]*T, error)
- func FetchMapped[T any](ctx context.Context, where any, key string, opts ...*FetchOptions) (map[string]*T, error)
- func FetchOne[T any](ctx context.Context, target *T, where any, opts ...*FetchOptions) error
- func GenerateEnumCheckSQL(constraint *EnumConstraint, tableName string) string
- func Get[T any](ctx context.Context, where any, opts ...*FetchOptions) (*T, error)
- func GetEnumConstraintName(values string) string
- func GetEnumTypeName(values string) string
- func HasChanged[T any](obj *T) bool
- func Init(dsn string) error
- func InitCfg(cfg *mysql.Config) error
- func Insert[T any](ctx context.Context, target ...*T) error
- func InsertIgnore[T any](ctx context.Context, target ...*T) error
- func IsNotExist(err error) bool
- func Iter[T any](ctx context.Context, where any, opts ...*FetchOptions) (func(func(v *T) bool), error)
- func Query(q *SQLQuery, cb func(*sql.Rows) error) errordeprecated
- func QueryContext(ctx context.Context, q *SQLQuery, cb func(*sql.Rows) error) errordeprecated
- func QuoteName(v string) string
- func Replace[T any](ctx context.Context, target ...*T) error
- func SetLogger(l Logger)
- func Tx(ctx context.Context, cb func(ctx context.Context) error) error
- func Update[T any](ctx context.Context, target ...*T) error
- func V(v driver.Value) driver.Value
- type Backend
- type CamelSnakeNamer
- func (CamelSnakeNamer) CheckerName(table, column string) string
- func (CamelSnakeNamer) ColumnName(table, column string) string
- func (CamelSnakeNamer) EnumTypeName(table, column string) string
- func (CamelSnakeNamer) IndexName(table, column string) string
- func (CamelSnakeNamer) JoinTableName(joinTable string) string
- func (CamelSnakeNamer) SchemaName(table string) string
- func (CamelSnakeNamer) TableName(table string) string
- func (CamelSnakeNamer) UniqueName(table, column string) string
- type Comparison
- type DefaultNamer
- func (DefaultNamer) CheckerName(table, column string) string
- func (DefaultNamer) ColumnName(table, column string) string
- func (DefaultNamer) EnumTypeName(table, column string) string
- func (DefaultNamer) IndexName(table, column string) string
- func (DefaultNamer) JoinTableName(joinTable string) string
- func (DefaultNamer) SchemaName(table string) string
- func (DefaultNamer) TableName(table string) string
- func (DefaultNamer) UniqueName(table, column string) string
- type Engine
- type EnumConstraint
- type Error
- type EscapeTableable
- type EscapeValueable
- type FetchOptions
- type FindInSet
- type Future
- type Hex
- type Join
- type Key
- type LegacyNamer
- func (LegacyNamer) CheckerName(table, column string) string
- func (LegacyNamer) ColumnName(table, column string) string
- func (LegacyNamer) EnumTypeName(table, column string) string
- func (LegacyNamer) IndexName(table, column string) string
- func (LegacyNamer) JoinTableName(joinTable string) string
- func (LegacyNamer) SchemaName(table string) string
- func (LegacyNamer) TableName(table string) string
- func (LegacyNamer) UniqueName(table, column string) string
- type Like
- type Logger
- type Name
- type Namer
- type Not
- type PGYesOrNo
- type QueryBuilder
- func (q *QueryBuilder) AlsoSelect(fields ...any) *QueryBuilder
- func (q *QueryBuilder) Delete() *QueryBuilder
- func (q *QueryBuilder) ExecQuery(ctx context.Context) (sql.Result, error)
- func (q *QueryBuilder) From(table any) *QueryBuilder
- func (q *QueryBuilder) Insert(fields ...any) *QueryBuilder
- func (q *QueryBuilder) Into(table EscapeTableable) *QueryBuilder
- func (q *QueryBuilder) Limit(v ...int) *QueryBuilder
- func (q *QueryBuilder) OrderBy(field ...SortValueable) *QueryBuilder
- func (q *QueryBuilder) Prepare(ctx context.Context) (*sql.Stmt, error)
- func (q *QueryBuilder) Render(ctx context.Context) (string, error)
- func (q *QueryBuilder) RenderArgs(ctx context.Context) (string, []any, error)
- func (q *QueryBuilder) Replace(table EscapeTableable) *QueryBuilder
- func (q *QueryBuilder) RunQuery(ctx context.Context) (*sql.Rows, error)
- func (q *QueryBuilder) Select(fields ...any) *QueryBuilder
- func (q *QueryBuilder) Set(fields ...any) *QueryBuilder
- func (q *QueryBuilder) Table(table any) *QueryBuilder
- func (q *QueryBuilder) Update(table any) *QueryBuilder
- func (q *QueryBuilder) Where(where ...any) *QueryBuilder
- type SQLQuery
- type SQLQueryT
- type Set
- type SortValueable
- type TableMeta
- func (t *TableMeta[T]) Count(ctx context.Context, where any) (int, error)
- func (t *TableMeta[T]) Delete(ctx context.Context, where any, opts ...*FetchOptions) (sql.Result, error)
- func (t *TableMeta[T]) DeleteOne(ctx context.Context, where any, opts ...*FetchOptions) error
- func (t *TableMeta[T]) Factory(ctx context.Context) *T
- func (t *TableMeta[T]) Fetch(ctx context.Context, where any, opts ...*FetchOptions) ([]*T, error)
- func (t *TableMeta[T]) FetchGrouped(ctx context.Context, where any, key string, opts ...*FetchOptions) (map[string][]*T, error)
- func (t *TableMeta[T]) FetchMapped(ctx context.Context, where any, key string, opts ...*FetchOptions) (map[string]*T, error)
- func (t *TableMeta[T]) FetchOne(ctx context.Context, target *T, where any, opts ...*FetchOptions) error
- func (t *TableMeta[T]) FormattedName(be *Backend) string
- func (t *TableMeta[T]) Get(ctx context.Context, where any, opts ...*FetchOptions) (*T, error)
- func (t *TableMeta[T]) HasChanged(obj *T) bool
- func (t *TableMeta[T]) Insert(ctx context.Context, targets ...*T) error
- func (t *TableMeta[T]) InsertIgnore(ctx context.Context, targets ...*T) error
- func (t *TableMeta[T]) Iter(ctx context.Context, where any, opts ...*FetchOptions) (func(func(v *T) bool), error)
- func (t *TableMeta[T]) Name() string
- func (t *TableMeta[T]) Replace(ctx context.Context, targets ...*T) error
- func (t *TableMeta[T]) ScanTo(row *sql.Rows, v *T) error
- func (t *TableMeta[T]) Update(ctx context.Context, target ...*T) error
- type TableMetaIntf
- type TxProxy
- type WhereAND
- type WhereOR
Constants ¶
const ( // Use " for ANSI SQL, and ` for MySQL's own thing NameQuoteChar = `"` NameQuoteRune = '"' )
Variables ¶
var ( ErrNotReady = errors.New("database is not ready (no connection is available)") ErrNotNillable = errors.New("field is nil but cannot be nil") ErrTxAlreadyProcessed = errors.New("transaction has already been committed or rollbacked") ErrDeleteBadAssert = errors.New("delete operation failed assertion") ErrBreakLoop = errors.New("exiting loop (not an actual error, used to break out of loop callbacks)") )
var FetchLock = &FetchOptions{Lock: true}
var FormatTableName = formatCamelSnakeCase
FormatTableName is a variable that holds the default table name formatter. It defaults to formatCamelSnakeCase but can be overridden. This is kept for backwards compatibility - new code should use Backend.Namer.
Functions ¶
func ContextBackend ¶ added in v0.4.0
func ContextConn ¶ added in v0.1.10
func DefineMagicType ¶ added in v0.2.10
func DefineMagicTypeEngine ¶ added in v0.4.1
func Delete ¶ added in v0.3.1
Delete will delete values from the table matching the where parameters
func DeleteOne ¶ added in v0.3.3
DeleteOne will operate the deletion in a separate transaction and ensure only 1 row was deleted or it will rollback the deletion and return an error. This is useful when working with important data and security is more important than performance.
func ErrorNumber ¶
func Escape ¶
Escape takes any value and transforms it into a string that can be included in a MySQL query
func EscapeTx ¶ added in v0.2.6
EscapeTx allows obtaining the context underlying a current transaction, this can be useful if a query needs to be run outside of a transaction (for example to log something, etc)
func ExecContext ¶ added in v0.4.1
func FetchGrouped ¶ added in v0.2.9
func FetchMapped ¶ added in v0.2.9
func GenerateEnumCheckSQL ¶ added in v0.4.1
func GenerateEnumCheckSQL(constraint *EnumConstraint, tableName string) string
GenerateEnumCheckSQL generates the CHECK constraint SQL for enum columns According to PGSQL.md, it should create a single constraint that validates all columns with the same enum values This is exported for testing purposes
func Get ¶ added in v0.1.8
Get will instanciate a new object of type T and return a pointer to it after loading from database
func GetEnumConstraintName ¶ added in v0.4.1
GetEnumConstraintName generates a deduplicated constraint name based on the hash of the values It is exported for testing purposes but should generally not be used directly
func GetEnumTypeName ¶ added in v0.4.1
GetEnumTypeName is kept for backward compatibility but returns the constraint name
func HasChanged ¶ added in v0.1.2
func Insert ¶
Insert is a short way to insert objects into database
psql.Insert(ctx, obj)
Is equivalent to:
psql.Table(obj).Insert(ctx, obj)
All passed objects must be of the same type
func InsertIgnore ¶ added in v0.1.7
func IsNotExist ¶
IsNotExist returns true if the error is relative to a table not existing.
See: https://mariadb.com/kb/en/mariadb-error-codes/
Example: Error 1146: Table 'test.Test_Table1' doesn't exist
func QuoteName ¶
quote a name (field, etc) This doesn't use the Namer since this is just for escaping a name that's already been formatted
func Replace ¶ added in v0.1.7
Replace is a short way to replace objects into database
psql.Replace(ctx, obj)
Is equivalent to:
psql.Table(obj).Replace(ctx, obj)
All passed objects must be of the same type
func SetLogger ¶ added in v0.2.11
func SetLogger(l Logger)
SetLogger sets a global logger for debugging psql This can be called easily as follows using go's slog package:
psql.SetLogger(slog.Default())
Or a better option:
psql.SetLogger(slog.Default().With("backend", "psql")) etc...
func Tx ¶ added in v0.1.10
Tx can be used to run a function inside a sql transaction for isolation/etc
Types ¶
type Backend ¶ added in v0.4.0
type Backend struct {
// contains filtered or unexported fields
}
var (
DefaultBackend *Backend
)
func GetBackend ¶ added in v0.4.0
GetBackend will attempt to find a backend in the provided context and return it, or it will return DefaultBackend if no backend was found.
func LocalTestServer ¶ added in v0.4.1
LocalTestServer returns a backend that can be used for local tests, especially suitable for Go unit tests
This requires having cockroach or apkg installed in order to run, and will start a local database with in-memory storage that will shutdown at the end of the tests. The database will always start in an empty state, and all data written to it will be lost once the execution completes.
func (*Backend) SetNamer ¶ added in v0.4.1
SetNamer allows changing the naming strategy Use DefaultNamer to keep names exactly as defined in structs (e.g., "HelloWorld" stays "HelloWorld") Use LegacyNamer (default) for backward compatibility (e.g., "HelloWorld" becomes "Hello_World") Use CamelSnakeNamer to convert all names to Camel_Snake_Case
type CamelSnakeNamer ¶ added in v0.4.1
type CamelSnakeNamer struct{}
CamelSnakeNamer is a namer that converts names to Camel_Snake_Case
func (CamelSnakeNamer) CheckerName ¶ added in v0.4.1
func (CamelSnakeNamer) CheckerName(table, column string) string
CheckerName returns the checker name with table and column in Camel_Snake_Case format
func (CamelSnakeNamer) ColumnName ¶ added in v0.4.1
func (CamelSnakeNamer) ColumnName(table, column string) string
ColumnName returns the column name in Camel_Snake_Case format
func (CamelSnakeNamer) EnumTypeName ¶ added in v0.4.1
func (CamelSnakeNamer) EnumTypeName(table, column string) string
EnumTypeName returns the enum type name with table and column in Camel_Snake_Case format
func (CamelSnakeNamer) IndexName ¶ added in v0.4.1
func (CamelSnakeNamer) IndexName(table, column string) string
IndexName returns the index name with table and column in Camel_Snake_Case format
func (CamelSnakeNamer) JoinTableName ¶ added in v0.4.1
func (CamelSnakeNamer) JoinTableName(joinTable string) string
JoinTableName returns the join table name in Camel_Snake_Case format
func (CamelSnakeNamer) SchemaName ¶ added in v0.4.1
func (CamelSnakeNamer) SchemaName(table string) string
SchemaName returns the schema name in Camel_Snake_Case format
func (CamelSnakeNamer) TableName ¶ added in v0.4.1
func (CamelSnakeNamer) TableName(table string) string
TableName returns the table name in Camel_Snake_Case format
func (CamelSnakeNamer) UniqueName ¶ added in v0.4.1
func (CamelSnakeNamer) UniqueName(table, column string) string
UniqueName returns the unique constraint name with table and column in Camel_Snake_Case format
type Comparison ¶
func (*Comparison) EscapeValue ¶
func (c *Comparison) EscapeValue() string
type DefaultNamer ¶ added in v0.4.1
type DefaultNamer struct{}
DefaultNamer is a namer that returns names as they are provided
func (DefaultNamer) CheckerName ¶ added in v0.4.1
func (DefaultNamer) CheckerName(table, column string) string
CheckerName returns the checker name as is
func (DefaultNamer) ColumnName ¶ added in v0.4.1
func (DefaultNamer) ColumnName(table, column string) string
ColumnName returns the column name as is
func (DefaultNamer) EnumTypeName ¶ added in v0.4.1
func (DefaultNamer) EnumTypeName(table, column string) string
EnumTypeName returns the enum type name using original table and column names
func (DefaultNamer) IndexName ¶ added in v0.4.1
func (DefaultNamer) IndexName(table, column string) string
IndexName returns the index name as is
func (DefaultNamer) JoinTableName ¶ added in v0.4.1
func (DefaultNamer) JoinTableName(joinTable string) string
JoinTableName returns the join table name as is
func (DefaultNamer) SchemaName ¶ added in v0.4.1
func (DefaultNamer) SchemaName(table string) string
SchemaName returns the schema name as is
func (DefaultNamer) TableName ¶ added in v0.4.1
func (DefaultNamer) TableName(table string) string
TableName returns the table name as is
func (DefaultNamer) UniqueName ¶ added in v0.4.1
func (DefaultNamer) UniqueName(table, column string) string
UniqueName returns the unique constraint name as is
type EnumConstraint ¶ added in v0.4.1
type EnumConstraint struct {
Name string // Constraint name (chk_enum_XXXXXXXX)
Values []string // Allowed enum values
Columns map[string][]string // Map of table -> columns using this constraint
}
EnumConstraint represents a CHECK constraint for enum columns
type EscapeTableable ¶
type EscapeTableable interface {
EscapeTable() string
}
EscapeTableable is a type of value that can be used as a table
type EscapeValueable ¶
type EscapeValueable interface {
EscapeValue() string
}
func Between ¶ added in v0.2.10
func Between(a, start, end any) EscapeValueable
Between is a BETWEEN SQL operation. The BETWEEN operator is inclusive: begin and end values are included.
func Equal ¶
func Equal(a, b any) EscapeValueable
func F ¶
func F(field ...string) EscapeValueable
F allows passing a field name to the query builder. It can be used in multiple ways:
psql.F("field") psql.F("table.field") psql.F("", "field.with.dots") psql.F("table", "field") psql.F("table.with.dots", "field.with.dots") and more...
func Gt ¶ added in v0.2.0
func Gt(a, b any) EscapeValueable
func Gte ¶ added in v0.2.0
func Gte(a, b any) EscapeValueable
func Lt ¶ added in v0.2.0
func Lt(a, b any) EscapeValueable
func Lte ¶ added in v0.2.0
func Lte(a, b any) EscapeValueable
func Raw ¶
func Raw(s string) EscapeValueable
type FetchOptions ¶ added in v0.1.13
type FetchOptions struct {
Lock bool
LimitCount int // number of results to return if >0
LimitStart int // seek first record if >0
Sort []SortValueable // fields to sort by
}
func Limit ¶ added in v0.1.15
func Limit(cnt int) *FetchOptions
func LimitFrom ¶ added in v0.1.15
func LimitFrom(start, cnt int) *FetchOptions
func Sort ¶ added in v0.1.15
func Sort(fields ...SortValueable) *FetchOptions
type FindInSet ¶ added in v0.3.6
func (*FindInSet) EscapeValue ¶ added in v0.3.6
type Future ¶ added in v0.3.4
type Future[T any] struct { // contains filtered or unexported fields }
func Lazy ¶ added in v0.3.4
Lazy returns an instance of Future that will be resolved in the future. Multiple calls to Lazy in different goroutines will return the same value until it is resolved. This will also attempt to group requests to the same table in the future.
func (*Future[T]) MarshalContextJSON ¶ added in v0.3.4
func (*Future[T]) MarshalJSON ¶ added in v0.3.4
type Join ¶ added in v0.4.1
type Key ¶
type Key struct {
// contains filtered or unexported fields
}
Name allows specifying the table name when associating a table with a struct
For example: type X struct { KeyName psql.Key `sql:",type=UNIQUE,fields='A,B'"` ... }
type LegacyNamer ¶ added in v0.4.1
type LegacyNamer struct{}
LegacyNamer reproduces the behavior of the original implementation: - Table names use CamelSnakeCase - Column names are kept as is (no transformation) - Other names use standard prefixes with the original names
func (LegacyNamer) CheckerName ¶ added in v0.4.1
func (LegacyNamer) CheckerName(table, column string) string
CheckerName returns the checker name with table in Camel_Snake_Case format and original column name
func (LegacyNamer) ColumnName ¶ added in v0.4.1
func (LegacyNamer) ColumnName(table, column string) string
ColumnName returns the column name as is (no transformation)
func (LegacyNamer) EnumTypeName ¶ added in v0.4.1
func (LegacyNamer) EnumTypeName(table, column string) string
EnumTypeName returns the enum type name with table in Camel_Snake_Case format and original column name
func (LegacyNamer) IndexName ¶ added in v0.4.1
func (LegacyNamer) IndexName(table, column string) string
IndexName returns the index name with table in Camel_Snake_Case format and original column name
func (LegacyNamer) JoinTableName ¶ added in v0.4.1
func (LegacyNamer) JoinTableName(joinTable string) string
JoinTableName returns the join table name in Camel_Snake_Case format
func (LegacyNamer) SchemaName ¶ added in v0.4.1
func (LegacyNamer) SchemaName(table string) string
SchemaName returns the schema name in Camel_Snake_Case format
func (LegacyNamer) TableName ¶ added in v0.4.1
func (LegacyNamer) TableName(table string) string
TableName returns the table name in Camel_Snake_Case format (original behavior)
func (LegacyNamer) UniqueName ¶ added in v0.4.1
func (LegacyNamer) UniqueName(table, column string) string
UniqueName returns the unique constraint name with table in Camel_Snake_Case format and original column name
type Like ¶
func (*Like) EscapeValue ¶
type Name ¶
type Name struct {
// contains filtered or unexported fields
}
Name allows specifying the table name when associating a table with a struct
For example: type X struct { TableName psql.Name `sql:"X"` ... }
type Namer ¶ added in v0.4.1
type Namer interface {
TableName(table string) string
SchemaName(table string) string
ColumnName(table, column string) string
JoinTableName(joinTable string) string
CheckerName(table, column string) string
IndexName(table, column string) string
UniqueName(table, column string) string
EnumTypeName(table, column string) string // For PostgreSQL ENUM types
}
Namer is an object that provides names to functions. This is based on gorm
type QueryBuilder ¶
type QueryBuilder struct {
Query string
Fields []any
Tables []EscapeTableable
FieldsSet []any
WhereData WhereAND
GroupBy []any
OrderByData []SortValueable
LimitData []int
// flags
Distinct bool
CalcFoundRows bool
UpdateIgnore bool
InsertIgnore bool
ForUpdate bool
// contains filtered or unexported fields
}
func B ¶
func B() *QueryBuilder
func (*QueryBuilder) AlsoSelect ¶
func (q *QueryBuilder) AlsoSelect(fields ...any) *QueryBuilder
func (*QueryBuilder) Delete ¶
func (q *QueryBuilder) Delete() *QueryBuilder
func (*QueryBuilder) From ¶
func (q *QueryBuilder) From(table any) *QueryBuilder
func (*QueryBuilder) Insert ¶
func (q *QueryBuilder) Insert(fields ...any) *QueryBuilder
func (*QueryBuilder) Into ¶
func (q *QueryBuilder) Into(table EscapeTableable) *QueryBuilder
func (*QueryBuilder) Limit ¶
func (q *QueryBuilder) Limit(v ...int) *QueryBuilder
func (*QueryBuilder) OrderBy ¶
func (q *QueryBuilder) OrderBy(field ...SortValueable) *QueryBuilder
func (*QueryBuilder) RenderArgs ¶ added in v0.2.0
func (*QueryBuilder) Replace ¶
func (q *QueryBuilder) Replace(table EscapeTableable) *QueryBuilder
func (*QueryBuilder) Select ¶
func (q *QueryBuilder) Select(fields ...any) *QueryBuilder
func (*QueryBuilder) Set ¶
func (q *QueryBuilder) Set(fields ...any) *QueryBuilder
func (*QueryBuilder) Table ¶
func (q *QueryBuilder) Table(table any) *QueryBuilder
func (*QueryBuilder) Update ¶
func (q *QueryBuilder) Update(table any) *QueryBuilder
func (*QueryBuilder) Where ¶
func (q *QueryBuilder) Where(where ...any) *QueryBuilder
type SQLQuery ¶
type SQLQueryT ¶ added in v0.4.1
type SortValueable ¶ added in v0.1.19
type SortValueable interface {
// contains filtered or unexported methods
}
SortValueable is a kind of value that can be used for sorting
func S ¶ added in v0.1.19
func S(field ...string) SortValueable
type TableMeta ¶
type TableMeta[T any] struct { // contains filtered or unexported fields }
func Table ¶
Table returns the table object for T against DefaultBackend unless the provided ctx value has a backend.
func (*TableMeta[T]) Factory ¶ added in v0.3.6
Factory returns a new object T pre-initialized with its defaults
func (*TableMeta[T]) FetchGrouped ¶ added in v0.2.9
func (*TableMeta[T]) FetchMapped ¶ added in v0.2.9
func (*TableMeta[T]) FormattedName ¶ added in v0.4.1
FormattedName returns the table name, applying the namer transformation if needed
func (*TableMeta[T]) HasChanged ¶ added in v0.1.2
func (*TableMeta[T]) InsertIgnore ¶ added in v0.1.7
type TableMetaIntf ¶ added in v0.1.2
type TableMetaIntf interface {
Name() string
}
type TxProxy ¶ added in v0.1.17
Source Files
¶
- backend.go
- between.go
- builder.go
- change.go
- check.go
- comparison.go
- context.go
- count.go
- delete.go
- engine.go
- enum.go
- error.go
- escape.go
- export.go
- factory.go
- fetch.go
- fetchmap.go
- field.go
- fieldname.go
- findinset.go
- formatname.go
- hex.go
- insert.go
- join.go
- key.go
- lazy.go
- like.go
- localtest.go
- log.go
- magic.go
- main.go
- mysql.go
- name.go
- namer.go
- pgsql.go
- query.go
- render.go
- replace.go
- rowstate.go
- set.go
- setter.go
- table.go
- tag.go
- tx.go
- types.go
- update.go
- where.go