From: Sarah Hoffmann Date: Wed, 2 Dec 2020 21:18:27 +0000 (+0100) Subject: avoid contains operator for geometries X-Git-Tag: v3.6.0~9^2 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/e20defeebd988ff4db62b75e3036b332da78e795 avoid contains operator for geometries Postgis keeps messing up use of index in some circumstances. --- diff --git a/sql/functions/placex_triggers.sql b/sql/functions/placex_triggers.sql index ea9474e4..87f15e8c 100644 --- a/sql/functions/placex_triggers.sql +++ b/sql/functions/placex_triggers.sql @@ -97,7 +97,7 @@ BEGIN -- Instead simply use the containing area with the largest rank. FOR location IN SELECT place_id FROM placex - WHERE bbox @ geometry AND _ST_Covers(geometry, ST_Centroid(bbox)) + WHERE bbox && geometry AND _ST_Covers(geometry, ST_Centroid(bbox)) AND rank_address between 5 and 25 ORDER BY rank_address desc LOOP @@ -112,7 +112,7 @@ BEGIN -- contains the bbox, only use addressable features FOR location IN SELECT place_id FROM placex - WHERE bbox @ geometry AND _ST_Covers(geometry, ST_Centroid(bbox)) + WHERE bbox && geometry AND _ST_Covers(geometry, ST_Centroid(bbox)) AND rank_address between 5 and 25 ORDER BY rank_address desc LOOP