From 6e4b7eb96642078f573fc4c05601fb0b44706fab Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 28 Aug 2020 09:49:21 +0200 Subject: [PATCH] do not block deletion of large highway areas Deletion of areas should only e blocked for addressable features. Streets and POIs do not have a large impact on updates. --- sql/functions/place_triggers.sql | 2 +- test/bdd/db/update/simple.feature | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sql/functions/place_triggers.sql b/sql/functions/place_triggers.sql index 71f918c5..b7b51150 100644 --- a/sql/functions/place_triggers.sql +++ b/sql/functions/place_triggers.sql @@ -262,7 +262,7 @@ BEGIN -- deleting large polygons can have a massive effect on the system - require manual intervention to let them through IF st_area(OLD.geometry) > 2 and st_isvalid(OLD.geometry) THEN - SELECT bool_or(not (rank_address = 0 or rank_address > 26)) as ranked FROM placex WHERE osm_type = OLD.osm_type and osm_id = OLD.osm_id and class = OLD.class and type = OLD.type INTO has_rank; + SELECT bool_or(not (rank_address = 0 or rank_address > 25)) as ranked FROM placex WHERE osm_type = OLD.osm_type and osm_id = OLD.osm_id and class = OLD.class and type = OLD.type INTO has_rank; IF has_rank THEN insert into import_polygon_delete (osm_type, osm_id, class, type) values (OLD.osm_type,OLD.osm_id,OLD.class,OLD.type); RETURN NULL; diff --git a/test/bdd/db/update/simple.feature b/test/bdd/db/update/simple.feature index 195d101e..93fb0c00 100644 --- a/test/bdd/db/update/simple.feature +++ b/test/bdd/db/update/simple.feature @@ -31,14 +31,17 @@ Feature: Update of simple objects | osm | class | type | geometry | | W1 | place | house | poly-area:5.0 | | R1 | boundary | national_park | poly-area:5.0 | + | R2 | highway | residential | poly-area:5.0 | When importing Then placex contains | object | rank_address | | R1 | 30 | + | R2 | 26 | | W1 | 30 | - When marking for delete R1,W1 + When marking for delete R1,R2,W1 Then placex has no entry for W1 Then placex has no entry for R1 + Then placex has no entry for R2 Scenario: type mutation Given the places