Documentation ¶
Index ¶
- func IsWithinTransaction(ctx context.Context) bool
- func NestedTransactionsMSSQL(db sqlxDB, tx *sqlx.Tx) (sqlxDB, sqlxTx)
- func NestedTransactionsNone(db sqlxDB, tx *sqlx.Tx) (sqlxDB, sqlxTx)
- func NestedTransactionsOracle(db sqlxDB, tx *sqlx.Tx) (sqlxDB, sqlxTx)
- func NestedTransactionsSavepoints(db sqlxDB, tx *sqlx.Tx) (sqlxDB, sqlxTx)
- func NewFakeTransactor(db *sqlx.DB) (FakeTransactor, DBGetter)
- func NewTransactor(db *sqlx.DB, nestedTransactionStrategy nestedTransactionsStrategy) (*Transactor, DBGetter)
- type DB
- type DBGetter
- type FakeTransactor
- type Transactor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsWithinTransaction ¶
func NestedTransactionsMSSQL ¶
NestedTransactionsMSSQL is a nested transactions implementation using Microsoft SQL Server savepoints.
func NestedTransactionsNone ¶
NestedTransactionsNone is an implementation that prevents using nested transactions.
func NestedTransactionsOracle ¶
NestedTransactionsOracle is a nested transactions implementation using Oracle savepoints.
func NestedTransactionsSavepoints ¶
NestedTransactionsSavepoints is a nested transactions implementation using savepoints. It's compatible with PostgreSQL, MySQL, MariaDB, and SQLite.
func NewFakeTransactor ¶
func NewFakeTransactor(db *sqlx.DB) (FakeTransactor, DBGetter)
NewFakeTransactor initializes a Transactor and DBGetter that do nothing: - the Transactor just executes its callback and returns the error, - the DBGetter just returns the DB handler. They can be used in tests where the transaction system itself doesn't need to be tested.
func NewTransactor ¶
func NewTransactor(db *sqlx.DB, nestedTransactionStrategy nestedTransactionsStrategy) (*Transactor, DBGetter)
Types ¶
type DB ¶
type DB interface { ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error) PrepareContext(ctx context.Context, query string) (*sql.Stmt, error) QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error) QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row Exec(query string, args ...any) (sql.Result, error) Prepare(query string) (*sql.Stmt, error) Query(query string, args ...any) (*sql.Rows, error) QueryRow(query string, args ...any) *sql.Row GetContext(ctx context.Context, dest any, query string, args ...any) error MustExecContext(ctx context.Context, query string, args ...any) sql.Result NamedExecContext(ctx context.Context, query string, arg any) (sql.Result, error) PrepareNamedContext(ctx context.Context, query string) (*sqlx.NamedStmt, error) PreparexContext(ctx context.Context, query string) (*sqlx.Stmt, error) QueryRowxContext(ctx context.Context, query string, args ...any) *sqlx.Row QueryxContext(ctx context.Context, query string, args ...any) (*sqlx.Rows, error) SelectContext(ctx context.Context, dest any, query string, args ...any) error Get(dest any, query string, args ...any) error MustExec(query string, args ...any) sql.Result NamedExec(query string, arg any) (sql.Result, error) NamedQuery(query string, arg any) (*sqlx.Rows, error) PrepareNamed(query string) (*sqlx.NamedStmt, error) Preparex(query string) (*sqlx.Stmt, error) QueryRowx(query string, args ...any) *sqlx.Row Queryx(query string, args ...any) (*sqlx.Rows, error) Select(dest any, query string, args ...any) error Rebind(query string) string BindNamed(query string, arg any) (string, []any, error) DriverName() string }
type DBGetter ¶
DBGetter is used to get the current DB handler from the context. It returns the current transaction if there is one, otherwise it will return the original DB.
type Transactor ¶
type Transactor struct {
// contains filtered or unexported fields
}