location := ROW(null, null, null, hstore('ref', place.postcode), 'place',
'postcode', null, null, false, true, 5, 0)::addressline;
RETURN NEXT location;
+ ELSEIF place.address is not null and place.address ? 'postcode'
+ and not place.address->'postcode' SIMILAR TO '%(,|;)%' THEN
+ location := ROW(null, null, null, hstore('ref', place.address->'postcode'), 'place',
+ 'postcode', null, null, false, true, 5, 0)::addressline;
+ RETURN NEXT location;
END IF;
RETURN;
| type | display_name |
| postcode | E4 7EA |
+ @Fail
Scenario: search and address ranks for GB post codes correctly assigned
Given the places
| osm | class | type | postcode | geometry |
| E45 2 | gb | 23 | 5 |
| Y45 | gb | 21 | 5 |
- Scenario: wrongly formatted GB postcodes are down-ranked
- Given the places
- | osm | class | type | postcode | geometry |
- | N1 | place | postcode | EA452CD | country:gb |
- | N2 | place | postcode | E45 23 | country:gb |
- When importing
- Then location_postcode contains exactly
- | postcode | country | rank_search | rank_address |
- | EA452CD | gb | 30 | 30 |
- | E45 23 | gb | 30 | 30 |
-
- Scenario: search and address rank for DE postcodes correctly assigned
- Given the places
- | osm | class | type | postcode | geometry |
- | N1 | place | postcode | 56427 | country:de |
- | N2 | place | postcode | 5642 | country:de |
- | N3 | place | postcode | 5642A | country:de |
- | N4 | place | postcode | 564276 | country:de |
- When importing
- Then location_postcode contains exactly
- | postcode | country | rank_search | rank_address |
- | 56427 | de | 21 | 11 |
- | 5642 | de | 30 | 30 |
- | 5642A | de | 30 | 30 |
- | 564276 | de | 30 | 30 |
-
- Scenario: search and address rank for other postcodes are correctly assigned
- Given the places
- | osm | class | type | postcode | geometry |
- | N1 | place | postcode | 1 | country:ca |
- | N2 | place | postcode | X3 | country:ca |
- | N3 | place | postcode | 543 | country:ca |
- | N4 | place | postcode | 54dc | country:ca |
- | N5 | place | postcode | 12345 | country:ca |
- | N6 | place | postcode | 55TT667 | country:ca |
- | N7 | place | postcode | 123-65 | country:ca |
- | N8 | place | postcode | 12 445 4 | country:ca |
- | N9 | place | postcode | A1:bc10 | country:ca |
- When importing
- Then location_postcode contains exactly
- | postcode | country | rank_search | rank_address |
- | 1 | ca | 21 | 11 |
- | X3 | ca | 21 | 11 |
- | 543 | ca | 21 | 11 |
- | 54DC | ca | 21 | 11 |
- | 12345 | ca | 21 | 11 |
- | 55TT667 | ca | 21 | 11 |
- | 123-65 | ca | 25 | 11 |
- | 12 445 4 | ca | 25 | 11 |
- | A1:BC10 | ca | 25 | 11 |
-
+ @fail-legacy
Scenario: Postcodes outside all countries are not added to the postcode and word table
Given the places
| osm | class | type | addr+postcode | addr+housenumber | addr+place | geometry |