prevresult := '';
FOR location IN
- SELECT * FROM get_addressdata(for_place_id, housenumber)
+ SELECT name,
+ CASE WHEN place_id = for_place_id THEN 99 ELSE rank_address END as rank_address
+ FROM get_addressdata(for_place_id, housenumber)
WHERE isaddress order by rank_address desc
LOOP
currresult := trim(get_name_by_language(location.name, languagepref));
IF currresult != prevresult AND currresult IS NOT NULL
AND result[(100 - location.rank_address)] IS NULL
THEN
- result[(100 - location.rank_address)] := trim(get_name_by_language(location.name, languagepref));
+ result[(100 - location.rank_address)] := currresult;
prevresult := currresult;
END IF;
END LOOP;
FOR location IN
SELECT placex.place_id, osm_type, osm_id, name, class, type,
- coalesce(extratags->'place', extratags->'linked_place') as place_type,
+ coalesce(extratags->'linked_place', extratags->'place') as place_type,
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