From ba3762d2cd730de50d9b61bff9be22cb9ea55d06 Mon Sep 17 00:00:00 2001 From: Bborie Park Date: Wed, 28 Dec 2011 16:51:39 +0000 Subject: [PATCH] Removed STRICT from various ST_Intersects functions and changed the costs of calling ST_Intersects to 1000. Related ticket is #1410. git-svn-id: http://svn.osgeo.org/postgis/trunk@8603 b70326c6-7e19-0410-871a-916f4a2858ee --- raster/rt_pg/rtpostgis.sql.in.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/raster/rt_pg/rtpostgis.sql.in.c b/raster/rt_pg/rtpostgis.sql.in.c index 1fa4e482d..039fe3de7 100644 --- a/raster/rt_pg/rtpostgis.sql.in.c +++ b/raster/rt_pg/rtpostgis.sql.in.c @@ -2965,17 +2965,20 @@ CREATE OR REPLACE FUNCTION st_samealignment( CREATE OR REPLACE FUNCTION _st_intersects(rast1 raster, nband1 integer, rast2 raster, nband2 integer) RETURNS boolean AS 'MODULE_PATHNAME', 'RASTER_intersects' - LANGUAGE 'C' IMMUTABLE; + LANGUAGE 'C' IMMUTABLE + COST 1000; CREATE OR REPLACE FUNCTION st_intersects(rast1 raster, nband1 integer, rast2 raster, nband2 integer) RETURNS boolean AS $$ SELECT $1 && $3 AND _st_intersects($1, $2, $3, $4) $$ - LANGUAGE 'SQL' IMMUTABLE; + LANGUAGE 'SQL' IMMUTABLE + COST 1000; CREATE OR REPLACE FUNCTION st_intersects(rast1 raster, rast2 raster) RETURNS boolean AS $$ SELECT $1 && $2 AND _st_intersects($1, 1, $2, 1) $$ - LANGUAGE 'SQL' IMMUTABLE STRICT; + LANGUAGE 'SQL' IMMUTABLE + COST 1000; ----------------------------------------------------------------------- -- Raster/Geometry Spatial Relationship @@ -3004,17 +3007,20 @@ CREATE OR REPLACE FUNCTION _st_intersects(rast raster, geom geometry, nband inte RETURN ST_Intersects(rast, nband, gr, 1); END; - $$ LANGUAGE 'plpgsql' IMMUTABLE; + $$ LANGUAGE 'plpgsql' IMMUTABLE + COST 1000; CREATE OR REPLACE FUNCTION st_intersects(rast raster, geom geometry, nband integer DEFAULT NULL) RETURNS boolean AS $$ SELECT $1 && $2 AND _st_intersects($1, $2, $3) $$ - LANGUAGE 'SQL' IMMUTABLE; + LANGUAGE 'SQL' IMMUTABLE + COST 1000; CREATE OR REPLACE FUNCTION st_intersects(rast raster, nband integer, geom geometry) RETURNS boolean AS $$ SELECT $1 && $3 AND _st_intersects($1, $3, $2) $$ - LANGUAGE 'SQL' IMMUTABLE STRICT; + LANGUAGE 'SQL' IMMUTABLE + COST 1000; ----------------------------------------------------------------------- -- _st_intersects(geom geometry, rast raster, nband integer) @@ -3148,13 +3154,15 @@ CREATE OR REPLACE FUNCTION _st_intersects(geom geometry, rast raster, nband inte RETURN FALSE; END; - $$ LANGUAGE 'plpgsql' IMMUTABLE; + $$ LANGUAGE 'plpgsql' IMMUTABLE + COST 1000; -- This function can not be STRICT CREATE OR REPLACE FUNCTION st_intersects(geom geometry, rast raster, nband integer DEFAULT NULL) RETURNS boolean AS $$ SELECT $1 && $2 AND _st_intersects($1, $2, $3); $$ - LANGUAGE 'SQL' IMMUTABLE; + LANGUAGE 'SQL' IMMUTABLE + COST 1000; ----------------------------------------------------------------------- -- ST_Intersection (geometry, raster in vector space) -- 2.50.1