diff pkg/imports/wg.go @ 3529:ba0339118d9c

Improve validation of gauge temporal validity The current version of a gauge should always have a validity represented by a non-empty time range. Thus, do not accept empty time ranges on input. Nevertheless, continue to accept storing empty time ranges (no CHECK constraint), because a new version with equal start date but longer validity might still cause the previous version to get an empty time range. In passing, add a missing NOT NULL constraint: if both start and end date are omitted, the range will be unbounded, but it should never be NULL.
author Tom Gottfried <tom@intevation.de>
date Wed, 29 May 2019 16:43:26 +0200
parents 50d40ed6e3da
children a5448426e4e2
line wrap: on
line diff
--- a/pkg/imports/wg.go	Wed May 29 16:00:28 2019 +0200
+++ b/pkg/imports/wg.go	Wed May 29 16:43:26 2019 +0200
@@ -235,10 +235,10 @@
 			gauges = append(gauges, isrs)
 			feedback.Info("Processing %s", code)
 
-			// We need a valid time range to identify gauge versions in DB
+			// We need a valid, non-empty time range to identify gauge versions
 			if dr.Enddate != nil && dr.Startdate != nil &&
-				time.Time(*dr.Enddate).Before(time.Time(*dr.Startdate)) {
-				feedback.Warn("End date before start date")
+				!time.Time(*dr.Enddate).After(time.Time(*dr.Startdate)) {
+				feedback.Warn("End date not after start date")
 				unchanged++
 				continue
 			}