X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/f1cbca788531e9eefe5fbbadd7ac0d218f6aa076..d6f4448ed33298e563c520fc654fe5d445ff7f57:/sql/functions.sql?ds=sidebyside

diff --git a/sql/functions.sql b/sql/functions.sql
index 488d340f..d86f4a9b 100644
--- a/sql/functions.sql
+++ b/sql/functions.sql
@@ -1379,10 +1379,10 @@ BEGIN
     IF NEW.osm_type = 'R' and NEW.class = 'waterway' THEN
         FOR relation IN select * from planet_osm_rels r where r.id = NEW.osm_id
         LOOP
-            FOR i IN relation.way_off+1..relation.rel_off LOOP
-                IF relation.members[2*i] in ('', 'main_stream') THEN
+            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
                   --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 = relation.parts[i] 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
                   LOOP
                     UPDATE placex SET linked_place_id = NEW.place_id WHERE place_id = location.place_id;
                   END LOOP;
