41 lines
1.2 KiB
Go
41 lines
1.2 KiB
Go
package orm
|
|
|
|
import "io"
|
|
|
|
// ColumnScanner is used to scan column values.
|
|
type ColumnScanner interface {
|
|
// Scan assigns a column value from a row.
|
|
//
|
|
// An error should be returned if the value can not be stored
|
|
// without loss of information.
|
|
ScanColumn(colIdx int, colName string, b []byte) error
|
|
}
|
|
|
|
type QueryAppender interface {
|
|
Copy() QueryAppender
|
|
Query() *Query
|
|
AppendQuery(dst []byte) ([]byte, error)
|
|
}
|
|
|
|
type QueryFormatter interface {
|
|
FormatQuery(b []byte, query string, params ...interface{}) []byte
|
|
}
|
|
|
|
// DB is a common interface for pg.DB and pg.Tx types.
|
|
type DB interface {
|
|
Model(model ...interface{}) *Query
|
|
Select(model interface{}) error
|
|
Insert(model ...interface{}) error
|
|
Update(model ...interface{}) error
|
|
Delete(model interface{}) error
|
|
|
|
Exec(query interface{}, params ...interface{}) (Result, error)
|
|
ExecOne(query interface{}, params ...interface{}) (Result, error)
|
|
Query(coll, query interface{}, params ...interface{}) (Result, error)
|
|
QueryOne(model, query interface{}, params ...interface{}) (Result, error)
|
|
|
|
CopyFrom(r io.Reader, query interface{}, params ...interface{}) (Result, error)
|
|
CopyTo(w io.Writer, query interface{}, params ...interface{}) (Result, error)
|
|
|
|
QueryFormatter
|
|
}
|