/
githubmirror
/
ydb-go-sql
Обзор
Документация
Войти
/
githubmirror
/
ydb-go-sql
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
internal/tx/tx.go
40 строк
798 B
asmyasnikov
draft
18 дек 2021, 14:18
18 дек 2021, 14:18
4ee29e6
Код
Авторство
О чём код?
package tx import ( "context" "database/sql/driver" "github.com/ydb-platform/ydb-go-sdk/v3/table" "github.com/ydb-platform/ydb-go-sql/internal/errors" ) type Tx interface { driver.Tx driver.QueryerContext driver.ExecerContext } func New(ctx context.Context, opts driver.TxOptions, s table.ClosableSession, close func()) (Tx, error) { isolation, control, err := isolationOrControl(opts) if err != nil { return nil, err } if isolation == nil { return &ro{ s: s, txc: table.TxControl(control...), close: close, }, nil } tx, err := s.BeginTransaction(ctx, table.TxSettings(isolation)) if err != nil { return nil, errors.Map(err) } return &rw{ s: s, tx: tx, txc: table.TxControl(append(control, table.WithTx(tx))...), close: close, }, nil }