Files
dbx/tx.go
T
end 8d697eda5b feat: add delete, context, and tx helpers
Add Delete/DeleteAffected, context-aware CRUD helpers, WithTx, ContainsCol,
and queryReturning deduplication for returning statements.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 17:49:57 -07:00

27 lines
481 B
Go

package dbx
import (
"context"
"database/sql"
)
// WithTx begins a transaction on db, runs fn, and commits on success.
// The transaction is rolled back if fn returns an error or commit fails.
func WithTx(ctx context.Context, db QueryExecTx, fn func(tx *sql.Tx) error) error {
if err := ctx.Err(); err != nil {
return err
}
tx, err := db.Begin()
if err != nil {
return err
}
if err := fn(tx); err != nil {
_ = tx.Rollback()
return err
}
return tx.Commit()
}