v0.0.351 sq value converter
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 2m30s
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 2m30s
This commit is contained in:
@@ -17,35 +17,35 @@ const (
|
||||
)
|
||||
|
||||
type Tx interface {
|
||||
Queryable
|
||||
|
||||
Rollback() error
|
||||
Commit() error
|
||||
Status() TxStatus
|
||||
Exec(ctx context.Context, sql string, prep PP) (sql.Result, error)
|
||||
Query(ctx context.Context, sql string, prep PP) (*sqlx.Rows, error)
|
||||
}
|
||||
|
||||
type transaction struct {
|
||||
tx *sqlx.Tx
|
||||
id uint16
|
||||
lstr []Listener
|
||||
status TxStatus
|
||||
execCtr int
|
||||
queryCtr int
|
||||
db *database
|
||||
}
|
||||
|
||||
func NewTransaction(xtx *sqlx.Tx, txid uint16, lstr []Listener) Tx {
|
||||
func NewTransaction(xtx *sqlx.Tx, txid uint16, db *database) Tx {
|
||||
return &transaction{
|
||||
tx: xtx,
|
||||
id: txid,
|
||||
lstr: lstr,
|
||||
status: TxStatusInitial,
|
||||
execCtr: 0,
|
||||
queryCtr: 0,
|
||||
db: db,
|
||||
}
|
||||
}
|
||||
|
||||
func (tx *transaction) Rollback() error {
|
||||
for _, v := range tx.lstr {
|
||||
for _, v := range tx.db.lstr {
|
||||
err := v.PreTxRollback(tx.id)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -58,7 +58,7 @@ func (tx *transaction) Rollback() error {
|
||||
tx.status = TxStatusRollback
|
||||
}
|
||||
|
||||
for _, v := range tx.lstr {
|
||||
for _, v := range tx.db.lstr {
|
||||
v.PostTxRollback(tx.id, result)
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ func (tx *transaction) Rollback() error {
|
||||
}
|
||||
|
||||
func (tx *transaction) Commit() error {
|
||||
for _, v := range tx.lstr {
|
||||
for _, v := range tx.db.lstr {
|
||||
err := v.PreTxCommit(tx.id)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -79,7 +79,7 @@ func (tx *transaction) Commit() error {
|
||||
tx.status = TxStatusComitted
|
||||
}
|
||||
|
||||
for _, v := range tx.lstr {
|
||||
for _, v := range tx.db.lstr {
|
||||
v.PostTxRollback(tx.id, result)
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ func (tx *transaction) Commit() error {
|
||||
|
||||
func (tx *transaction) Exec(ctx context.Context, sqlstr string, prep PP) (sql.Result, error) {
|
||||
origsql := sqlstr
|
||||
for _, v := range tx.lstr {
|
||||
for _, v := range tx.db.lstr {
|
||||
err := v.PreExec(ctx, langext.Ptr(tx.id), &sqlstr, &prep)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -101,7 +101,7 @@ func (tx *transaction) Exec(ctx context.Context, sqlstr string, prep PP) (sql.Re
|
||||
tx.status = TxStatusActive
|
||||
}
|
||||
|
||||
for _, v := range tx.lstr {
|
||||
for _, v := range tx.db.lstr {
|
||||
v.PostExec(langext.Ptr(tx.id), origsql, sqlstr, prep)
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ func (tx *transaction) Exec(ctx context.Context, sqlstr string, prep PP) (sql.Re
|
||||
|
||||
func (tx *transaction) Query(ctx context.Context, sqlstr string, prep PP) (*sqlx.Rows, error) {
|
||||
origsql := sqlstr
|
||||
for _, v := range tx.lstr {
|
||||
for _, v := range tx.db.lstr {
|
||||
err := v.PreQuery(ctx, langext.Ptr(tx.id), &sqlstr, &prep)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -126,7 +126,7 @@ func (tx *transaction) Query(ctx context.Context, sqlstr string, prep PP) (*sqlx
|
||||
tx.status = TxStatusActive
|
||||
}
|
||||
|
||||
for _, v := range tx.lstr {
|
||||
for _, v := range tx.db.lstr {
|
||||
v.PostQuery(langext.Ptr(tx.id), origsql, sqlstr, prep)
|
||||
}
|
||||
|
||||
@@ -140,6 +140,10 @@ func (tx *transaction) Status() TxStatus {
|
||||
return tx.status
|
||||
}
|
||||
|
||||
func (tx *transaction) ListConverter() []DBTypeConverter {
|
||||
return tx.db.conv
|
||||
}
|
||||
|
||||
func (tx *transaction) Traffic() (int, int) {
|
||||
return tx.execCtr, tx.queryCtr
|
||||
}
|
||||
|
Reference in New Issue
Block a user