From: Sarah Hoffmann Date: Mon, 2 Jan 2023 16:25:38 +0000 (+0100) Subject: split query that deletes old objects from placex X-Git-Tag: v4.2.2~17 X-Git-Url: https://git.openstreetmap.org/nominatim.git/commitdiff_plain/eb3a6aa5095fa4c15608dc9d9aeece3ef42b18a6?hp=9f7e6da97112565eec3a03b917a34eeec3c3dd7b split query that deletes old objects from placex placex only has partial indexes over OSM types, so the OSM type needs to be hardcoded to ensure these indexes are used. --- diff --git a/lib-sql/functions/place_triggers.sql b/lib-sql/functions/place_triggers.sql index 489ecb35..6a52021b 100644 --- a/lib-sql/functions/place_triggers.sql +++ b/lib-sql/functions/place_triggers.sql @@ -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