]> git.openstreetmap.org Git - nominatim.git/commitdiff
add testcase for #2551
authorSarah Hoffmann <lonvia@denofr.de>
Sun, 5 Jun 2022 19:39:17 +0000 (21:39 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sun, 5 Jun 2022 19:39:17 +0000 (21:39 +0200)
This test proves that places that are linked need to be reindexed.

lib-sql/functions/placex_triggers.sql
test/bdd/db/update/linked_places.feature

index 37b57b6467ac01f17bf4014b161cec5490cd4831..50467cf53fa5a21de088e29d7ab121897b9d0bdf 100644 (file)
@@ -1036,7 +1036,9 @@ BEGIN
                      || coalesce(NEW.extratags, ''::hstore);
 
     -- mark the linked place (excludes from search results)
-    UPDATE placex set linked_place_id = NEW.place_id
+    -- Force reindexing to remove any traces from the search indexes and
+    -- reset the address rank if necessary.
+    UPDATE placex set linked_place_id = NEW.place_id, indexed_status = 2
       WHERE place_id = location.place_id;
     -- ensure that those places are not found anymore
     {% if 'search_name' in db.tables %}
index 3dedc46868e942ded66709d13a4be67347bd0a5c..8bc9585f6033bccc11135bd32cf08be4ee3c6c15 100644 (file)
@@ -238,3 +238,29 @@ Feature: Updates of linked places
         Then placex contains
             | object | extratags |
             | R1     | 'linked_place' : 'town' |
+
+
+    Scenario: Keep linking and ranks when place type changes
+        Given the grid
+            | 1 |   |   | 2 |
+            |   |   | 9 |   |
+            | 4 |   |   | 3 |
+        And the places
+            | osm | class    | type           | name | admin | geometry    |
+            | R1  | boundary | administrative | foo  | 8     | (1,2,3,4,1) |
+        And the places
+            | osm | class | type | name | geometry |
+            | N1  | place | city | foo  | 9        |
+        When importing
+        Then placex contains
+            | object | linked_place_id | rank_address |
+            | N1     | R1              | 16           |
+            | R1     | -               | 16           |
+
+        When updating places
+            | osm | class | type | name | geometry |
+            | N1  | place | town | foo  | 9        |
+        Then placex contains
+            | object | linked_place_id | rank_address |
+            | N1     | R1              | 16           |
+            | R1     | -               | 16           |