changeset 4678:e1cf039ea25a

Section deletion: return error if nothing deleted If nothing is deleted on acceptance of such an import, it's probably because row level security does not allow deletion of the entry.
author Tom Gottfried <tom@intevation.de>
date Tue, 15 Oct 2019 17:25:23 +0200
parents fa55e48bbca1
children 6c1dd2fbe2ee
files pkg/imports/dsec.go
diffstat 1 files changed, 16 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/imports/dsec.go	Tue Oct 15 17:16:36 2019 +0200
+++ b/pkg/imports/dsec.go	Tue Oct 15 17:25:23 2019 +0200
@@ -16,7 +16,9 @@
 import (
 	"context"
 	"database/sql"
+	"errors"
 	"fmt"
+	"log"
 )
 
 // DeleteSection is a Job to delete a section from the database.
@@ -65,7 +67,20 @@
 	tx *sql.Tx,
 	id int64,
 ) error {
-	_, err := tx.ExecContext(ctx, dsecStageDoneSQL, id)
+	res, err := tx.ExecContext(ctx, dsecStageDoneSQL, id)
+	if err != nil {
+		return err
+	}
+	n, err := res.RowsAffected()
+	if err != nil {
+		log.Println(
+			"error: RowsAffected returned an error. Missing driver support?")
+		return nil
+	}
+	if n == 0 {
+		return errors.New(
+			"Nothing deleted. Probably due to missing access rights.")
+	}
 	return err
 }