From 56c021aa8b8488ce0b8cd8b7af1091b9ddeb628f Mon Sep 17 00:00:00 2001 From: Regina Obe Date: Sat, 26 Nov 2016 19:54:38 +0000 Subject: [PATCH] Mark ST_Extent, ST_Mem* aggregate functions parallel safe closes #3650 for PostGIS 2.3.1 git-svn-id: http://svn.osgeo.org/postgis/branches/2.3@15256 b70326c6-7e19-0410-871a-916f4a2858ee --- NEWS | 4 +++- postgis/postgis.sql.in | 32 ++++++++++++++++++-------------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/NEWS b/NEWS index 9330005eb..f6fe8f5c6 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ PostGIS 2.3.1 -2016/xx/xx +2016/11/2x * Bug Fixes - #1973, st_concavehull() returns sometimes empty geometry collection @@ -8,6 +8,8 @@ PostGIS 2.3.1 for large tables - #3643, PostGIS not building on latest OSX XCode - #3644, Deadlock on interrupt + - #3650, Mark ST_Extent, ST_3DExtent and ST_Mem* + agg functions as parallel safe so they can be parallelized - #3652, Crash on Collection(MultiCurve()) - #3656, Fix upgrade of aggregates from 2.2 or lower version - #3659, Crash caused by raster GUC define after CREATE EXTENSION diff --git a/postgis/postgis.sql.in b/postgis/postgis.sql.in index 6ea5aa1b0..3df912efb 100644 --- a/postgis/postgis.sql.in +++ b/postgis/postgis.sql.in @@ -3744,25 +3744,27 @@ CREATE OR REPLACE FUNCTION ST_Combine_BBox(box2d,geometry) -- Availability: 1.2.2 -- Changed: 2.2.0 to use non-deprecated ST_CombineBBox (r13535) -- Changed: 2.3.0 to support PostgreSQL 9.6 -CREATE AGGREGATE ST_Extent( +-- Changed: 2.3.1 to support PostgreSQL 9.6 parallel safe +CREATE AGGREGATE ST_Extent(geometry) ( sfunc = ST_CombineBBox, + stype = box3d, #if POSTGIS_PGSQL_VERSION >= 96 - combinefunc = ST_CombineBBox, + combinefunc = ST_CombineBBox, + parallel = safe, #endif - finalfunc = box2d, - basetype = geometry, - stype = box3d + finalfunc = box2d ); -- Availability: 2.0.0 -- Changed: 2.2.0 to use non-deprecated ST_CombineBBox (r13535) -- Changed: 2.3.0 to support PostgreSQL 9.6 -CREATE AGGREGATE ST_3DExtent( +-- Changed: 2.3.1 to support PostgreSQL 9.6 parallel safe +CREATE AGGREGATE ST_3DExtent(geometry)( sfunc = ST_CombineBBox, #if POSTGIS_PGSQL_VERSION >= 96 - combinefunc = ST_CombineBBox, + combinefunc = ST_CombineBBox, + parallel = safe, #endif - basetype = geometry, stype = box3d ); @@ -3774,12 +3776,13 @@ CREATE OR REPLACE FUNCTION ST_Collect(geom1 geometry, geom2 geometry) -- Availability: 1.2.2 -- Changed: 2.3.0 to support PostgreSQL 9.6 -CREATE AGGREGATE ST_MemCollect( +-- Changed: 2.3.1 to support PostgreSQL 9.6 parallel safe +CREATE AGGREGATE ST_MemCollect(geometry)( sfunc = ST_collect, #if POSTGIS_PGSQL_VERSION >= 96 - combinefunc = ST_collect, + combinefunc = ST_collect, + parallel = safe, #endif - basetype = geometry, stype = geometry ); @@ -3791,11 +3794,12 @@ CREATE OR REPLACE FUNCTION ST_Collect(geometry[]) -- Availability: 1.2.2 -- Changed: 2.3.0 to support PostgreSQL 9.6 -CREATE AGGREGATE ST_MemUnion ( - basetype = geometry, +-- Changed: 2.3.1 to support PostgreSQL 9.6 parallel safe +CREATE AGGREGATE ST_MemUnion(geometry) ( sfunc = ST_Union, #if POSTGIS_PGSQL_VERSION >= 96 - combinefunc = ST_Union, + combinefunc = ST_Union, + parallel = safe, #endif stype = geometry ); -- 2.49.0