]> git.openstreetmap.org Git - nominatim.git/commitdiff
make sure invalid geometries are always deleted from place
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 29 Jun 2012 20:11:40 +0000 (22:11 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 29 Jun 2012 20:11:40 +0000 (22:11 +0200)
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

index 20e97c1c87ec167fa3ce41da9595480ff964c3dd..03ea4011ddeec55f7ba388b43e40e6a75dc67125 100644 (file)
@@ -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 onhe 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;