]> granicus.if.org Git - postgis/commitdiff
mark more raster functions parallel safe
authorRegina Obe <lr@pcorp.us>
Wed, 21 Sep 2016 19:44:46 +0000 (19:44 +0000)
committerRegina Obe <lr@pcorp.us>
Wed, 21 Sep 2016 19:44:46 +0000 (19:44 +0000)
references #3556

git-svn-id: http://svn.osgeo.org/postgis/trunk@15126 b70326c6-7e19-0410-871a-916f4a2858ee

raster/rt_pg/rtpostgis.sql.in

index 15a08d2050140eeded40122c43226ba6308260cf..a50c2bd697e5ed718ac9e566f330a93d16f8a6bf 100644 (file)
@@ -6105,19 +6105,19 @@ CREATE OR REPLACE FUNCTION st_iscoveragetile(rast raster, coverage raster, tilew
 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@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_intersects(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._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@.st_intersects($1, NULL::integer, $2, NULL::integer) $$
-       LANGUAGE 'sql' IMMUTABLE
+       LANGUAGE 'sql' IMMUTABLE _PARALLEL
        COST 1000;
 
 -----------------------------------------------------------------------
@@ -6149,14 +6149,14 @@ CREATE OR REPLACE FUNCTION _st_intersects(geom geometry, rast raster, nband inte
                SELECT @extschema@.ST_Collect(t.geom) INTO _geom FROM @extschema@.ST_PixelAsPolygons(rast, nband) AS t;
                RETURN @extschema@.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@.&&) $2::geometry AND @extschema@._st_intersects($1, $2, $3); $$
-       LANGUAGE 'sql' IMMUTABLE
+       LANGUAGE 'sql' IMMUTABLE _PARALLEL
        COST 1000;
 
 -----------------------------------------------------------------------
@@ -6166,13 +6166,13 @@ CREATE OR REPLACE FUNCTION st_intersects(geom geometry, rast raster, nband integ
 CREATE OR REPLACE FUNCTION st_intersects(rast raster, geom geometry, nband integer DEFAULT NULL)
        RETURNS boolean
        AS $$ SELECT $1::geometry OPERATOR(@extschema@.&&) $2 AND @extschema@._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@.&&) $3 AND @extschema@._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 rast
 CREATE OR REPLACE FUNCTION st_overlaps(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
        AS $$ SELECT $1 OPERATOR(@extschema@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_overlaps(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._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@.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_overlaps(rast1 raster, rast2 raster)
 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@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_touches(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._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@.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 rast
 CREATE OR REPLACE FUNCTION st_contains(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
        AS $$ SELECT $1 OPERATOR(@extschema@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_contains(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._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@.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_contains(rast1 raster, rast2 raster)
 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@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_containsproperly(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._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@.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_containsproperly(rast1 raster, rast2 raster)
 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@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_covers(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._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@.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_covers(rast1 raster, rast2 raster)
 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@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_coveredby(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._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@.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_coveredby(rast1 raster, rast2 raster)
 CREATE OR REPLACE FUNCTION _st_within(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
        AS $$ SELECT @extschema@._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@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_within(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._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@.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_within(rast1 raster, rast2 raster)
 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@.&&) ST_Expand(ST_ConvexHull($3), $5) AND $3::geometry OPERATOR(@extschema@.&&) ST_Expand(ST_ConvexHull($1), $5) AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._ST_dwithin(st_convexhull($1), st_convexhull($3), $5) ELSE @extschema@._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@.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_dwithin(rast1 raster, rast2 raster, distance doubl
 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@.&&) ST_Expand(ST_ConvexHull($3), $5) AND $3::geometry OPERATOR(@extschema@.&&) ST_Expand(ST_ConvexHull($1), $5) AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._ST_dfullywithin(st_convexhull($1), st_convexhull($3), $5) ELSE @extschema@._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_dfullywithin(rast1 raster, rast2 raster, distance
 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@._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 @@ CREATE OR REPLACE FUNCTION st_intersection(
 
                RETURN rtn;
        END;
-       $$ LANGUAGE 'plpgsql' STABLE;
+       $$ LANGUAGE 'plpgsql' STABLE _PARALLEL;
 
 CREATE OR REPLACE FUNCTION st_intersection(
        rast1 raster, band1 int,