+ END LOOP;
+
+
+ -- Note that addr:street links can only be indexed once the street itself is indexed
+ IF NEW.parent_place_id IS NULL AND NEW.street IS NOT NULL THEN
+ address_street_word_ids := get_name_ids(make_standard_name(NEW.street));
+ IF address_street_word_ids IS NOT NULL THEN
+ FOR location IN SELECT * from getNearestNamedRoadFeature(NEW.partition, place_centroid, address_street_word_ids) LOOP
+ NEW.parent_place_id := location.place_id;
+ END LOOP;
+ END IF;
+ END IF;
+
+ IF NEW.parent_place_id IS NULL AND NEW.addr_place IS NOT NULL THEN
+ address_street_word_ids := get_name_ids(make_standard_name(NEW.addr_place));
+ IF address_street_word_ids IS NOT NULL THEN
+ FOR location IN SELECT * from getNearestNamedPlaceFeature(NEW.partition, place_centroid, address_street_word_ids) LOOP
+ NEW.parent_place_id := location.place_id;
+ END LOOP;
+ END IF;
+ END IF;
+
+ IF NEW.parent_place_id IS NULL AND NEW.osm_type = 'N' THEN