diff options
| -rw-r--r-- | src/fiinha.go | 64 | ||||
| -rw-r--r-- | tests/fiinha.go | 16 |
2 files changed, 40 insertions, 40 deletions
diff --git a/src/fiinha.go b/src/fiinha.go index 4461462..fe2fa6a 100644 --- a/src/fiinha.go +++ b/src/fiinha.go @@ -163,6 +163,38 @@ type IQueue interface{ +func tryRollback(tx *sql.Tx, err error) error { + rollbackErr := tx.Rollback() + if rollbackErr != nil { + return fmt.Errorf( + rollbackErrorFmt, + rollbackErr, + err, + ) + } + + return err +} + +func inTx(db *sql.DB, fn func(*sql.Tx) error) error { + tx, err := db.Begin() + if err != nil { + return err + } + + err = fn(tx) + if err != nil { + return tryRollback(tx, err) + } + + err = tx.Commit() + if err != nil { + return tryRollback(tx, err) + } + + return nil +} + func serialized[A any, B any](callback func(...A) B) (func(...A) B, func()) { in := make(chan []A) out := make(chan B) @@ -210,38 +242,6 @@ func execSerialized(query string, db *sql.DB) (func(...any) error, func()) { }) } -func tryRollback(tx *sql.Tx, err error) error { - rollbackErr := tx.Rollback() - if rollbackErr != nil { - return fmt.Errorf( - rollbackErrorFmt, - rollbackErr, - err, - ) - } - - return err -} - -func inTx(db *sql.DB, fn func(*sql.Tx) error) error { - tx, err := db.Begin() - if err != nil { - return err - } - - err = fn(tx) - if err != nil { - return tryRollback(tx, err) - } - - err = tx.Commit() - if err != nil { - return tryRollback(tx, err) - } - - return nil -} - func createTablesSQL(prefix string) queryT { const tmpl_write = ` CREATE TABLE IF NOT EXISTS "%s_payloads" ( diff --git a/tests/fiinha.go b/tests/fiinha.go index a6ae315..7cafd41 100644 --- a/tests/fiinha.go +++ b/tests/fiinha.go @@ -33,14 +33,6 @@ func test_defaultPrefix() { }) } -func test_serialized() { - // FIXME -} - -func test_execSerialized() { - // FIXME -} - func test_tryRollback() { g.TestStart("tryRollback()") @@ -96,6 +88,14 @@ func test_inTx() { }) } +func test_serialized() { + // FIXME +} + +func test_execSerialized() { + // FIXME +} + func test_createTables() { g.TestStart("createTables()") |
