X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/457982e1d2f4de0b4c387c2c3ac7f96488e9eca6..e7b4fc70e786d6914ffad2bc424535b40c1db675:/lib-sql/functions/place_triggers.sql diff --git a/lib-sql/functions/place_triggers.sql b/lib-sql/functions/place_triggers.sql index 15389215..014c8cd7 100644 --- a/lib-sql/functions/place_triggers.sql +++ b/lib-sql/functions/place_triggers.sql @@ -92,6 +92,13 @@ BEGIN -- Get the existing place_id select * from placex where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type INTO existingplacex; + -- Handle a place changing type by removing the old data + -- My generated 'place' types are causing havok because they overlap with real keys + -- TODO: move them to their own special purpose key/class to avoid collisions + IF existing.osm_type IS NULL THEN + DELETE FROM place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class; + END IF; + -- Pure postcodes are never queried from placex so we don't add them. -- location_postcodes is filled from the place table directly. IF NEW.class = 'place' AND NEW.type = 'postcode' THEN @@ -113,13 +120,6 @@ BEGIN RETURN NEW; END IF; - -- Handle a place changing type by removing the old data - -- My generated 'place' types are causing havok because they overlap with real keys - -- TODO: move them to their own special purpose key/class to avoid collisions - IF existing.osm_type IS NULL THEN - DELETE FROM place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class; - END IF; - {% if debug %}RAISE WARNING 'Existing: %',existing.osm_id;{% endif %} {% if debug %}RAISE WARNING 'Existing PlaceX: %',existingplacex.place_id;{% endif %}