From 5236e7a03e86ca365d303660ccbf2a2677ed9b17 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Thu, 15 Oct 2020 12:06:18 +0200 Subject: [PATCH] fix use of geometry operators @ is contained by while ~ is contains. --- sql/functions/placex_triggers.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sql/functions/placex_triggers.sql b/sql/functions/placex_triggers.sql index e8e9bdb6..680e80e7 100644 --- a/sql/functions/placex_triggers.sql +++ b/sql/functions/placex_triggers.sql @@ -507,7 +507,7 @@ BEGIN FROM placex WHERE osm_type = 'R' and class = 'boundary' and type = 'administrative' and admin_level < in_level - and geometry && geom and ST_Covers(geometry, geom) + and geometry ~ geom and _ST_Covers(geometry, geom) ORDER BY admin_level desc LIMIT 1; END IF; @@ -624,7 +624,7 @@ BEGIN SELECT rank_address FROM placex WHERE class = 'place' and rank_address < 24 and rank_address > NEW.rank_address - and geometry && NEW.geometry + and geometry ~ NEW.geometry and ST_Relate(geometry, NEW.geometry, 'T*T***FF*') -- contains but not equal ORDER BY rank_address desc LIMIT 1 LOOP @@ -640,7 +640,7 @@ BEGIN SELECT rank_address FROM placex WHERE osm_type = 'R' and class = 'boundary' and type = 'administrative' and rank_address = NEW.rank_address - and geometry && NEW.centroid and _ST_Covers(geometry, NEW.centroid) + and geometry ~ NEW.centroid and _ST_Covers(geometry, NEW.centroid) LIMIT 1 LOOP NEW.rank_address = NEW.rank_address + 2; @@ -743,10 +743,10 @@ BEGIN IF NEW.osm_type = 'N' AND addr_street IS NULL AND addr_place IS NULL AND NEW.housenumber IS NULL THEN FOR location IN - -- The additional && condition works around the misguided query + -- The additional ~ condition works around the misguided query -- planner of postgis 3.0. SELECT address from placex where ST_Covers(geometry, NEW.centroid) - and geometry && NEW.centroid + and geometry ~ NEW.centroid and (address ? 'housenumber' or address ? 'street' or address ? 'place') and rank_search > 28 AND ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon') limit 1 -- 2.39.5