Mercurial > gemma
diff pkg/imports/misc.go @ 2659:00b0a7b2225a
Waterway area import: do not fail if INSERT of one item fails
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 14 Mar 2019 18:09:35 +0100 |
parents | 614c6c766691 |
children | 2b4b9fa9812c |
line wrap: on
line diff
--- a/pkg/imports/misc.go Thu Mar 14 16:59:14 2019 +0100 +++ b/pkg/imports/misc.go Thu Mar 14 18:09:35 2019 +0100 @@ -11,6 +11,8 @@ package imports import ( + "context" + "database/sql" "fmt" "strings" ) @@ -27,3 +29,36 @@ } return b.String() } + +func Savepoint( + tx *sql.Tx, + ctx context.Context, + name string, +) error { + if _, err := tx.ExecContext(ctx, "SAVEPOINT "+name); err != nil { + return err + } + return nil +} + +func RollbackToSavepoint( + tx *sql.Tx, + ctx context.Context, + name string, +) error { + if _, err := tx.ExecContext(ctx, "ROLLBACK TO SAVEPOINT "+name); err != nil { + return err + } + return nil +} + +func ReleaseSavepoint( + tx *sql.Tx, + ctx context.Context, + name string, +) error { + if _, err := tx.ExecContext(ctx, "RELEASE SAVEPOINT "+name); err != nil { + return err + } + return nil +}