forked from hans/Nominatim
stop treating capital cities as villages, memory leak on deadlock
This commit is contained in:
@@ -1477,9 +1477,12 @@ BEGIN
|
||||
-- try using the isin value to find parent places
|
||||
IF array_upper(isin_tokens, 1) IS NOT NULL THEN
|
||||
FOR i IN 1..array_upper(isin_tokens, 1) LOOP
|
||||
--RAISE WARNING ' ISIN: % % % %',NEW.partition, place_centroid, search_maxrank, isin_tokens[i];
|
||||
--RAISE WARNING ' getNearestNamedFeature: % % % %',NEW.partition, place_centroid, search_maxrank, isin_tokens[i];
|
||||
|
||||
FOR location IN SELECT * from getNearestNamedFeature(NEW.partition, place_centroid, search_maxrank, isin_tokens[i]) LOOP
|
||||
|
||||
--RAISE WARNING ' ISIN: %',location;
|
||||
|
||||
nameaddress_vector := array_merge(nameaddress_vector, location.keywords::integer[]);
|
||||
INSERT INTO place_addressline VALUES (NEW.place_id, location.place_id, false, NOT address_havelevel[location.rank_address], location.distance, location.rank_address);
|
||||
address_havelevel[location.rank_address] := true;
|
||||
|
||||
@@ -61,7 +61,13 @@ BEGIN
|
||||
UNION ALL
|
||||
SELECT * FROM location_area_country WHERE ST_Contains(geometry, point) and rank_search < maxrank
|
||||
) as location_area
|
||||
ORDER BY rank_address desc, isin_tokens && keywords desc, isguess asc, ST_Distance(point, centroid) * CASE WHEN rank_address = 16 AND rank_search = 16 THEN 0.25 WHEN rank_address = 16 AND rank_search = 17 THEN 0.5 ELSE 1 END ASC
|
||||
ORDER BY rank_address desc, isin_tokens && keywords desc, isguess asc,
|
||||
ST_Distance(point, centroid) *
|
||||
CASE
|
||||
WHEN rank_address = 16 AND rank_search = 15 THEN 0.2 -- capital city
|
||||
WHEN rank_address = 16 AND rank_search = 16 THEN 0.25 -- city
|
||||
WHEN rank_address = 16 AND rank_search = 17 THEN 0.5 -- town
|
||||
ELSE 1 END ASC -- everything else
|
||||
LOOP
|
||||
RETURN NEXT r;
|
||||
END LOOP;
|
||||
|
||||
Reference in New Issue
Block a user