From 9f640f0c35acdd4f6d186839fce16ab00a456be9 Mon Sep 17 00:00:00 2001 From: John Krauss Date: Fri, 9 Dec 2016 21:47:30 +0000 Subject: [PATCH] use simple envelope for very complex geometries in obs_getgetgeometryscores --- src/pg/sql/42_observatory_exploration.sql | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/pg/sql/42_observatory_exploration.sql b/src/pg/sql/42_observatory_exploration.sql index 7ba3297..86a531e 100644 --- a/src/pg/sql/42_observatory_exploration.sql +++ b/src/pg/sql/42_observatory_exploration.sql @@ -434,6 +434,11 @@ CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GetGeometryScores( ) AS $$ BEGIN filter_geom_ids := COALESCE(filter_geom_ids, (ARRAY[])::TEXT[]); + -- Very complex geometries simply fail. For a boundary check, we can + -- comfortably get away with the simplicity of an envelope + IF ST_Npoints(bounds) > 10000 THEN + bounds := ST_Envelope(bounds); + END IF; RETURN QUERY EXECUTE format($string$ SELECT