changeset 3286:e640f51b5a4e

Fix reporting of removed reference water levels Since more than one reference water level might be removed, do not discard all but the first returned row.
author Tom Gottfried <tom@intevation.de>
date Thu, 16 May 2019 11:53:44 +0200
parents aac1ca73e92a
children 80ed54cd4210
files pkg/imports/wg.go
diffstat 1 files changed, 12 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/imports/wg.go	Thu May 16 11:28:44 2019 +0200
+++ b/pkg/imports/wg.go	Thu May 16 11:53:44 2019 +0200
@@ -330,23 +330,25 @@
 			string(*dr.Reflevel2code),
 			string(*dr.Reflevel3code),
 		})
-		var delRef string
-		err = tx.StmtContext(
-			ctx, deleteReferenceWaterLevelsStmt).QueryRowContext(ctx,
+		rwls, err := tx.StmtContext(
+			ctx, deleteReferenceWaterLevelsStmt).QueryContext(ctx,
 			ic.code.CountryCode,
 			ic.code.LoCode,
 			ic.code.FairwaySection,
 			ic.code.Orc,
 			ic.code.Hectometre,
 			&currLevels,
-		).Scan(&delRef)
-		switch {
-		case err == sql.ErrNoRows:
-			// There was nothing to delete
-		case err != nil:
+		)
+		if err != nil {
 			return nil, err
-		default:
-			feedback.Info("Removed reference water level %s from %s",
+		}
+		defer rwls.Close()
+		for rwls.Next() {
+			var delRef string
+			if err = rwls.Scan(&delRef); err != nil {
+				return nil, err
+			}
+			feedback.Warn("Removed reference water level %s from %s",
 				delRef, ic.code)
 		}