CREATE OR REPLACE FUNCTION token_matches_street(info JSONB, street_tokens INTEGER[])
RETURNS BOOLEAN
AS $$
- SELECT (info->>'street')::INTEGER[] <@ street_tokens
+ SELECT (info->>'street')::INTEGER[] && street_tokens
$$ LANGUAGE SQL IMMUTABLE STRICT;
| N3 | W2 |
| N4 | W1 |
+ @fail-legacy
+ Scenario: addr:street tag parents to appropriately named street, locale names
+ Given the scene roads-with-pois
+ And the places
+ | osm | class | type | street| addr+street:de | geometry |
+ | N1 | place | house | south | Süd | :p-N1 |
+ | N2 | place | house | north | Nord | :p-N2 |
+ | N3 | place | house | south | Süd | :p-S1 |
+ | N4 | place | house | north | Nord | :p-S2 |
+ And the places
+ | osm | class | type | name | geometry |
+ | W1 | highway | residential | Nord | :w-north |
+ | W2 | highway | residential | Süd | :w-south |
+ And the places
+ | osm | class | type | name | name+name:old |
+ | N5 | place | hamlet | south | north |
+ When importing
+ Then placex contains
+ | object | parent_place_id |
+ | N1 | W2 |
+ | N2 | W1 |
+ | N3 | W2 |
+ | N4 | W1 |
+
Scenario: addr:street tag parents to next named street
Given the scene roads-with-pois
And the places
def after_scenario(context, scenario):
if 'DB' in context.tags:
context.nominatim.teardown_db(context)
+
+
+def before_tag(context, tag):
+ if tag == 'fail-legacy':
+ if context.config.userdata['TOKENIZER'] in (None, 'legacy'):
+ context.scenario.skip("Not implemented in legacy tokenizer")