Remove linkees from search_name

Fixes #722
This commit is contained in:
Sarah Hoffmann 2020-03-04 11:35:01 +01:00
parent ab997b7fb1
commit 78526a33b4
2 changed files with 36 additions and 0 deletions

View File

@ -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,

View File

@ -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