END IF;
END IF;
END LOOP;
-
- IF address ? 'is_in' THEN
- -- is_in items need splitting
- isin := regexp_split_to_array(address->'is_in', E'[;,]');
- IF array_upper(isin, 1) IS NOT NULL THEN
- FOR i IN 1..array_upper(isin, 1) LOOP
- isin_tokens := array_merge(isin_tokens,
- word_ids_from_name(isin[i]));
-
- -- merge word into address vector
- IF NOT %REVERSE-ONLY% THEN
- nameaddress_vector := array_merge(nameaddress_vector,
- addr_ids_from_name(isin[i]));
- END IF;
- END LOOP;
- END IF;
- END IF;
END IF;
IF NOT %REVERSE-ONLY% THEN
nameaddress_vector := array_merge(nameaddress_vector, isin_tokens);
-- update not necessary for osmline, cause linked_place_id does not exist
NEW.extratags := NEW.extratags - 'linked_place'::TEXT;
+ NEW.address := NEW.address - '_unlisted_place'::TEXT;
IF NEW.linked_place_id is not null THEN
--DEBUG: RAISE WARNING 'place already linked to %', NEW.linked_place_id;
IF NEW.parent_place_id is not null THEN
-- Get the details of the parent road
- SELECT p.country_code, p.postcode FROM placex p
+ SELECT p.country_code, p.postcode, p.name FROM placex p
WHERE p.place_id = NEW.parent_place_id INTO location;
+ IF addr_street is null and addr_place is not null THEN
+ -- Check if the addr:place tag is part of the parent name
+ SELECT count(*) INTO i
+ FROM svals(location.name) AS pname WHERE pname = addr_place;
+ IF i = 0 THEN
+ NEW.address = NEW.address || hstore('_unlisted_place', addr_place);
+ END IF;
+ END IF;
+
NEW.country_code := location.country_code;
--DEBUG: RAISE WARNING 'Got parent details from search name';