X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/8c3a0efe8b75a06279998e66a932d8a56c483961..61e3a053723a6a1131e234aa8ad1a37f18bbec56:/sql/functions/address_lookup.sql diff --git a/sql/functions/address_lookup.sql b/sql/functions/address_lookup.sql index 7885d0a9..196fb434 100644 --- a/sql/functions/address_lookup.sql +++ b/sql/functions/address_lookup.sql @@ -180,6 +180,7 @@ BEGIN -- Return the record for the base entry. FOR location IN SELECT placex.place_id, osm_type, osm_id, name, + coalesce(extratags->'linked_place', extratags->'place') as place_type, class, type, admin_level, type not in ('postcode', 'postal_code') as isaddress, CASE WHEN rank_address = 0 THEN 100 @@ -198,7 +199,8 @@ BEGIN searchcountrycode := NULL; END IF; countrylocation := ROW(location.place_id, location.osm_type, location.osm_id, - location.name, location.class, location.type, NULL, + location.name, location.class, location.type, + location.place_type, location.admin_level, true, location.isaddress, location.rank_address, location.distance)::addressline; RETURN NEXT countrylocation; @@ -207,8 +209,8 @@ BEGIN FOR location IN SELECT placex.place_id, osm_type, osm_id, name, class, type, - coalesce(extratags->'place', extratags->'linked_place') as place_type, - admin_level, fromarea, isaddress, + 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 FROM place_addressline join placex on (address_place_id = placex.place_id) @@ -272,7 +274,7 @@ BEGIN END IF; IF searchhousenumber IS NOT NULL THEN - location := ROW(in_place_id, null, null, hstore('ref', searchhousenumber), + location := ROW(null, null, null, hstore('ref', searchhousenumber), 'place', 'house_number', null, null, true, true, 28, 0)::addressline; RETURN NEXT location; END IF;