From 8ff0aabaf3e82e6bc99894e22d312ccc4b76529f Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 29 Jun 2012 22:11:40 +0200 Subject: [PATCH] make sure invalid geometries are always deleted from place This solves a bug with updating large invalid geometries. These geometries have an entry in place but not in placex. Thus, place_insert tries to delete the place entry and reinsert it on update. Deletion would fail because self-intersecting polygons still have an area and large areas are not deleted. --- sql/functions.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/functions.sql b/sql/functions.sql index 20e97c1c..03ea4011 100644 --- a/sql/functions.sql +++ b/sql/functions.sql @@ -1806,8 +1806,8 @@ BEGIN --DEBUG: RAISE WARNING 'delete: % % % %',OLD.osm_type,OLD.osm_id,OLD.class,OLD.type; - -- deleting large polygons can have a massive effect ont he system - require manual intervention to let them through - IF st_area(OLD.geometry) > 2 THEN + -- 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 insert into import_polygon_delete values (OLD.osm_type,OLD.osm_id,OLD.class,OLD.type); RETURN NULL; END IF; -- 2.39.5