Documentation
¶
Index ¶
- func WithIsolationLevel(level int) oniontx.Option[*sql.TxOptions]
- func WithReadOnly(readonly bool) oniontx.Option[*sql.TxOptions]
- type Executor
- type Transactor
- func (t *Transactor) GetExecutor(ctx context.Context) Executor
- func (t *Transactor) TryGetTx(ctx context.Context) (*sql.Tx, bool)
- func (t *Transactor) TxBeginner() *sql.DB
- func (t *Transactor) WithinTx(ctx context.Context, fn func(ctx context.Context) error) (err error)
- func (t *Transactor) WithinTxWithOpts(ctx context.Context, fn func(ctx context.Context) error, ...) (err error)
- type TxOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithIsolationLevel ¶
WithIsolationLevel set sql.TxOptions isolation level.
Look at sql.TxOptions.Isolation.
func WithReadOnly ¶
WithReadOnly set `ReadOnly` sql.TxOptions option.
Look at sql.TxOptions.ReadOnly.
Types ¶
type Executor ¶
type Executor interface {
Exec(query string, args ...any) (sql.Result, error)
ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
Query(query string, args ...any) (*sql.Rows, error)
QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)
QueryRow(query string, args ...any) *sql.Row
QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row
Prepare(query string) (*sql.Stmt, error)
PrepareContext(ctx context.Context, query string) (*sql.Stmt, error)
}
Executor represents common methods of sql.DB and sql.Tx.
type Transactor ¶
type Transactor struct {
*oniontx.Transactor[*dbWrapper, *txWrapper, *sql.TxOptions]
}
Transactor manage a transaction for single sql.DB instance.
func NewTransactor ¶
func NewTransactor(db *sql.DB) *Transactor
NewTransactor returns new Transactor.
func (*Transactor) GetExecutor ¶
func (t *Transactor) GetExecutor(ctx context.Context) Executor
GetExecutor returns Executor implementation (*sql.DB or *sql.Tx default wrappers).
func (*Transactor) TryGetTx ¶
TryGetTx returns pointer of sql.Tx and "true" from context.Context or return `false`.
func (*Transactor) TxBeginner ¶
func (t *Transactor) TxBeginner() *sql.DB
TxBeginner returns pointer of sql.DB.
func (*Transactor) WithinTx ¶
WithinTx execute all queries with sql.Tx.
Creates new sql.Tx or reuse sql.Tx obtained from context.Context.
func (*Transactor) WithinTxWithOpts ¶
func (t *Transactor) WithinTxWithOpts(ctx context.Context, fn func(ctx context.Context) error, opts ...oniontx.Option[*sql.TxOptions]) (err error)
WithinTxWithOpts execute all queries with sql.Tx and transaction sql.TxOptions.
Creates new sql.Tx or reuse sql.Tx obtained from context.Context.