]> git.openstreetmap.org Git - nominatim.git/commitdiff
use place_to_be_deleted when force deleting objects
authorSarah Hoffmann <lonvia@denofr.de>
Tue, 4 Apr 2023 09:09:17 +0000 (11:09 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Tue, 4 Apr 2023 09:09:17 +0000 (11:09 +0200)
lib-sql/functions/utils.sql

index ad262670092760521bfa677ba9a40ac4d1353037..f5be7b61262532d462044ff7657a4bf69ee7ae58 100644 (file)
@@ -429,9 +429,10 @@ BEGIN
   SELECT osm_type, osm_id, class, type FROM placex WHERE place_id = placeid INTO osmtype, osmid, pclass, ptype;
   DELETE FROM import_polygon_delete where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
   DELETE FROM import_polygon_error where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
   SELECT osm_type, osm_id, class, type FROM placex WHERE place_id = placeid INTO osmtype, osmid, pclass, ptype;
   DELETE FROM import_polygon_delete where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
   DELETE FROM import_polygon_error where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
-  -- force delete from place/placex by making it a very small geometry
-  UPDATE place set geometry = ST_SetSRID(ST_Point(0,0), 4326) where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
-  DELETE FROM place where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
+  -- force delete by directly entering it into the to-be-deleted table
+  INSERT INTO place_to_be_deleted (osm_type, osm_id, class, type, deferred)
+         VALUES(osmtype, osmid, pclass, ptype, false);
+  PERFORM flush_deleted_places();
 
   RETURN TRUE;
 END;
 
   RETURN TRUE;
 END;