summaryrefslogtreecommitdiff
path: root/vendor/github.com/jackc/pgx/v5/tx.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/jackc/pgx/v5/tx.go')
-rw-r--r--vendor/github.com/jackc/pgx/v5/tx.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/vendor/github.com/jackc/pgx/v5/tx.go b/vendor/github.com/jackc/pgx/v5/tx.go
index 8feeb5123..168d7ba6c 100644
--- a/vendor/github.com/jackc/pgx/v5/tx.go
+++ b/vendor/github.com/jackc/pgx/v5/tx.go
@@ -48,6 +48,8 @@ type TxOptions struct {
// BeginQuery is the SQL query that will be executed to begin the transaction. This allows using non-standard syntax
// such as BEGIN PRIORITY HIGH with CockroachDB. If set this will override the other settings.
BeginQuery string
+ // CommitQuery is the SQL query that will be executed to commit the transaction.
+ CommitQuery string
}
var emptyTxOptions TxOptions
@@ -105,7 +107,10 @@ func (c *Conn) BeginTx(ctx context.Context, txOptions TxOptions) (Tx, error) {
return nil, err
}
- return &dbTx{conn: c}, nil
+ return &dbTx{
+ conn: c,
+ commitQuery: txOptions.CommitQuery,
+ }, nil
}
// Tx represents a database transaction.
@@ -154,6 +159,7 @@ type dbTx struct {
conn *Conn
savepointNum int64
closed bool
+ commitQuery string
}
// Begin starts a pseudo nested transaction implemented with a savepoint.
@@ -177,7 +183,12 @@ func (tx *dbTx) Commit(ctx context.Context) error {
return ErrTxClosed
}
- commandTag, err := tx.conn.Exec(ctx, "commit")
+ commandSQL := "commit"
+ if tx.commitQuery != "" {
+ commandSQL = tx.commitQuery
+ }
+
+ commandTag, err := tx.conn.Exec(ctx, commandSQL)
tx.closed = true
if err != nil {
if tx.conn.PgConn().TxStatus() != 'I' {