|
@@ -1,8 +1,5 @@
|
|
|
package sqlw
|
|
|
|
|
|
-// TODO: rework all with context from request
|
|
|
-// https://golang.org/pkg/database/sql/
|
|
|
-
|
|
|
import (
|
|
|
"context"
|
|
|
"database/sql"
|
|
@@ -76,8 +73,10 @@ func (this *DB) QueryRow(ctx context.Context, query string, args ...interface{})
|
|
|
return this.db.QueryRow(query, args...)
|
|
|
}
|
|
|
|
|
|
-func (this *DB) Begin() (*Tx, error) {
|
|
|
- tx, err := this.db.Begin()
|
|
|
+func (this *DB) Begin(ctx context.Context) (*Tx, error) {
|
|
|
+ tx, err := this.db.BeginTx(ctx, &sql.TxOptions{
|
|
|
+ Isolation: sql.LevelDefault,
|
|
|
+ })
|
|
|
if err != nil {
|
|
|
if consts.ParamDebug {
|
|
|
log("[TX] TRANSACTION START", time.Now(), err, true)
|
|
@@ -112,13 +111,11 @@ func (this *DB) Exec(ctx context.Context, query string, args ...interface{}) (sq
|
|
|
return this.db.ExecContext(ctx, query, args...)
|
|
|
}
|
|
|
|
|
|
-// TODO: review
|
|
|
-// https://golang.org/pkg/database/sql/
|
|
|
-func (this *DB) Transaction(queries func(tx *Tx) error) error {
|
|
|
+func (this *DB) Transaction(ctx context.Context, queries func(tx *Tx) error) error {
|
|
|
if queries == nil {
|
|
|
return errors.New("queries is not set for transaction")
|
|
|
}
|
|
|
- tx, err := this.Begin()
|
|
|
+ tx, err := this.Begin(ctx)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|