reimport boundaries from scratch when type is changed

Fixes #895.
This commit is contained in:
Sarah Hoffmann
2018-02-12 21:19:27 +01:00
parent 3fda792929
commit c3483747eb
2 changed files with 22 additions and 1 deletions

View File

@@ -2200,7 +2200,9 @@ BEGIN
-- To paraphrase, if there isn't an existing item, OR if the admin level has changed -- To paraphrase, if there isn't an existing item, OR if the admin level has changed
IF existingplacex.osm_type IS NULL OR IF existingplacex.osm_type IS NULL OR
(coalesce(existingplacex.admin_level, 15) != coalesce(NEW.admin_level, 15) AND existingplacex.class = 'boundary' AND existingplacex.type = 'administrative') (existingplacex.class = 'boundary' AND
((coalesce(existingplacex.admin_level, 15) != coalesce(NEW.admin_level, 15) AND existingplacex.type = 'administrative') OR
(existingplacex.type != NEW.type)))
THEN THEN
IF existingplacex.osm_type IS NOT NULL THEN IF existingplacex.osm_type IS NOT NULL THEN

View File

@@ -85,3 +85,22 @@ Feature: Update of simple objects
| osm | class | type | name | admin | geometry | | osm | class | type | name | admin | geometry |
| W1 | boundary | administrative | Haha | 5 | 1, 2, 4, 3 | | W1 | boundary | administrative | Haha | 5 | 1, 2, 4, 3 |
Then placex has no entry for W1 Then placex has no entry for W1
#895
Scenario: update rank when boundary is downgraded from admin to historic
Given the grid
| 1 | 2 |
| 3 | 4 |
And the places
| osm | class | type | name | admin | geometry |
| W1 | boundary | administrative | Haha | 5 | (1, 2, 4, 3, 1) |
When importing
Then placex contains
| object | rank_address |
| W1 | 10 |
When updating places
| osm | class | type | name | admin | geometry |
| W1 | boundary | historic | Haha | 5 | (1, 2, 4, 3, 1) |
Then placex contains
| object | rank_address |
| W1 | 0 |