]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge remote-tracking branch 'upstream/master'
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 25 Feb 2022 08:47:20 +0000 (09:47 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 25 Feb 2022 08:47:20 +0000 (09:47 +0100)
1  2 
lib-sql/functions/address_lookup.sql

index e144e9fd15f5c0b960aa3ae478f558a8fcb01e2e,f18970baec1f199589ee32695c26dcd4278ea4c3..3e25c6fc0df6a622034c0525989df595e2616ffb
@@@ -108,6 -108,7 +108,7 @@@ CREATE OR REPLACE FUNCTION get_addressd
  DECLARE
    place addressdata_place;
    location RECORD;
+   country RECORD;
    current_rank_address INTEGER;
    location_isaddress BOOLEAN;
  BEGIN
        WHERE place_id = place.place_id
    LOOP
  --RAISE WARNING '%',location;
+     -- mix in default names for countries
+     IF location.rank_address = 4 and place.country_code is not NULL THEN
+       FOR country IN
+         SELECT coalesce(name, ''::hstore) as name FROM country_name
+           WHERE country_code = place.country_code LIMIT 1
+       LOOP
+         place.name := country.name || place.name;
+       END LOOP;
+     END IF;
      IF location.rank_address < 4 THEN
        -- no country locations for ranks higher than country
        place.country_code := NULL::varchar(2);
    FOR location IN
      SELECT placex.place_id, osm_type, osm_id, name, class, type,
             coalesce(extratags->'linked_place', extratags->'place') as place_type,
 -           admin_level, fromarea, isaddress,
 +           admin_level, fromarea, isaddress and linked_place_id is NULL as isaddress,
             CASE WHEN rank_address = 11 THEN 5 ELSE rank_address END as rank_address,
             distance, country_code, postcode
        FROM place_addressline join placex on (address_place_id = placex.place_id)
    -- If no country was included yet, add the name information from country_name.
    IF current_rank_address > 4 THEN
      FOR location IN
-       SELECT name FROM country_name WHERE country_code = place.country_code LIMIT 1
+       SELECT name || coalesce(derived_name, ''::hstore) as name FROM country_name
+         WHERE country_code = place.country_code LIMIT 1
      LOOP
  --RAISE WARNING '% % %',current_rank_address,searchcountrycode,countryname;
        RETURN NEXT ROW(null, null, null, location.name, 'place', 'country', NULL,