diff pkg/imports/bn.go @ 3566:4c585b5d4fe8

Introduce hectometer based order for ranges of ISRS location codes
author Tom Gottfried <tom@intevation.de>
date Fri, 31 May 2019 20:06:27 +0200
parents c03224d33e78
children 02951a62e8c6
line wrap: on
line diff
--- a/pkg/imports/bn.go	Fri May 31 17:43:39 2019 +0200
+++ b/pkg/imports/bn.go	Fri May 31 20:06:27 2019 +0200
@@ -46,6 +46,11 @@
 SELECT true FROM waterway.bottlenecks WHERE bottleneck_id = $1`
 
 	insertBottleneckSQL = `
+WITH
+bounds (b) AS (VALUES (isrs_fromText($5)), (isrs_fromText($6))),
+r AS (SELECT isrsrange(
+    (SELECT b FROM bounds ORDER BY b USING <~ FETCH FIRST ROW ONLY),
+    (SELECT b FROM bounds ORDER BY b USING >~ FETCH FIRST ROW ONLY)) AS r)
 INSERT INTO waterway.bottlenecks (
   bottleneck_id,
   gauge_location,
@@ -70,11 +75,9 @@
     tstzrange(NULL, NULL)),
   $3,
   $4,
-  isrsrange(least(isrs_fromText($5), isrs_fromText($6)),
-            greatest(isrs_fromText($5), isrs_fromText($6))),
+  (SELECT r FROM r),
   ISRSrange_area(
-    ISRSrange_axis(isrsrange(least(isrs_fromText($5), isrs_fromText($6)),
-                             greatest(isrs_fromText($5), isrs_fromText($6))),
+    ISRSrange_axis((SELECT r FROM r),
                    $14),
     (SELECT ST_Collect(CAST(area AS geometry))
         FROM waterway.waterway_area)),