X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/36cf0eb922d4c03e73a3a3a5505e46d5cee061b9..f59a072aa6805bfce9ca4cc097c550af0f64879e:/lib-sql/functions/place_triggers.sql diff --git a/lib-sql/functions/place_triggers.sql b/lib-sql/functions/place_triggers.sql index ca6ba690..6a52021b 100644 --- a/lib-sql/functions/place_triggers.sql +++ b/lib-sql/functions/place_triggers.sql @@ -194,7 +194,7 @@ BEGIN -- Mark any existing place for delete in the placex table UPDATE placex SET indexed_status = 100 WHERE placex.osm_type = NEW.osm_type and placex.osm_id = NEW.osm_id - and placex.class = 'boundary' and placex.type = 'administrative'; + and placex.class = NEW.class and placex.type = NEW.type; END IF; -- Process it as a new insertion @@ -384,7 +384,19 @@ BEGIN -- Mark for delete in the placex table UPDATE placex SET indexed_status = 100 FROM place_to_be_deleted - WHERE placex.osm_type = place_to_be_deleted.osm_type + WHERE placex.osm_type = 'N' and place_to_be_deleted.osm_type = 'N' + and placex.osm_id = place_to_be_deleted.osm_id + and placex.class = place_to_be_deleted.class + and placex.type = place_to_be_deleted.type + and not deferred; + UPDATE placex SET indexed_status = 100 FROM place_to_be_deleted + WHERE placex.osm_type = 'W' and place_to_be_deleted.osm_type = 'W' + and placex.osm_id = place_to_be_deleted.osm_id + and placex.class = place_to_be_deleted.class + and placex.type = place_to_be_deleted.type + and not deferred; + UPDATE placex SET indexed_status = 100 FROM place_to_be_deleted + WHERE placex.osm_type = 'R' and place_to_be_deleted.osm_type = 'R' and placex.osm_id = place_to_be_deleted.osm_id and placex.class = place_to_be_deleted.class and placex.type = place_to_be_deleted.type