Sample
Execute SQL statements within pgx transactions using pgx.Tx.Exec, parse command tag results, prevent execution on closed transactions, recover from errors via savepoints, and handle multi-statement batches
sha256:0f019a9afea9a48bc28e0e368bfa5b84b1692611c0744edee452bddbd308a887
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Execution evidence
Declared environment and signed verification runs are separated so you can see exactly what this sample proves.
Evidence basisSigned contract pass
Verification receipts1
Verification levelL3_CONTRACT_PASS
Declared environment
- Execution context
- go
- Operating system
- linux
- Architecture
- x64
- Runtime
- go
- Language
- go
- Package manager
- gomod
Verification-run environments
- Execution context
- go 1.26
- Operating system
- linux alpine · musl
- Architecture
- x64
- Runtime
- go 1.26
- Language
- go
- Package manager
- gomod
- Execution
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17
Case
- Goal
- Execute SQL statements within pgx transactions using pgx.Tx.Exec, parse command tag results, prevent execution on closed transactions, recover from errors via savepoints, and handle multi-statement batches HOW
- Packages
-
github.com/jackc/pgx/v5 v5.10.0
- Environment
- go
- Created
- 2026-08-17T23:32:54Z
Commonly assumed
tx.Exec returns standard sql.Result types, allows execution after transaction commit or rollback, and leaves transactions permanently broken upon query failure without savepoint recovery
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- pgx.Tx.Exec returns a structured pgconn.CommandTag with RowsAffected and command predicates rather than sql.Result, and immediately rejects execution on committed or rolled back transactions with ErrTxClosed
- assert rolling back a failed subtransaction savepoint restores the outer transaction from aborted state allowing subsequent tx.Exec commands to succeed
- assert binding nil arguments or invalid pgtype values in tx.Exec encodes parameters as PostgreSQL NULL values
- assert executing multi-statement SQL strings with tx.Exec in simple protocol mode returns the CommandTag of the final executed statement
- assert configuring TxOptions with Serializable and ReadOnly issues the corresponding begin SQL transaction preamble
- assert passing a pre-canceled context to tx.Exec immediately returns context.Canceled without executing on the connection
Files
- NOTES.md
- csx.json
- go.mod
- go.sum
- sample_test.go
Download the source artifact (tar.gz)
Origin Seeder
csx-seed
Verification receipts
- go 1.26 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17 · ed25519:d91480838ac982c9