distribution/vendor/github.com/go-llsqlite/adapter/sqlitex/sqlitex.go

22 lines
409 B
Go

package sqlitex
import (
"errors"
"fmt"
sqlite "github.com/go-llsqlite/adapter"
)
func WithTransactionRollbackOnError(conn *sqlite.Conn, level string, inside func() error) (err error) {
err = Exec(conn, fmt.Sprintf("begin %v", level), nil)
if err != nil {
return
}
err = inside()
query := "rollback"
if err == nil {
query = "commit"
}
err = errors.Join(err, Exec(conn, query, nil))
return
}