github.com/systematiccaos/gorm@v1.22.6/interfaces.go (about)

     1  package gorm
     2  
     3  import (
     4  	"context"
     5  	"database/sql"
     6  
     7  	"github.com/systematiccaos/gorm/clause"
     8  	"github.com/systematiccaos/gorm/schema"
     9  )
    10  
    11  // Dialector GORM database dialector
    12  type Dialector interface {
    13  	Name() string
    14  	Initialize(*DB) error
    15  	Migrator(db *DB) Migrator
    16  	DataTypeOf(*schema.Field) string
    17  	DefaultValueOf(*schema.Field) clause.Expression
    18  	BindVarTo(writer clause.Writer, stmt *Statement, v interface{})
    19  	QuoteTo(clause.Writer, string)
    20  	Explain(sql string, vars ...interface{}) string
    21  }
    22  
    23  // Plugin GORM plugin interface
    24  type Plugin interface {
    25  	Name() string
    26  	Initialize(*DB) error
    27  }
    28  
    29  // ConnPool db conns pool interface
    30  type ConnPool interface {
    31  	PrepareContext(ctx context.Context, query string) (*sql.Stmt, error)
    32  	ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
    33  	QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
    34  	QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row
    35  }
    36  
    37  // SavePointerDialectorInterface save pointer interface
    38  type SavePointerDialectorInterface interface {
    39  	SavePoint(tx *DB, name string) error
    40  	RollbackTo(tx *DB, name string) error
    41  }
    42  
    43  type TxBeginner interface {
    44  	BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error)
    45  }
    46  
    47  type ConnPoolBeginner interface {
    48  	BeginTx(ctx context.Context, opts *sql.TxOptions) (ConnPool, error)
    49  }
    50  
    51  type TxCommitter interface {
    52  	Commit() error
    53  	Rollback() error
    54  }
    55  
    56  // Valuer gorm valuer interface
    57  type Valuer interface {
    58  	GormValue(context.Context, *DB) clause.Expr
    59  }
    60  
    61  type GetDBConnector interface {
    62  	GetDBConn() (*sql.DB, error)
    63  }