package gorm
import (
"context"
"database/sql"
"gorm.io/gorm/clause"
"gorm.io/gorm/schema"
)
type Dialector interface {
Name () string
Initialize (*DB ) error
Migrator (db *DB ) Migrator
DataTypeOf (*schema .Field ) string
DefaultValueOf (*schema .Field ) clause .Expression
BindVarTo (writer clause .Writer , stmt *Statement , v interface {})
QuoteTo (clause .Writer , string )
Explain (sql string , vars ...interface {}) string
}
type Plugin interface {
Name () string
Initialize (*DB ) error
}
type ParamsFilter interface {
ParamsFilter (ctx context .Context , sql string , params ...interface {}) (string , []interface {})
}
type ConnPool interface {
PrepareContext (ctx context .Context , query string ) (*sql .Stmt , error )
ExecContext (ctx context .Context , query string , args ...interface {}) (sql .Result , error )
QueryContext (ctx context .Context , query string , args ...interface {}) (*sql .Rows , error )
QueryRowContext (ctx context .Context , query string , args ...interface {}) *sql .Row
}
type SavePointerDialectorInterface interface {
SavePoint (tx *DB , name string ) error
RollbackTo (tx *DB , name string ) error
}
type TxBeginner interface {
BeginTx (ctx context .Context , opts *sql .TxOptions ) (*sql .Tx , error )
}
type ConnPoolBeginner interface {
BeginTx (ctx context .Context , opts *sql .TxOptions ) (ConnPool , error )
}
type TxCommitter interface {
Commit () error
Rollback () error
}
type Tx interface {
ConnPool
TxCommitter
StmtContext (ctx context .Context , stmt *sql .Stmt ) *sql .Stmt
}
type Valuer interface {
GormValue (context .Context , *DB ) clause .Expr
}
type GetDBConnector interface {
GetDBConn () (*sql .DB , error )
}
type Rows interface {
Columns () ([]string , error )
ColumnTypes () ([]*sql .ColumnType , error )
Next () bool
Scan (dest ...interface {}) error
Err () error
Close () error
}
type ErrorTranslator interface {
Translate (err error ) error
}
The pages are generated with Golds v0.6.7 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds .