Files
backrest/internal/oplog/sqlitestore/sqlutil.go
Gareth George ace719f54b
Some checks failed
Release Please / release-please (push) Waiting to run
Build Snapshot Release / build (push) Has been cancelled
Test / test-nix (push) Has been cancelled
Test / test-win (push) Has been cancelled
chore: misc prerelease fixes
2025-01-09 01:10:44 -08:00

38 lines
776 B
Go

package sqlitestore
import (
"zombiezen.com/go/sqlite"
"zombiezen.com/go/sqlite/sqlitex"
)
// withSqliteTransaction should be used when the function only executes reads
func withSqliteTransaction(conn *sqlite.Conn, f func() error) error {
var err error
endFunc := sqlitex.Transaction(conn)
err = f()
endFunc(&err)
return err
}
func withImmediateSqliteTransaction(conn *sqlite.Conn, f func() error) error {
var err error
endFunc, err := sqlitex.ImmediateTransaction(conn)
if err != nil {
return err
}
err = f()
endFunc(&err)
return err
}
func withExclusiveSqliteTransaction(conn *sqlite.Conn, f func() error) error {
var err error
endFunc, err := sqlitex.ExclusiveTransaction(conn)
if err != nil {
return err
}
err = f()
endFunc(&err)
return err
}