Documentation ¶
Index ¶
- Variables
- func MustPing(db *sql.DB)
- func SetCache(store kvs.KeyValueStore)
- type Connection
- type DB
- type Execer
- func (ex *Execer) Cache(id string, ttl time.Duration, invalidate bool) dat.Execer
- func (ex *Execer) Cancel() error
- func (ex *Execer) Exec() (*dat.Result, error)
- func (ex *Execer) Interpolate() (string, []interface{}, error)
- func (ex *Execer) QueryJSON() ([]byte, error)
- func (ex *Execer) QueryObject(dest interface{}) error
- func (ex *Execer) QueryScalar(destinations ...interface{}) error
- func (ex *Execer) QuerySlice(dest interface{}) error
- func (ex *Execer) QueryStruct(dest interface{}) error
- func (ex *Execer) QueryStructs(dest interface{}) error
- func (ex *Execer) Queryx() (*sqlx.Rows, error)
- func (ex *Execer) Timeout(timeout time.Duration) dat.Execer
- type Queryable
- func (q *Queryable) Call(sproc string, args ...interface{}) *dat.CallBuilder
- func (q *Queryable) DeleteFrom(table string) *dat.DeleteBuilder
- func (q *Queryable) Exec(cmd string, args ...interface{}) (*dat.Result, error)
- func (q *Queryable) ExecBuilder(b dat.Builder) error
- func (q *Queryable) ExecMulti(commands ...*dat.Expression) (int, error)
- func (q *Queryable) Insect(table string) *dat.InsectBuilder
- func (q *Queryable) InsertInto(table string) *dat.InsertBuilder
- func (q *Queryable) SQL(sql string, args ...interface{}) *dat.RawBuilder
- func (q *Queryable) Select(columns ...string) *dat.SelectBuilder
- func (q *Queryable) SelectDoc(columns ...string) *dat.SelectDocBuilder
- func (q *Queryable) Update(table string) *dat.UpdateBuilder
- func (q *Queryable) Upsert(table string) *dat.UpsertBuilder
- type Tx
Constants ¶
This section is empty.
Variables ¶
var Cache kvs.KeyValueStore
Cache caches query results.
var ErrTxRollbacked = errors.New("Nested transaction already rollbacked")
ErrTxRollbacked occurs when Commit() or Rollback() is called on a transaction that has already been rollbacked.
var LogErrNoRows bool
LogErrNoRows tells runner to log `sql.ErrNoRows`
var LogQueriesThreshold time.Duration
LogQueriesThreshold is the threshold for logging "slow" queries
Functions ¶
func MustPing ¶
MustPing pings a database with an exponential backoff. The function panics if the database cannot be pinged after 15 minutes
func SetCache ¶
func SetCache(store kvs.KeyValueStore)
SetCache sets this runner's cache. The default cache is in-memory based. See cache.MemoryKeyValueStore.
Types ¶
type Connection ¶
type Connection interface { Begin() (*Tx, error) Call(sproc string, args ...interface{}) *dat.CallBuilder DeleteFrom(table string) *dat.DeleteBuilder Exec(cmd string, args ...interface{}) (*dat.Result, error) ExecBuilder(b dat.Builder) error ExecMulti(commands ...*dat.Expression) (int, error) InsertInto(table string) *dat.InsertBuilder Insect(table string) *dat.InsectBuilder Select(columns ...string) *dat.SelectBuilder SelectDoc(columns ...string) *dat.SelectDocBuilder SQL(sql string, args ...interface{}) *dat.RawBuilder Update(table string) *dat.UpdateBuilder Upsert(table string) *dat.UpsertBuilder }
Connection is a queryable connection and represents a DB or Tx.
type DB ¶
DB represents an abstract database connection pool.
func NewDBFromSqlx ¶
NewDBFromSqlx creates a new Connection object from existing Sqlx.DB.
func NewDBFromString ¶
NewDBFromString instantiates a Connection from a given driver and connection string.
func (*DB) MustCreateMetaTable ¶
func (db *DB) MustCreateMetaTable()
MustCreateMetaTable creates the dat__meta table or panics.
func (*DB) MustRegisterFunction ¶
MustRegisterFunction registers a user defined function but will not recreate it unles the hash has changed with version. This is useful for keeping user defined functions defined in source code.
type Execer ¶
type Execer struct {
// contains filtered or unexported fields
}
Execer executes queries against a database.
func (*Execer) Cancel ¶
Cancel cancels last query with a queryID. If queryID was not set then ErrInvalidOperation is returned.
func (*Execer) Interpolate ¶
Interpolate tells the associated builder to interpolate itself.
func (*Execer) QueryJSON ¶
QueryJSON wraps the builder's query within a `to_json` then executes and returns the JSON []byte representation.
func (*Execer) QueryObject ¶
QueryObject wraps the builder's query within a `to_json` then executes and unmarshals the result into dest.
func (*Execer) QueryScalar ¶
QueryScalar executes builder's query and scans returned row into destinations.
func (*Execer) QuerySlice ¶
QuerySlice executes builder's query and builds a slice of values from each row, where each row only has one column.
func (*Execer) QueryStruct ¶
QueryStruct executes builders' query and scans the result row into dest.
func (*Execer) QueryStructs ¶
QueryStructs executes builders' query and scans each row as an item in a slice of structs.
type Queryable ¶
type Queryable struct {
// contains filtered or unexported fields
}
Queryable is an object that can be queried.
func WrapSqlxExt ¶
WrapSqlxExt converts a sqlx.Ext to a *Queryable
func (*Queryable) Call ¶
func (q *Queryable) Call(sproc string, args ...interface{}) *dat.CallBuilder
Call creates a new CallBuilder for the given sproc and args.
func (*Queryable) DeleteFrom ¶
func (q *Queryable) DeleteFrom(table string) *dat.DeleteBuilder
DeleteFrom creates a new DeleteBuilder for the given table.
func (*Queryable) ExecBuilder ¶
ExecBuilder executes the SQL in builder.
func (*Queryable) ExecMulti ¶
func (q *Queryable) ExecMulti(commands ...*dat.Expression) (int, error)
ExecMulti executes multiple SQL statements returning the number of statements executed, or the index at which an error occurred.
func (*Queryable) Insect ¶
func (q *Queryable) Insect(table string) *dat.InsectBuilder
Insect inserts or selects.
func (*Queryable) InsertInto ¶
func (q *Queryable) InsertInto(table string) *dat.InsertBuilder
InsertInto creates a new InsertBuilder for the given table.
func (*Queryable) SQL ¶
func (q *Queryable) SQL(sql string, args ...interface{}) *dat.RawBuilder
SQL creates a new raw SQL builder.
func (*Queryable) Select ¶
func (q *Queryable) Select(columns ...string) *dat.SelectBuilder
Select creates a new SelectBuilder for the given columns.
func (*Queryable) SelectDoc ¶
func (q *Queryable) SelectDoc(columns ...string) *dat.SelectDocBuilder
SelectDoc creates a new SelectBuilder for the given columns.
type Tx ¶
type Tx struct { sync.Mutex *sqlx.Tx *Queryable IsRollbacked bool // contains filtered or unexported fields }
Tx is a transaction for the given Session
func (*Tx) AutoCommit ¶
AutoCommit commits a transaction IF neither Commit or Rollback were called.
func (*Tx) AutoRollback ¶
AutoRollback rolls back transaction IF neither Commit or Rollback were called.