Documentation ¶
Index ¶
- Variables
- func Interpolate(query string, value []interface{}) (string, error)
- func InterpolateForDialect(query string, value []interface{}, d Dialect) (string, error)
- func Load(rows *sql.Rows, value interface{}) (int, error)
- func LoadColumns(rows *sql.Rows, value interface{}) (int, error)
- func Union(builder ...Builder) interface{ ... }
- func UnionAll(builder ...Builder) interface{ ... }
- type Buffer
- type BuildFunc
- type Builder
- func And(cond ...Builder) Builder
- func Eq(column string, value interface{}) Builder
- func Expr(query string, value ...interface{}) Builder
- func Gt(column string, value interface{}) Builder
- func Gte(column string, value interface{}) Builder
- func Lt(column string, value interface{}) Builder
- func Lte(column string, value interface{}) Builder
- func Neq(column string, value interface{}) Builder
- func Or(cond ...Builder) Builder
- type Connection
- type DeleteBuilder
- func (b *DeleteBuilder) Build(d Dialect, buf Buffer) error
- func (b *DeleteBuilder) Exec() (sql.Result, error)
- func (b *DeleteBuilder) Limit(n uint64) *DeleteBuilder
- func (b *DeleteBuilder) ToSql() (string, []interface{})
- func (b *DeleteBuilder) Where(query interface{}, value ...interface{}) *DeleteBuilder
- type DeleteStmt
- type Dialect
- type EventReceiver
- type I
- type InsertBuilder
- func (b *InsertBuilder) Columns(column ...string) *InsertBuilder
- func (b *InsertBuilder) Exec() (sql.Result, error)
- func (b *InsertBuilder) Pair(column string, value interface{}) *InsertBuilder
- func (b *InsertBuilder) Record(structValue interface{}) *InsertBuilder
- func (b *InsertBuilder) ToSql() (string, []interface{})
- func (b *InsertBuilder) Values(value ...interface{}) *InsertBuilder
- type InsertStmt
- type NullBool
- type NullEventReceiver
- func (n *NullEventReceiver) Event(eventName string)
- func (n *NullEventReceiver) EventErr(eventName string, err error) error
- func (n *NullEventReceiver) EventErrKv(eventName string, err error, kvs map[string]string) error
- func (n *NullEventReceiver) EventKv(eventName string, kvs map[string]string)
- func (n *NullEventReceiver) Timing(eventName string, nanoseconds int64)
- func (n *NullEventReceiver) TimingKv(eventName string, nanoseconds int64, kvs map[string]string)
- type NullFloat64
- type NullInt64
- type NullString
- type NullTime
- type SelectBuilder
- func (b *SelectBuilder) Distinct() *SelectBuilder
- func (b *SelectBuilder) From(table interface{}) *SelectBuilder
- func (b *SelectBuilder) FullJoin(table, on interface{}) *SelectBuilder
- func (b *SelectBuilder) GroupBy(col ...string) *SelectBuilder
- func (b *SelectBuilder) Having(query interface{}, value ...interface{}) *SelectBuilder
- func (b *SelectBuilder) Join(table, on interface{}) *SelectBuilder
- func (b *SelectBuilder) LeftJoin(table, on interface{}) *SelectBuilder
- func (b *SelectBuilder) Limit(n uint64) *SelectBuilder
- func (b *SelectBuilder) Load(value interface{}) (int, error)
- func (b *SelectBuilder) LoadStruct(value interface{}) error
- func (b *SelectBuilder) LoadStructs(value interface{}) (int, error)
- func (b *SelectBuilder) LoadValue(value interface{}) error
- func (b *SelectBuilder) LoadValues(value interface{}) (int, error)
- func (b *SelectBuilder) Offset(n uint64) *SelectBuilder
- func (b *SelectBuilder) OrderBy(col string) *SelectBuilder
- func (b *SelectBuilder) OrderDir(col string, isAsc bool) *SelectBuilder
- func (b *SelectBuilder) Paginate(page, perPage uint64) *SelectBuilder
- func (b *SelectBuilder) ReturnInt64() (int64, error)
- func (b *SelectBuilder) ReturnInt64s() ([]int64, error)
- func (b *SelectBuilder) ReturnString() (string, error)
- func (b *SelectBuilder) ReturnStrings() ([]string, error)
- func (b *SelectBuilder) ReturnUint64() (uint64, error)
- func (b *SelectBuilder) ReturnUint64s() ([]uint64, error)
- func (b *SelectBuilder) RightJoin(table, on interface{}) *SelectBuilder
- func (b *SelectBuilder) ToSql() (string, []interface{})
- func (b *SelectBuilder) Where(query interface{}, value ...interface{}) *SelectBuilder
- type SelectStmt
- func (b *SelectStmt) As(alias string) Builder
- func (b *SelectStmt) Build(d Dialect, buf Buffer) error
- func (b *SelectStmt) Distinct() *SelectStmt
- func (b *SelectStmt) From(table interface{}) *SelectStmt
- func (b *SelectStmt) FullJoin(table, on interface{}) *SelectStmt
- func (b *SelectStmt) GroupBy(col ...string) *SelectStmt
- func (b *SelectStmt) Having(query interface{}, value ...interface{}) *SelectStmt
- func (b *SelectStmt) Join(table, on interface{}) *SelectStmt
- func (b *SelectStmt) LeftJoin(table, on interface{}) *SelectStmt
- func (b *SelectStmt) Limit(n uint64) *SelectStmt
- func (b *SelectStmt) Offset(n uint64) *SelectStmt
- func (b *SelectStmt) OrderAsc(col string) *SelectStmt
- func (b *SelectStmt) OrderDesc(col string) *SelectStmt
- func (b *SelectStmt) RightJoin(table, on interface{}) *SelectStmt
- func (b *SelectStmt) Where(query interface{}, value ...interface{}) *SelectStmt
- type Session
- func (sess *Session) Begin() (*Tx, error)
- func (sess *Session) DeleteBySql(query string, value ...interface{}) *DeleteBuilder
- func (sess *Session) DeleteFrom(table string) *DeleteBuilder
- func (sess *Session) InsertBySql(query string, value ...interface{}) *InsertBuilder
- func (sess *Session) InsertInto(table string) *InsertBuilder
- func (sess *Session) Select(column ...string) *SelectBuilder
- func (sess *Session) SelectBySql(query string, value ...interface{}) *SelectBuilder
- func (sess *Session) Update(table string) *UpdateBuilder
- func (sess *Session) UpdateBySql(query string, value ...interface{}) *UpdateBuilder
- type SessionRunner
- type Tx
- func (tx *Tx) Commit() error
- func (tx *Tx) DeleteBySql(query string, value ...interface{}) *DeleteBuilder
- func (tx *Tx) DeleteFrom(table string) *DeleteBuilder
- func (tx *Tx) InsertBySql(query string, value ...interface{}) *InsertBuilder
- func (tx *Tx) InsertInto(table string) *InsertBuilder
- func (tx *Tx) Rollback() error
- func (tx *Tx) RollbackUnlessCommitted()
- func (tx *Tx) Select(column ...string) *SelectBuilder
- func (tx *Tx) SelectBySql(query string, value ...interface{}) *SelectBuilder
- func (tx *Tx) Update(table string) *UpdateBuilder
- func (tx *Tx) UpdateBySql(query string, value ...interface{}) *UpdateBuilder
- type UpdateBuilder
- func (b *UpdateBuilder) Build(d Dialect, buf Buffer) error
- func (b *UpdateBuilder) Exec() (sql.Result, error)
- func (b *UpdateBuilder) Limit(n uint64) *UpdateBuilder
- func (b *UpdateBuilder) Set(column string, value interface{}) *UpdateBuilder
- func (b *UpdateBuilder) SetMap(m map[string]interface{}) *UpdateBuilder
- func (b *UpdateBuilder) ToSql() (string, []interface{})
- func (b *UpdateBuilder) Where(query interface{}, value ...interface{}) *UpdateBuilder
- type UpdateStmt
Constants ¶
This section is empty.
Variables ¶
var ( ErrNotFound = errors.New("dbr: not found") ErrNotSupported = errors.New("dbr: not supported") ErrTableNotSpecified = errors.New("dbr: table not specified") ErrColumnNotSpecified = errors.New("dbr: column not specified") ErrInvalidPointer = errors.New("dbr: attempt to load into an invalid pointer") ErrPlaceholderCount = errors.New("dbr: wrong placeholder count") ErrInvalidSliceLength = errors.New("dbr: length of slice is 0. length must be >= 1") ErrCantConvertToTime = errors.New("dbr: can't convert to time.Time") ErrInvalidTimestring = errors.New("dbr: invalid time string") )
package errors
var Now = nowSentinel{}
Now is a value that serializes to the current time
Functions ¶
func Interpolate ¶
FIXME: This will be removed in the future
func InterpolateForDialect ¶
InterpolateForDialect replaces placeholder in query with corresponding value in dialect
func LoadColumns ¶
LoadColumns loads values from sql.Rows, allowing for potentially null values. note: currently only supports NullStrings.
Types ¶
type Buffer ¶
type Builder ¶
Builder builds sql in one dialect like MySQL/PostgreSQL e.g. XxxBuilder
func Eq ¶
Eq is `=`. When value is nil, it will be translated to `IS NULL`. When value is a slice, it will be translated to `IN`. Otherwise it will be translated to `=`.
type Connection ¶
type Connection struct { *sql.DB Dialect Dialect EventReceiver }
Connection is a connection to the database with an EventReceiver to send events, errors, and timings to
func NewConnection ¶
func NewConnection(db *sql.DB, log EventReceiver) *Connection
FIXME: This will be removed in the future
func Open ¶
func Open(driver, dsn string, log EventReceiver) (*Connection, error)
Open instantiates a Connection for a given database/sql connection and event receiver
func (*Connection) NewSession ¶
func (conn *Connection) NewSession(log EventReceiver) *Session
NewSession instantiates a Session for the Connection
type DeleteBuilder ¶
type DeleteBuilder struct { EventReceiver Dialect Dialect *DeleteStmt LimitCount int64 // contains filtered or unexported fields }
func (*DeleteBuilder) Limit ¶
func (b *DeleteBuilder) Limit(n uint64) *DeleteBuilder
func (*DeleteBuilder) ToSql ¶
func (b *DeleteBuilder) ToSql() (string, []interface{})
FIXME: This will be removed in the future
func (*DeleteBuilder) Where ¶
func (b *DeleteBuilder) Where(query interface{}, value ...interface{}) *DeleteBuilder
type DeleteStmt ¶
type DeleteStmt struct { Table string WhereCond []Builder // contains filtered or unexported fields }
DeleteStmt builds `DELETE ...`
func DeleteBySql ¶
func DeleteBySql(query string, value ...interface{}) *DeleteStmt
DeleteBySql creates a DeleteStmt from raw query
func (*DeleteStmt) Build ¶
func (b *DeleteStmt) Build(d Dialect, buf Buffer) error
Build builds `DELETE ...` in dialect
func (*DeleteStmt) Where ¶
func (b *DeleteStmt) Where(query interface{}, value ...interface{}) *DeleteStmt
Where adds a where condition
type Dialect ¶
type Dialect interface { QuoteIdent(id string) string EncodeString(s string) string EncodeBool(b bool) string EncodeTime(t time.Time) string EncodeBytes(b []byte) string Placeholder(n int) string }
Dialect abstracts database differences
type EventReceiver ¶
type EventReceiver interface { Event(eventName string) EventKv(eventName string, kvs map[string]string) EventErr(eventName string, err error) error EventErrKv(eventName string, err error, kvs map[string]string) error Timing(eventName string, nanoseconds int64) TimingKv(eventName string, nanoseconds int64, kvs map[string]string) }
EventReceiver gets events from dbr methods for logging purposes
type I ¶
type I string
identifier is a type of string
type InsertBuilder ¶
type InsertBuilder struct { EventReceiver Dialect Dialect RecordID reflect.Value *InsertStmt // contains filtered or unexported fields }
func (*InsertBuilder) Columns ¶
func (b *InsertBuilder) Columns(column ...string) *InsertBuilder
func (*InsertBuilder) Pair ¶
func (b *InsertBuilder) Pair(column string, value interface{}) *InsertBuilder
func (*InsertBuilder) Record ¶
func (b *InsertBuilder) Record(structValue interface{}) *InsertBuilder
func (*InsertBuilder) ToSql ¶
func (b *InsertBuilder) ToSql() (string, []interface{})
FIXME: This will be removed in the future
func (*InsertBuilder) Values ¶
func (b *InsertBuilder) Values(value ...interface{}) *InsertBuilder
type InsertStmt ¶
type InsertStmt struct { Table string Column []string Value [][]interface{} // contains filtered or unexported fields }
InsertStmt builds `INSERT INTO ...`
func InsertBySql ¶
func InsertBySql(query string, value ...interface{}) *InsertStmt
InsertBySql creates an InsertStmt from raw query
func (*InsertStmt) Build ¶
func (b *InsertStmt) Build(d Dialect, buf Buffer) error
Build builds `INSERT INTO ...` in dialect
func (*InsertStmt) Columns ¶
func (b *InsertStmt) Columns(column ...string) *InsertStmt
Columns adds columns
func (*InsertStmt) Record ¶
func (b *InsertStmt) Record(structValue interface{}) *InsertStmt
Record adds a tuple for columns from a struct
func (*InsertStmt) Values ¶
func (b *InsertStmt) Values(value ...interface{}) *InsertStmt
Values adds a tuple for columns
type NullBool ¶
NullBool is a type that can be null or a bool
func NewNullBool ¶
func NewNullBool(v interface{}) (n NullBool)
func (NullBool) MarshalJSON ¶
MarshalJSON correctly serializes a NullBool to JSON
func (*NullBool) UnmarshalJSON ¶
UnmarshalJSON correctly deserializes a NullBool from JSON
type NullEventReceiver ¶
type NullEventReceiver struct{}
NullEventReceiver is a sentinel EventReceiver; use it if the caller doesn't supply one
func (*NullEventReceiver) Event ¶
func (n *NullEventReceiver) Event(eventName string)
Event receives a simple notification when various events occur
func (*NullEventReceiver) EventErr ¶
func (n *NullEventReceiver) EventErr(eventName string, err error) error
EventErr receives a notification of an error if one occurs
func (*NullEventReceiver) EventErrKv ¶
EventErrKv receives a notification of an error if one occurs along with optional key/value data
func (*NullEventReceiver) EventKv ¶
func (n *NullEventReceiver) EventKv(eventName string, kvs map[string]string)
EventKv receives a notification when various events occur along with optional key/value data
func (*NullEventReceiver) Timing ¶
func (n *NullEventReceiver) Timing(eventName string, nanoseconds int64)
Timing receives the time an event took to happen
type NullFloat64 ¶
type NullFloat64 struct {
sql.NullFloat64
}
NullFloat64 is a type that can be null or a float64
func NewNullFloat64 ¶
func NewNullFloat64(v interface{}) (n NullFloat64)
func (NullFloat64) MarshalJSON ¶
func (n NullFloat64) MarshalJSON() ([]byte, error)
MarshalJSON correctly serializes a NullFloat64 to JSON
func (*NullFloat64) UnmarshalJSON ¶
func (n *NullFloat64) UnmarshalJSON(b []byte) error
UnmarshalJSON correctly deserializes a NullFloat64 from JSON
type NullInt64 ¶
NullInt64 is a type that can be null or an int
func NewNullInt64 ¶
func NewNullInt64(v interface{}) (n NullInt64)
func (NullInt64) MarshalJSON ¶
MarshalJSON correctly serializes a NullInt64 to JSON
func (*NullInt64) UnmarshalJSON ¶
UnmarshalJSON correctly deserializes a NullInt64 from JSON
type NullString ¶
type NullString struct {
sql.NullString
}
NullString is a type that can be null or a string
func NewNullString ¶
func NewNullString(v interface{}) (n NullString)
func (NullString) MarshalJSON ¶
func (n NullString) MarshalJSON() ([]byte, error)
MarshalJSON correctly serializes a NullString to JSON
func (*NullString) UnmarshalJSON ¶
func (n *NullString) UnmarshalJSON(b []byte) error
UnmarshalJSON correctly deserializes a NullString from JSON
type NullTime ¶
NullTime is a type that can be null or a time
func NewNullTime ¶
func NewNullTime(v interface{}) (n NullTime)
func (NullTime) MarshalJSON ¶
MarshalJSON correctly serializes a NullTime to JSON
func (*NullTime) Scan ¶
Scan implements the Scanner interface. The value type must be time.Time or string / []byte (formatted time-string), otherwise Scan fails.
func (*NullTime) UnmarshalJSON ¶
UnmarshalJSON correctly deserializes a NullTime from JSON
type SelectBuilder ¶
type SelectBuilder struct { EventReceiver Dialect Dialect *SelectStmt // contains filtered or unexported fields }
func (*SelectBuilder) Distinct ¶
func (b *SelectBuilder) Distinct() *SelectBuilder
func (*SelectBuilder) From ¶
func (b *SelectBuilder) From(table interface{}) *SelectBuilder
func (*SelectBuilder) FullJoin ¶
func (b *SelectBuilder) FullJoin(table, on interface{}) *SelectBuilder
func (*SelectBuilder) GroupBy ¶
func (b *SelectBuilder) GroupBy(col ...string) *SelectBuilder
func (*SelectBuilder) Having ¶
func (b *SelectBuilder) Having(query interface{}, value ...interface{}) *SelectBuilder
func (*SelectBuilder) Join ¶
func (b *SelectBuilder) Join(table, on interface{}) *SelectBuilder
func (*SelectBuilder) LeftJoin ¶
func (b *SelectBuilder) LeftJoin(table, on interface{}) *SelectBuilder
func (*SelectBuilder) Limit ¶
func (b *SelectBuilder) Limit(n uint64) *SelectBuilder
func (*SelectBuilder) Load ¶
func (b *SelectBuilder) Load(value interface{}) (int, error)
func (*SelectBuilder) LoadStruct ¶
func (b *SelectBuilder) LoadStruct(value interface{}) error
func (*SelectBuilder) LoadStructs ¶
func (b *SelectBuilder) LoadStructs(value interface{}) (int, error)
func (*SelectBuilder) LoadValue ¶
func (b *SelectBuilder) LoadValue(value interface{}) error
func (*SelectBuilder) LoadValues ¶
func (b *SelectBuilder) LoadValues(value interface{}) (int, error)
func (*SelectBuilder) Offset ¶
func (b *SelectBuilder) Offset(n uint64) *SelectBuilder
func (*SelectBuilder) OrderBy ¶
func (b *SelectBuilder) OrderBy(col string) *SelectBuilder
func (*SelectBuilder) OrderDir ¶
func (b *SelectBuilder) OrderDir(col string, isAsc bool) *SelectBuilder
func (*SelectBuilder) Paginate ¶
func (b *SelectBuilder) Paginate(page, perPage uint64) *SelectBuilder
func (*SelectBuilder) ReturnInt64 ¶
func (b *SelectBuilder) ReturnInt64() (int64, error)
ReturnInt64 executes the SelectStmt and returns the value as an int64
func (*SelectBuilder) ReturnInt64s ¶
func (b *SelectBuilder) ReturnInt64s() ([]int64, error)
ReturnInt64s executes the SelectStmt and returns the value as a slice of int64s
func (*SelectBuilder) ReturnString ¶
func (b *SelectBuilder) ReturnString() (string, error)
ReturnString executes the SelectStmt and returns the value as a string
func (*SelectBuilder) ReturnStrings ¶
func (b *SelectBuilder) ReturnStrings() ([]string, error)
ReturnStrings executes the SelectStmt and returns the value as a slice of strings
func (*SelectBuilder) ReturnUint64 ¶
func (b *SelectBuilder) ReturnUint64() (uint64, error)
ReturnUint64 executes the SelectStmt and returns the value as an uint64
func (*SelectBuilder) ReturnUint64s ¶
func (b *SelectBuilder) ReturnUint64s() ([]uint64, error)
ReturnUint64s executes the SelectStmt and returns the value as a slice of uint64s
func (*SelectBuilder) RightJoin ¶
func (b *SelectBuilder) RightJoin(table, on interface{}) *SelectBuilder
func (*SelectBuilder) ToSql ¶
func (b *SelectBuilder) ToSql() (string, []interface{})
FIXME: This will be removed in the future
func (*SelectBuilder) Where ¶
func (b *SelectBuilder) Where(query interface{}, value ...interface{}) *SelectBuilder
type SelectStmt ¶
type SelectStmt struct { IsDistinct bool Column []interface{} Table interface{} JoinTable []Builder WhereCond []Builder Group []Builder HavingCond []Builder Order []Builder LimitCount int64 OffsetCount int64 // contains filtered or unexported fields }
SelectStmt builds `SELECT ...`
func SelectBySql ¶
func SelectBySql(query string, value ...interface{}) *SelectStmt
SelectBySql creates a SelectStmt from raw query
func (*SelectStmt) As ¶
func (b *SelectStmt) As(alias string) Builder
As creates alias for select statement
func (*SelectStmt) Build ¶
func (b *SelectStmt) Build(d Dialect, buf Buffer) error
Build builds `SELECT ...` in dialect
func (*SelectStmt) From ¶
func (b *SelectStmt) From(table interface{}) *SelectStmt
From specifies table
func (*SelectStmt) FullJoin ¶
func (b *SelectStmt) FullJoin(table, on interface{}) *SelectStmt
func (*SelectStmt) GroupBy ¶
func (b *SelectStmt) GroupBy(col ...string) *SelectStmt
GroupBy specifies columns for grouping
func (*SelectStmt) Having ¶
func (b *SelectStmt) Having(query interface{}, value ...interface{}) *SelectStmt
Having adds a having condition
func (*SelectStmt) Join ¶
func (b *SelectStmt) Join(table, on interface{}) *SelectStmt
Join joins table on condition
func (*SelectStmt) LeftJoin ¶
func (b *SelectStmt) LeftJoin(table, on interface{}) *SelectStmt
func (*SelectStmt) OrderAsc ¶
func (b *SelectStmt) OrderAsc(col string) *SelectStmt
OrderBy specifies columns for ordering
func (*SelectStmt) OrderDesc ¶
func (b *SelectStmt) OrderDesc(col string) *SelectStmt
func (*SelectStmt) RightJoin ¶
func (b *SelectStmt) RightJoin(table, on interface{}) *SelectStmt
func (*SelectStmt) Where ¶
func (b *SelectStmt) Where(query interface{}, value ...interface{}) *SelectStmt
Where adds a where condition
type Session ¶
type Session struct { *Connection EventReceiver }
Session represents a business unit of execution for some connection
func (*Session) DeleteBySql ¶
func (sess *Session) DeleteBySql(query string, value ...interface{}) *DeleteBuilder
func (*Session) DeleteFrom ¶
func (sess *Session) DeleteFrom(table string) *DeleteBuilder
func (*Session) InsertBySql ¶
func (sess *Session) InsertBySql(query string, value ...interface{}) *InsertBuilder
func (*Session) InsertInto ¶
func (sess *Session) InsertInto(table string) *InsertBuilder
func (*Session) Select ¶
func (sess *Session) Select(column ...string) *SelectBuilder
func (*Session) SelectBySql ¶
func (sess *Session) SelectBySql(query string, value ...interface{}) *SelectBuilder
func (*Session) Update ¶
func (sess *Session) Update(table string) *UpdateBuilder
func (*Session) UpdateBySql ¶
func (sess *Session) UpdateBySql(query string, value ...interface{}) *UpdateBuilder
type SessionRunner ¶
type SessionRunner interface { Select(column ...string) *SelectBuilder SelectBySql(query string, value ...interface{}) *SelectBuilder InsertInto(table string) *InsertBuilder InsertBySql(query string, value ...interface{}) *InsertBuilder Update(table string) *UpdateBuilder UpdateBySql(query string, value ...interface{}) *UpdateBuilder DeleteFrom(table string) *DeleteBuilder DeleteBySql(query string, value ...interface{}) *DeleteBuilder }
SessionRunner can do anything that a Session can except start a transaction.
type Tx ¶
type Tx struct { EventReceiver Dialect Dialect *sql.Tx }
Tx is a transaction for the given Session
func (*Tx) DeleteBySql ¶
func (tx *Tx) DeleteBySql(query string, value ...interface{}) *DeleteBuilder
func (*Tx) DeleteFrom ¶
func (tx *Tx) DeleteFrom(table string) *DeleteBuilder
func (*Tx) InsertBySql ¶
func (tx *Tx) InsertBySql(query string, value ...interface{}) *InsertBuilder
func (*Tx) InsertInto ¶
func (tx *Tx) InsertInto(table string) *InsertBuilder
func (*Tx) RollbackUnlessCommitted ¶
func (tx *Tx) RollbackUnlessCommitted()
RollbackUnlessCommitted rollsback the transaction unless it has already been committed or rolled back. Useful to defer tx.RollbackUnlessCommitted() -- so you don't have to handle N failure cases Keep in mind the only way to detect an error on the rollback is via the event log.
func (*Tx) Select ¶
func (tx *Tx) Select(column ...string) *SelectBuilder
func (*Tx) SelectBySql ¶
func (tx *Tx) SelectBySql(query string, value ...interface{}) *SelectBuilder
func (*Tx) Update ¶
func (tx *Tx) Update(table string) *UpdateBuilder
func (*Tx) UpdateBySql ¶
func (tx *Tx) UpdateBySql(query string, value ...interface{}) *UpdateBuilder
type UpdateBuilder ¶
type UpdateBuilder struct { EventReceiver Dialect Dialect *UpdateStmt LimitCount int64 // contains filtered or unexported fields }
func (*UpdateBuilder) Limit ¶
func (b *UpdateBuilder) Limit(n uint64) *UpdateBuilder
func (*UpdateBuilder) Set ¶
func (b *UpdateBuilder) Set(column string, value interface{}) *UpdateBuilder
func (*UpdateBuilder) SetMap ¶
func (b *UpdateBuilder) SetMap(m map[string]interface{}) *UpdateBuilder
func (*UpdateBuilder) ToSql ¶
func (b *UpdateBuilder) ToSql() (string, []interface{})
FIXME: This will be removed in the future
func (*UpdateBuilder) Where ¶
func (b *UpdateBuilder) Where(query interface{}, value ...interface{}) *UpdateBuilder
type UpdateStmt ¶
type UpdateStmt struct { Table string Value map[string]interface{} WhereCond []Builder // contains filtered or unexported fields }
UpdateStmt builds `UPDATE ...`
func UpdateBySql ¶
func UpdateBySql(query string, value ...interface{}) *UpdateStmt
UpdateBySql creates an UpdateStmt with raw query
func (*UpdateStmt) Build ¶
func (b *UpdateStmt) Build(d Dialect, buf Buffer) error
Build builds `UPDATE ...` in dialect
func (*UpdateStmt) Set ¶
func (b *UpdateStmt) Set(column string, value interface{}) *UpdateStmt
Set specifies a key-value pair
func (*UpdateStmt) SetMap ¶
func (b *UpdateStmt) SetMap(m map[string]interface{}) *UpdateStmt
SetMap specifies a list of key-value pair
func (*UpdateStmt) Where ¶
func (b *UpdateStmt) Where(query interface{}, value ...interface{}) *UpdateStmt
Where adds a where condition
Source Files ¶
- buffer.go
- builder.go
- condition.go
- dbr.go
- delete.go
- delete_builder.go
- dialect.go
- errors.go
- event.go
- expr.go
- ident.go
- insert.go
- insert_builder.go
- interpolate.go
- join.go
- load.go
- now.go
- order.go
- select.go
- select_builder.go
- select_return.go
- transaction.go
- types.go
- union.go
- update.go
- update_builder.go
- util.go