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
+}