aboutsummaryrefslogtreecommitdiff
path: root/src/fiinha.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/fiinha.go')
-rw-r--r--src/fiinha.go64
1 files changed, 32 insertions, 32 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" (