From 78526a33b48fc8d6c0211e787acf97335e728b3a Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Wed, 4 Mar 2020 11:35:01 +0100 Subject: [PATCH] Remove linkees from search_name Fixes #722 --- sql/functions/placex_triggers.sql | 3 +++ test/bdd/db/import/search_name.feature | 33 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/sql/functions/placex_triggers.sql b/sql/functions/placex_triggers.sql index 779301c5..d123e362 100644 --- a/sql/functions/placex_triggers.sql +++ b/sql/functions/placex_triggers.sql @@ -723,6 +723,7 @@ BEGIN and ( relation_members[i+1] != 'side_stream' or NEW.name->'name' = name->'name') LOOP UPDATE placex SET linked_place_id = NEW.place_id WHERE place_id = linked_node_id; + DELETE FROM search_name WHERE place_id = linked_node_id; END LOOP; END IF; END LOOP; @@ -864,6 +865,8 @@ BEGIN -- mark the linked place (excludes from search results) UPDATE placex set linked_place_id = NEW.place_id WHERE place_id = location.place_id; + -- ensure that those places are not found anymore + DELETE FROM search_name WHERE place_id = location.place_id; SELECT wikipedia, importance FROM compute_importance(location.extratags, NEW.country_code, diff --git a/test/bdd/db/import/search_name.feature b/test/bdd/db/import/search_name.feature index af31d46a..c4e5bbce 100644 --- a/test/bdd/db/import/search_name.feature +++ b/test/bdd/db/import/search_name.feature @@ -77,3 +77,36 @@ Feature: Creation of search terms | object | nameaddress_vector | | W1 | bonn, new york, smalltown | + Scenario: a linked place does not show up in search name + Given the named places + | osm | class | type | admin | geometry | + | R13 | boundary | administrative | 9 | poly-area:0.01 | + And the named places + | osm | class | type | geometry | + | N2 | place | city | 0.1 0.1 | + And the relations + | id | members | tags+type | + | 13 | N2:label | boundary | + When importing + Then placex contains + | object | linked_place_id | + | N2 | R13 | + And search_name has no entry for N2 + + Scenario: a linked waterway does not show up in search name + Given the scene split-road + And the places + | osm | class | type | name | geometry | + | W1 | waterway | river | Rhein | :w-2 | + | W2 | waterway | river | Rhein | :w-3 | + | R13 | waterway | river | Rhein | :w-1 + :w-2 + :w-3 | + And the relations + | id | members | tags+type | + | 13 | W1,W2:main_stream | waterway | + When importing + Then placex contains + | object | linked_place_id | + | W1 | R13 | + | W2 | R13 | + And search_name has no entry for W1 + And search_name has no entry for W2 -- 2.39.5