From eb3a6aa5095fa4c15608dc9d9aeece3ef42b18a6 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Mon, 2 Jan 2023 17:25:38 +0100 Subject: [PATCH 1/1] 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. --- lib-sql/functions/place_triggers.sql | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 -- 2.45.1