Mercurial > gemma
diff pkg/imports/dma.go @ 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 | a5642ee4c6d0 |
children | 4acbee65275d |
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 ` )