X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/ce17b0eecaa7add29e4eb04e06b2580daa656bf2..bd8025feab473e770f593c1ccbb65443566c3cdc:/lib-sql/functions/placex_triggers.sql diff --git a/lib-sql/functions/placex_triggers.sql b/lib-sql/functions/placex_triggers.sql index 58e5f2a8..530bf541 100644 --- a/lib-sql/functions/placex_triggers.sql +++ b/lib-sql/functions/placex_triggers.sql @@ -2,7 +2,7 @@ -- -- This file is part of Nominatim. (https://nominatim.org) -- --- Copyright (C) 2022 by the Nominatim developer community. +-- Copyright (C) 2024 by the Nominatim developer community. -- For a full list of authors see the git log. -- Trigger functions for the placex table. @@ -794,6 +794,9 @@ BEGIN result := deleteLocationArea(NEW.partition, NEW.place_id, NEW.rank_search); NEW.extratags := NEW.extratags - 'linked_place'::TEXT; + IF NEW.extratags = ''::hstore THEN + NEW.extratags := NULL; + END IF; -- NEW.linked_place_id contains the precomputed linkee. Save this and restore -- the previous link status. @@ -1241,7 +1244,9 @@ BEGIN OR ST_GeometryType(NEW.geometry) not in ('ST_LineString','ST_MultiLineString') OR ST_Length(NEW.geometry) < 0.02) THEN - NEW.postcode := get_nearest_postcode(NEW.country_code, NEW.geometry); + NEW.postcode := get_nearest_postcode(NEW.country_code, + CASE WHEN NEW.rank_address > 25 + THEN NEW.centroid ELSE NEW.geometry END); END IF; {% if debug %}RAISE WARNING 'place update % % finished.', NEW.osm_type, NEW.osm_id;{% endif %}