[postgis-tickets] r15126 - mark more raster functions parallel safe

Regina Obe lr at pcorp.us
Wed Sep 21 12:44:46 PDT 2016


Author: robe
Date: 2016-09-21 12:44:46 -0700 (Wed, 21 Sep 2016)
New Revision: 15126

Modified:
   trunk/raster/rt_pg/rtpostgis.sql.in
Log:
mark more raster functions parallel safe
references #3556

Modified: trunk/raster/rt_pg/rtpostgis.sql.in
===================================================================
--- trunk/raster/rt_pg/rtpostgis.sql.in	2016-09-21 15:58:27 UTC (rev 15125)
+++ trunk/raster/rt_pg/rtpostgis.sql.in	2016-09-21 19:44:46 UTC (rev 15126)
@@ -6105,19 +6105,19 @@
 CREATE OR REPLACE FUNCTION _st_intersects(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME', 'RASTER_intersects'
-	LANGUAGE 'c' IMMUTABLE STRICT
+	LANGUAGE 'c' IMMUTABLE STRICT _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_intersects(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS $$ SELECT $1 OPERATOR(@extschema at .&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema at ._st_intersects(@extschema at .st_convexhull($1), @extschema at .st_convexhull($3)) ELSE @extschema at ._st_intersects($1, $2, $3, $4) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_intersects(rast1 raster, rast2 raster)
 	RETURNS boolean
 	AS $$ SELECT @extschema at .st_intersects($1, NULL::integer, $2, NULL::integer) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6149,14 +6149,14 @@
 		SELECT @extschema at .ST_Collect(t.geom) INTO _geom FROM @extschema at .ST_PixelAsPolygons(rast, nband) AS t;
 		RETURN @extschema at .ST_Intersects(geom, _geom);
 	END;
-	$$ LANGUAGE 'plpgsql' IMMUTABLE
+	$$ LANGUAGE 'plpgsql' IMMUTABLE _PARALLEL
 	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 OPERATOR(@extschema at .&&) $2::geometry AND @extschema at ._st_intersects($1, $2, $3); $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6166,13 +6166,13 @@
 CREATE OR REPLACE FUNCTION st_intersects(rast raster, geom geometry, nband integer DEFAULT NULL)
 	RETURNS boolean
 	AS $$ SELECT $1::geometry OPERATOR(@extschema at .&&) $2 AND @extschema at ._st_intersects($2, $1, $3) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_intersects(rast raster, nband integer, geom geometry)
 	RETURNS boolean
 	AS $$ SELECT $1::geometry OPERATOR(@extschema at .&&) $3 AND @extschema at ._st_intersects($3, $1, $2) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6188,13 +6188,13 @@
 CREATE OR REPLACE FUNCTION st_overlaps(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS $$ SELECT $1 OPERATOR(@extschema at .&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema at ._st_overlaps(@extschema at .st_convexhull($1), @extschema at .st_convexhull($3)) ELSE @extschema at ._ST_overlaps($1, $2, $3, $4) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_overlaps(rast1 raster, rast2 raster)
 	RETURNS boolean
 	AS $$ SELECT @extschema at .st_overlaps($1, NULL::integer, $2, NULL::integer) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6204,19 +6204,19 @@
 CREATE OR REPLACE FUNCTION _st_touches(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME', 'RASTER_touches'
-	LANGUAGE 'c' IMMUTABLE STRICT
+	LANGUAGE 'c' IMMUTABLE STRICT _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_touches(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS $$ SELECT $1 OPERATOR(@extschema at .&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema at ._st_touches(@extschema at .st_convexhull($1), @extschema at .st_convexhull($3)) ELSE @extschema at ._st_touches($1, $2, $3, $4) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_touches(rast1 raster, rast2 raster)
 	RETURNS boolean
 	AS $$ SELECT @extschema at .st_touches($1, NULL::integer, $2, NULL::integer) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6232,13 +6232,13 @@
 CREATE OR REPLACE FUNCTION st_contains(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS $$ SELECT $1 OPERATOR(@extschema at .&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema at ._st_contains(@extschema at .st_convexhull($1), @extschema at .st_convexhull($3)) ELSE @extschema at ._st_contains($1, $2, $3, $4) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_contains(rast1 raster, rast2 raster)
 	RETURNS boolean
 	AS $$ SELECT @extschema at .st_contains($1, NULL::integer, $2, NULL::integer) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6248,19 +6248,19 @@
 CREATE OR REPLACE FUNCTION _st_containsproperly(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME', 'RASTER_containsProperly'
-	LANGUAGE 'c' IMMUTABLE STRICT
+	LANGUAGE 'c' IMMUTABLE STRICT _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_containsproperly(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS $$ SELECT $1 OPERATOR(@extschema at .&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema at ._st_containsproperly(@extschema at .st_convexhull($1), @extschema at .st_convexhull($3)) ELSE @extschema at ._st_containsproperly($1, $2, $3, $4) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_containsproperly(rast1 raster, rast2 raster)
 	RETURNS boolean
 	AS $$ SELECT @extschema at .st_containsproperly($1, NULL::integer, $2, NULL::integer) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6270,19 +6270,19 @@
 CREATE OR REPLACE FUNCTION _st_covers(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME', 'RASTER_covers'
-	LANGUAGE 'c' IMMUTABLE STRICT
+	LANGUAGE 'c' IMMUTABLE STRICT _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_covers(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS $$ SELECT $1 OPERATOR(@extschema at .&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema at ._st_covers(@extschema at .st_convexhull($1), @extschema at .st_convexhull($3)) ELSE @extschema at ._st_covers($1, $2, $3, $4) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_covers(rast1 raster, rast2 raster)
 	RETURNS boolean
 	AS $$ SELECT @extschema at .st_covers($1, NULL::integer, $2, NULL::integer) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6292,19 +6292,19 @@
 CREATE OR REPLACE FUNCTION _st_coveredby(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME', 'RASTER_coveredby'
-	LANGUAGE 'c' IMMUTABLE STRICT
+	LANGUAGE 'c' IMMUTABLE STRICT _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_coveredby(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS $$ SELECT $1 OPERATOR(@extschema at .&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema at ._st_coveredby(@extschema at .st_convexhull($1), @extschema at .st_convexhull($3)) ELSE @extschema at ._st_coveredby($1, $2, $3, $4) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_coveredby(rast1 raster, rast2 raster)
 	RETURNS boolean
 	AS $$ SELECT @extschema at .st_coveredby($1, NULL::integer, $2, NULL::integer) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6314,19 +6314,19 @@
 CREATE OR REPLACE FUNCTION _st_within(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS $$ SELECT @extschema at ._st_contains($3, $4, $1, $2) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_within(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS $$ SELECT $1 OPERATOR(@extschema at .&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema at ._st_within(@extschema at .st_convexhull($1), @extschema at .st_convexhull($3)) ELSE @extschema at ._st_contains($3, $4, $1, $2) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_within(rast1 raster, rast2 raster)
 	RETURNS boolean
 	AS $$ SELECT @extschema at .st_within($1, NULL::integer, $2, NULL::integer) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6336,19 +6336,19 @@
 CREATE OR REPLACE FUNCTION _st_dwithin(rast1 raster, nband1 integer, rast2 raster, nband2 integer, distance double precision)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME', 'RASTER_dwithin'
-	LANGUAGE 'c' IMMUTABLE STRICT
+	LANGUAGE 'c' IMMUTABLE STRICT _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_dwithin(rast1 raster, nband1 integer, rast2 raster, nband2 integer, distance double precision)
 	RETURNS boolean
 	AS $$ SELECT $1::geometry OPERATOR(@extschema at .&&) ST_Expand(ST_ConvexHull($3), $5) AND $3::geometry OPERATOR(@extschema at .&&) ST_Expand(ST_ConvexHull($1), $5) AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema at ._ST_dwithin(st_convexhull($1), st_convexhull($3), $5) ELSE @extschema at ._ST_dwithin($1, $2, $3, $4, $5) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_dwithin(rast1 raster, rast2 raster, distance double precision)
 	RETURNS boolean
 	AS $$ SELECT @extschema at .st_dwithin($1, NULL::integer, $2, NULL::integer, $3) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6358,19 +6358,19 @@
 CREATE OR REPLACE FUNCTION _st_dfullywithin(rast1 raster, nband1 integer, rast2 raster, nband2 integer, distance double precision)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME', 'RASTER_dfullywithin'
-	LANGUAGE 'c' IMMUTABLE STRICT
+	LANGUAGE 'c' IMMUTABLE STRICT _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_dfullywithin(rast1 raster, nband1 integer, rast2 raster, nband2 integer, distance double precision)
 	RETURNS boolean
 	AS $$ SELECT $1::geometry OPERATOR(@extschema at .&&) ST_Expand(ST_ConvexHull($3), $5) AND $3::geometry OPERATOR(@extschema at .&&) ST_Expand(ST_ConvexHull($1), $5) AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema at ._ST_dfullywithin(st_convexhull($1), st_convexhull($3), $5) ELSE @extschema at ._ST_dfullywithin($1, $2, $3, $4, $5) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_dfullywithin(rast1 raster, rast2 raster, distance double precision)
 	RETURNS boolean
 	AS $$ SELECT st_dfullywithin($1, NULL::integer, $2, NULL::integer, $3) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6380,13 +6380,13 @@
 CREATE OR REPLACE FUNCTION st_disjoint(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
 	RETURNS boolean
 	AS $$ SELECT CASE WHEN $2 IS NULL OR $4 IS NULL THEN st_disjoint(st_convexhull($1), st_convexhull($3)) ELSE NOT @extschema at ._ST_intersects($1, $2, $3, $4) END $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 CREATE OR REPLACE FUNCTION st_disjoint(rast1 raster, rast2 raster)
 	RETURNS boolean
 	AS $$ SELECT st_disjoint($1, NULL::integer, $2, NULL::integer) $$
-	LANGUAGE 'sql' IMMUTABLE
+	LANGUAGE 'sql' IMMUTABLE _PARALLEL
 	COST 1000;
 
 -----------------------------------------------------------------------
@@ -6484,7 +6484,7 @@
 
 		RETURN rtn;
 	END;
-	$$ LANGUAGE 'plpgsql' STABLE;
+	$$ LANGUAGE 'plpgsql' STABLE _PARALLEL;
 
 CREATE OR REPLACE FUNCTION st_intersection(
 	rast1 raster, band1 int,



More information about the postgis-tickets mailing list