X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/83b4b8d9c1c1051d894560ff0c1b14bd4f4359e5..1c33cb3186a38ceb5cc4de0975ae1956c861f9b5:/lib-sql/functions/address_lookup.sql diff --git a/lib-sql/functions/address_lookup.sql b/lib-sql/functions/address_lookup.sql index 5de348e7..312aa9b2 100644 --- a/lib-sql/functions/address_lookup.sql +++ b/lib-sql/functions/address_lookup.sql @@ -231,7 +231,7 @@ BEGIN 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) @@ -320,9 +320,14 @@ BEGIN location := ROW(null, null, null, hstore('ref', place.postcode), 'place', 'postcode', null, null, false, true, 5, 0)::addressline; RETURN NEXT location; + ELSEIF place.address is not null and place.address ? 'postcode' + and not place.address->'postcode' SIMILAR TO '%(,|;)%' THEN + location := ROW(null, null, null, hstore('ref', place.address->'postcode'), 'place', + 'postcode', null, null, false, true, 5, 0)::addressline; + RETURN NEXT location; END IF; RETURN; END; $$ -LANGUAGE plpgsql STABLE; \ No newline at end of file +LANGUAGE plpgsql STABLE;