]> git.openstreetmap.org Git - nominatim.git/commitdiff
consider side_streams as part of waterways if they have the same name
authorSarah Hoffmann <lonvia@denofr.de>
Mon, 21 Jul 2014 21:11:28 +0000 (23:11 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Mon, 21 Jul 2014 21:11:28 +0000 (23:11 +0200)
fixes #155

sql/functions.sql

index 5c4cea053a6f05787e0f3d8da86fbf88dbabc354..c2359a3c931d119b356c0a719f70c0e7116515b2 100644 (file)
@@ -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;