X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/a46348da3833cd6a6fe07a982a83a5bdac13f10f..7b0e0dfd883b268b58a721e2967303fa368e563f:/lib-sql/functions/place_triggers.sql?ds=inline diff --git a/lib-sql/functions/place_triggers.sql b/lib-sql/functions/place_triggers.sql index 489ecb35..3def6596 100644 --- a/lib-sql/functions/place_triggers.sql +++ b/lib-sql/functions/place_triggers.sql @@ -37,7 +37,7 @@ BEGIN -- Remove the place from the list of places to be deleted DELETE FROM place_to_be_deleted pdel WHERE pdel.osm_type = NEW.osm_type and pdel.osm_id = NEW.osm_id - and pdel.class = NEW.class; + and pdel.class = NEW.class and pdel.type = NEW.type; -- Have we already done this place? SELECT * INTO existing @@ -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