From: Sarah Hoffmann Date: Mon, 21 Jul 2014 21:11:28 +0000 (+0200) Subject: consider side_streams as part of waterways if they have the same name X-Git-Tag: v2.3.0~20 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/8a4bd7fa4c6c4b9a74e4b0c1e41518110404981f?hp=2643225b72fe2d32ced5191511a059e88badac79 consider side_streams as part of waterways if they have the same name fixes #155 --- diff --git a/sql/functions.sql b/sql/functions.sql index 5c4cea05..c2359a3c 100644 --- a/sql/functions.sql +++ b/sql/functions.sql @@ -1375,9 +1375,12 @@ BEGIN FOR relation IN select * from planet_osm_rels r where r.id = NEW.osm_id and r.parts != array[]::bigint[] LOOP FOR i IN 1..array_upper(relation.members, 1) BY 2 LOOP - IF relation.members[i+1] in ('', 'main_stream') AND substring(relation.members[i],1,1) = 'w' THEN + IF relation.members[i+1] in ('', 'main_stream', 'side_stream') AND substring(relation.members[i],1,1) = 'w' THEN --DEBUG: RAISE WARNING 'waterway parent %, child %/%', NEW.osm_id, i, relation.parts[i]; - FOR location IN SELECT * FROM placex WHERE osm_type = 'W' and osm_id = substring(relation.members[i],2,200)::bigint and class = NEW.class and type = NEW.type + FOR location IN SELECT * FROM placex + WHERE osm_type = 'W' and osm_id = substring(relation.members[i],2,200)::bigint + and class = NEW.class and type = NEW.type + and ( relation.members[i+1] != 'side_stream' or NEW.name->'name' = name->'name') LOOP UPDATE placex SET linked_place_id = NEW.place_id WHERE place_id = location.place_id; END LOOP;