From: Bborie Park Date: Wed, 28 Dec 2011 16:51:39 +0000 (+0000) Subject: Removed STRICT from various ST_Intersects functions and changed the costs of calling... X-Git-Tag: 2.0.0alpha1~272 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ba3762d2cd730de50d9b61bff9be22cb9ea55d06;p=postgis 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 --- 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)