changeset 2943:78affd725ba5

Fix insert statement for dismar ashore The statement missed to handle correctly the case where the intersection is empty.
author Tom Gottfried <tom@intevation.de>
date Thu, 04 Apr 2019 18:46:17 +0200
parents 30c906733154
children 73f537379203 149a8f81f99e
files pkg/imports/dma.go
diffstat 1 files changed, 9 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/imports/dma.go	Thu Apr 04 18:23:49 2019 +0200
+++ b/pkg/imports/dma.go	Thu Apr 04 18:46:17 2019 +0200
@@ -89,15 +89,15 @@
   SELECT users.current_user_area_utm() AS a
 )
 INSERT INTO waterway.distance_marks (geom, catdis)
-SELECT ST_Transform(
-    CASE WHEN pg_has_role('sys_admin', 'MEMBER')
-      THEN new_dma
-      ELSE ST_Intersection((SELECT a FROM resp),
-        ST_Transform(new_dma, (SELECT ST_SRID(a) FROM resp)))
-      END,
-    4326),
-    $3
-  FROM ST_GeomFromWKB($1, $2::integer) AS new_dma (new_dma)
+SELECT ST_Transform(new_dma, 4326), $3
+  FROM (SELECT
+      CASE WHEN pg_has_role('sys_admin', 'MEMBER')
+        THEN dma
+        ELSE ST_Intersection((SELECT a FROM resp),
+          ST_Transform(dma, (SELECT ST_SRID(a) FROM resp)))
+        END AS new_dma
+    FROM ST_GeomFromWKB($1, $2::integer) AS dma (dma)) AS new_dma
+  WHERE NOT ST_IsEmpty(new_dma)
 RETURNING id
 `
 )