X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/18f525ac5409ca951c999656015bc110956aa317..487e81fe3c6297fc6ad28183dbc5cc312ed3699a:/lib-sql/functions/placex_triggers.sql diff --git a/lib-sql/functions/placex_triggers.sql b/lib-sql/functions/placex_triggers.sql index 70071b2f..bb34883a 100644 --- a/lib-sql/functions/placex_triggers.sql +++ b/lib-sql/functions/placex_triggers.sql @@ -916,7 +916,8 @@ BEGIN LATERAL compute_place_rank(country_code, 'A', class, type, admin_level, False, null) prank WHERE osm_type = 'R' - and prank.address_rank = NEW.rank_address + and ((class = 'place' and prank.address_rank = NEW.rank_address) + or (class = 'boundary' and rank_address = NEW.rank_address)) and geometry && NEW.centroid and _ST_Covers(geometry, NEW.centroid) LIMIT 1 LOOP @@ -1101,6 +1102,15 @@ BEGIN END IF; END IF; + {% if not disable_diff_updates %} + IF OLD.rank_address != NEW.rank_address THEN + -- After a rank shift all addresses containing us must be updated. + UPDATE placex p SET indexed_status = 2 FROM place_addressline pa + WHERE pa.address_place_id = NEW.place_id and p.place_id = pa.place_id + and p.indexed_status = 0 and p.rank_address between 4 and 25; + END IF; + {% endif %} + IF NEW.admin_level = 2 AND NEW.class = 'boundary' AND NEW.type = 'administrative' AND NEW.country_code IS NOT NULL AND NEW.osm_type = 'R'