Merge pull request #1960 from lonvia/fix-postcodes-duplicated-by-normalization

Make sure that all postcodes have an entry in the word table
This commit is contained in:
Sarah Hoffmann
2020-09-17 21:23:23 +02:00
committed by GitHub
2 changed files with 21 additions and 1 deletions

View File

@@ -81,7 +81,8 @@ BEGIN
lookup_word := upper(trim(postcode)); lookup_word := upper(trim(postcode));
lookup_token := ' ' || make_standard_name(lookup_word); lookup_token := ' ' || make_standard_name(lookup_word);
SELECT min(word_id) FROM word SELECT min(word_id) FROM word
WHERE word_token = lookup_token and class='place' and type='postcode' WHERE word_token = lookup_token and word = lookup_word
and class='place' and type='postcode'
INTO return_word_id; INTO return_word_id;
IF return_word_id IS NULL THEN IF return_word_id IS NULL THEN
return_word_id := nextval('seq_word'); return_word_id := nextval('seq_word');

View File

@@ -137,3 +137,22 @@ Feature: Import of postcodes
And word contains And word contains
| word | class | type | | word | class | type |
| 01982 | place | postcode | | 01982 | place | postcode |
Scenario: Different postcodes with the same normalization can both be found
Given the places
| osm | class | type | addr+postcode | addr+housenumber | geometry |
| N34 | place | house | EH4 7EA | 111 | country:gb |
| N35 | place | house | E4 7EA | 111 | country:gb |
When importing
Then location_postcode contains exactly
| country | postcode | geometry |
| gb | EH4 7EA | country:gb |
| gb | E4 7EA | country:gb |
When searching for "EH4 7EA"
Then results contain
| type | placename |
| postcode | EH4 7EA |
When searching for "E4 7EA"
Then results contain
| type | placename |
| postcode | E4 7EA |