From 6cc6cf950c3c08103e6159a079c85b5a4f1c09fa Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Sun, 26 Apr 2020 00:14:55 +0200 Subject: [PATCH 1/2] ensure that result object name is always first in display_name The display name might be mixed up if the result object has a lower rank_address than its address members. --- sql/functions/address_lookup.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/functions/address_lookup.sql b/sql/functions/address_lookup.sql index 9a4c630c..f8659c70 100644 --- a/sql/functions/address_lookup.sql +++ b/sql/functions/address_lookup.sql @@ -60,7 +60,9 @@ BEGIN 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)); From b8f01f91ca29186aef300d72f4dcf6327454c4e9 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Sun, 26 Apr 2020 00:18:29 +0200 Subject: [PATCH 2/2] simplify display_name computation --- sql/functions/address_lookup.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/functions/address_lookup.sql b/sql/functions/address_lookup.sql index f8659c70..7885d0a9 100644 --- a/sql/functions/address_lookup.sql +++ b/sql/functions/address_lookup.sql @@ -69,7 +69,7 @@ BEGIN 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;