Versions in this module Expand all Collapse all v0 v0.0.1 Jan 14, 2024 Changes in this version + func ExtractRowSet[T any](rowSet RowSet, callback func(rowSet RowSet) []T) []T + func ExtractRow[T any](row Row, callback func(row Row) T) (t T) + func FromContext[T *TransactionContext](ctx context.Context) T + func Register(name string, driver driver.Driver) + type Connection interface + BeginTransaction func(ctx context.Context) (TransactionStatus, error) + Close func() error + Driver func() driver.Driver + ExecContext func(ctx context.Context, query string, args ...any) (Result, error) + IsClosed func() bool + PingContext func(ctx context.Context) error + PrepareContext func(ctx context.Context, query string, args ...any) (Statement, error) + QueryContext func(ctx context.Context, query string, args ...any) (RowSet, error) + QueryRowContext func(ctx context.Context, query string, args ...any) (Row, error) + SetConnMaxIdleTime func(d time.Duration) error + SetConnMaxLifetime func(d time.Duration) error + SetMaxIdleConns func(n int) error + SetMaxOpenConns func(n int) error + type DataSource interface + GetConnection func() (Connection, error) + type DataSourceTransactionManager struct + func NewDataSourceTransactionManager(dataSource DataSource) *DataSourceTransactionManager + func (m *DataSourceTransactionManager) Commit() error + func (m *DataSourceTransactionManager) GetTransaction(ctx context.Context, options ...any) (TransactionStatus, error) + func (m *DataSourceTransactionManager) Rollback() error + type DefaultTransactionStatus struct + func NewDefaultTransactionStatus() *DefaultTransactionStatus + type IsolationLevel int + const LevelDefault + const LevelLinearizable + const LevelReadCommitted + const LevelReadUncommitted + const LevelRepeatableRead + const LevelSerializable + const LevelSnapshot + const LevelWriteCommitted + type PreparedStatement struct + func NewPreparedStatement(stmt *sql.Stmt) *PreparedStatement + func (p *PreparedStatement) Close() error + func (p *PreparedStatement) ExecContext(ctx context.Context, args ...any) (Result, error) + func (p *PreparedStatement) QueryContext(ctx context.Context, args ...any) (RowSet, error) + func (p *PreparedStatement) QueryRowContext(ctx context.Context, args ...any) (Row, error) + type Propagation int + const PropagationMandatory + const PropagationNested + const PropagationNever + const PropagationNotSupported + const PropagationRequired + const PropagationRequiredNew + const PropagationSupports + type Result interface + LastInsertId func() (int64, error) + RowsAffected func() (int64, error) + type Row interface + Scan func(dest ...any) error + type RowSet interface + Next func() bool + type Statement interface + Close func() error + ExecContext func(ctx context.Context, args ...any) (Result, error) + QueryContext func(ctx context.Context, args ...any) (RowSet, error) + QueryRowContext func(ctx context.Context, args ...any) (Row, error) + type TransactionCallback func(ctx context.Context) (any, error) + type TransactionContext struct + type TransactionManager interface + Commit func() error + GetTransaction func(ctx context.Context, options ...any) (TransactionStatus, error) + Rollback func() error + type TransactionOption func(options *TransactionOptions) + func WithIsolation(isolationLevel IsolationLevel) TransactionOption + func WithPropagation(propagation Propagation) TransactionOption + func WithReadOnly(readOnly bool) TransactionOption + func WithTimeout(timeout time.Duration) TransactionOption + type TransactionOptions struct + func DefaultTransactionOptions() *TransactionOptions + func NewTransactionOptions(opts ...TransactionOption) *TransactionOptions + func (o *TransactionOptions) IsReadOnly() bool + func (o *TransactionOptions) IsolationLevel() IsolationLevel + func (o *TransactionOptions) Merge(options *TransactionOptions) *TransactionOptions + func (o *TransactionOptions) Override(options ...TransactionOption) *TransactionOptions + func (o *TransactionOptions) Propagation() Propagation + func (o *TransactionOptions) Timeout() time.Duration + type TransactionStatus interface + IsCompleted func() bool + IsNewTransaction func() bool + IsRollbackOnly func() bool + SetRollbackOnly func() + type TransactionTemplate struct + func NewTransactionTemplate(manager TransactionManager) *TransactionTemplate + func (t *TransactionTemplate) Execute(ctx context.Context, callback TransactionCallback) (result any, err error) v0.0.1-dev Jan 14, 2024