Documentation
¶
Overview ¶
Package sqlgen2 contains a small API plus a tool that generates SQL functions for specified struct types.
Lighter than a full-blown ORM and simpler than hand-written code, the output makes it easy to write flexible yet reliable and high-performance database code.
See the README for further details: https://github.com/rickb777/sqlgen2/blob/master/README.md
Index ¶
- func LogQuery(logger *log.Logger, query string, args ...interface{})
- func Named(name string, value interface{}) sql.NamedArg
- func NamedArgString(arg sql.NamedArg) string
- type CanPostGet
- type CanPreInsert
- type CanPreUpdate
- type Execer
- type NamedArgList
- func (list NamedArgList) Assignments(d schema.Dialect, from int) []string
- func (list NamedArgList) Contains(name string) bool
- func (list NamedArgList) Exists(fn func(sql.NamedArg) bool) bool
- func (list NamedArgList) Find(fn func(sql.NamedArg) bool) (sql.NamedArg, bool)
- func (list NamedArgList) FindByName(name string) (sql.NamedArg, bool)
- func (list NamedArgList) MkString(sep string) string
- func (list NamedArgList) Names() []string
- func (list NamedArgList) String() string
- func (list NamedArgList) Values() []interface{}
- type Table
- type TableCreator
- type TableName
- type TableWithCrud
- type TableWithIndexes
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NamedArgString ¶
NamedArgString converts the argument to a string of the form "name=value".
Types ¶
type CanPostGet ¶ added in v0.8.0
type CanPostGet interface {
PostGet() error
}
CanPostGet is implemented by value types that need a hook to run just after their data is fetched from the database.
type CanPreInsert ¶
type CanPreInsert interface {
PreInsert() error
}
CanPreInsert is implemented by value types that need a hook to run just before their data is inserted into the database.
type CanPreUpdate ¶
type CanPreUpdate interface {
PreUpdate() error
}
CanPreUpdate is implemented by value types that need a hook to run just before their data is updated in the database.
type Execer ¶
type Execer interface { ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) PrepareContext(ctx context.Context, query string) (*sql.Stmt, error) QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row }
Execer describes the methods of the core database API. See database/sql/DB and database/sql/Tx.
type NamedArgList ¶
NamedArgList holds a slice of NamedArgs
func (NamedArgList) Assignments ¶
func (list NamedArgList) Assignments(d schema.Dialect, from int) []string
Assignments gets the assignment expressions.
func (NamedArgList) Contains ¶
func (list NamedArgList) Contains(name string) bool
Contains tests whether anything in the list has a certain name.
func (NamedArgList) Exists ¶
func (list NamedArgList) Exists(fn func(sql.NamedArg) bool) bool
Exists verifies that one or more elements of NamedArgList return true for the passed func.
func (NamedArgList) Find ¶
Find returns the first sql.NamedArg that returns true for some function. False is returned if none match.
func (NamedArgList) FindByName ¶
func (list NamedArgList) FindByName(name string) (sql.NamedArg, bool)
FindByName finds the first item with a particular name.
func (NamedArgList) MkString ¶
func (list NamedArgList) MkString(sep string) string
MkString produces a string ontainin all the values separated by sep.
func (NamedArgList) String ¶
func (list NamedArgList) String() string
String produces a string ontainin all the values separated by comma.
func (NamedArgList) Values ¶
func (list NamedArgList) Values() []interface{}
Values gets all the valules
type Table ¶
type Table interface { // Name gets the table name. without prefix Name() TableName // DB gets the wrapped database handle, provided this is not within a transaction. // Panics if it is in the wrong state - use IsTx() if necessary. DB() *sql.DB // Tx gets the wrapped transaction handle, provided this is within a transaction. // Panics if it is in the wrong state - use IsTx() if necessary. Tx() *sql.Tx // IsTx tests whether this is within a transaction. IsTx() bool // Ctx gets the current request context. Ctx() context.Context // Dialect gets the database dialect. Dialect() schema.Dialect // Logger gets the trace logger. Logger() *log.Logger // SetLogger sets the trace logger. SetLogger(logger *log.Logger) Table // Wrapper gets whatever structure is present, as needed. Wrapper() interface{} }
Table provides the generic features of each generated table handler.
type TableCreator ¶
type TableName ¶ added in v0.8.0
type TableName struct { // Prefix on the table name. It can be used as the schema name, in which case // it should include the trailing dot. Or it can be any prefix as needed. Prefix string // The principal name of the table. Name string }
TableName holds a two-part name. The prefix part is optional.
func (TableName) PrefixWithoutDot ¶ added in v0.8.0
PrefixWithoutDot return the prefix; if this ends with a dot, the dot is removed.
type TableWithCrud ¶
type TableWithCrud interface { Table // Exec executes a query. // It returns the number of rows affected (if the DB supports that). Exec(query string, args ...interface{}) (int64, error) // CountSA counts records that match a 'where' predicate. CountSA(where string, args ...interface{}) (count int64, err error) // Count counts records that match a 'where' predicate. Count(where where.Expression) (count int64, err error) // UpdateFields writes new values to the specified columns for rows that match the 'where' predicate. // It returns the number of rows affected (if the DB supports that). UpdateFields(where where.Expression, fields ...sql.NamedArg) (int64, error) // Delete deletes rows that match the 'where' predicate. // It returns the number of rows affected (if the DB supports that). Delete(where where.Expression) (int64, error) }
type TableWithIndexes ¶
type TableWithIndexes interface { TableCreator // CreateIndexes creates the indexes for the database table. CreateIndexes(ifNotExist bool) (err error) // DropIndexes executes a query that drops all the indexes on the database table. DropIndexes(ifExist bool) (err error) // CreateTableWithIndexes creates the database table and its indexes. CreateTableWithIndexes(ifNotExist bool) (err error) }