From b82c8ceab9d714bcf15894fe7c785ca94afe4736 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Sat, 18 Apr 2015 17:47:49 +0200 Subject: [PATCH] ignore places without housenumber in interpolations fixes trac ticket 5311 --- sql/functions.sql | 2 +- tests/features/db/import/interpolation.feature | 17 +++++++++++++++++ tests/steps/db_setup.py | 3 +++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/sql/functions.sql b/sql/functions.sql index e404da7c..658771b7 100644 --- a/sql/functions.sql +++ b/sql/functions.sql @@ -689,7 +689,7 @@ BEGIN -- one with the smallest id because the original node was created first. -- Ignore all nodes marked for deletion. (Might happen when the type changes.) select * from placex where osm_type = 'N' and osm_id = waynodes[nodeidpos]::BIGINT - and indexed_status < 100 + and indexed_status < 100 and housenumber is not NULL order by (type = 'address'),place_id limit 1 INTO nextnode; IF nextnode.place_id IS NOT NULL THEN diff --git a/tests/features/db/import/interpolation.feature b/tests/features/db/import/interpolation.feature index 8fb3e606..195cbfdf 100644 --- a/tests/features/db/import/interpolation.feature +++ b/tests/features/db/import/interpolation.feature @@ -422,3 +422,20 @@ Feature: Import of address interpolations | 4 | 144.963016723312,-37.7629464422819+-0.000005 | 8 | 144.9631440856,-37.762223694978+-0.000005 + Scenario: Place with missing address information + Given the place nodes + | osm_id | class | type | housenumber | geometry + | 1 | place | house | 23 | 0.0001 0.0001 + | 2 | amenity | school | | 0.0001 0.0002 + | 3 | place | house | 29 | 0.0001 0.0004 + And the place ways + | osm_id | class | type | housenumber | geometry + | 1 | place | houses | odd | 0.0001 0.0001,0.0001 0.0002,0.0001 0.0004 + And the ways + | id | nodes + | 1 | 1,2,3 + When importing + Then way 1 expands to housenumbers + | housenumber | centroid + | 25 | 0.0001,0.0002 + | 27 | 0.0001,0.0003 diff --git a/tests/steps/db_setup.py b/tests/steps/db_setup.py index 14f17756..e1315ed9 100644 --- a/tests/steps/db_setup.py +++ b/tests/steps/db_setup.py @@ -95,6 +95,9 @@ def _format_placex_cols(cols, geomtype, force_name): else: coords = "'%s'::geometry" % coords.wkt cols['geometry'] = coords + for k in cols: + if not cols[k]: + cols[k] = None def _insert_place_table_nodes(places, force_name): -- 2.39.5