[postgis-tickets] r15609 - Don't drop st_union when updating postgis extension to 2.4

Regina Obe lr at pcorp.us
Tue Aug 29 17:25:03 PDT 2017


Author: robe
Date: 2017-08-29 17:25:02 -0700 (Tue, 29 Aug 2017)
New Revision: 15609

Modified:
   trunk/postgis/postgis.sql.in
   trunk/postgis/postgis_drop_after.sql
Log:
Don't drop st_union when updating postgis extension to 2.4
Closes #3821 for PostGIS 2.4.0

Modified: trunk/postgis/postgis.sql.in
===================================================================
--- trunk/postgis/postgis.sql.in	2017-08-29 19:50:38 UTC (rev 15608)
+++ trunk/postgis/postgis.sql.in	2017-08-30 00:25:02 UTC (rev 15609)
@@ -3866,7 +3866,9 @@
 	LANGUAGE 'c' IMMUTABLE STRICT _PARALLEL;
 
 -- Availability: 1.2.2
--- Changed: 2.4.0 marked parallel safe
+-- Changed but upgrader helper no touch: 2.4.0 marked parallel safe
+-- we don't want to force drop of this agg since its often used in views
+-- parallel handling dealt with in postgis_drop_after.sql
 CREATE AGGREGATE ST_Union (geometry) (
 	sfunc = pgis_geometry_accum_transfn,
 	stype = pgis_abs,
@@ -3876,6 +3878,7 @@
 	finalfunc = pgis_geometry_union_finalfn
 	);
 
+
 -- Availability: 1.2.2
 -- Changed: 2.4.0: marked parallel safe
 CREATE AGGREGATE ST_Collect (geometry) (

Modified: trunk/postgis/postgis_drop_after.sql
===================================================================
--- trunk/postgis/postgis_drop_after.sql	2017-08-29 19:50:38 UTC (rev 15608)
+++ trunk/postgis/postgis_drop_after.sql	2017-08-30 00:25:02 UTC (rev 15609)
@@ -170,3 +170,14 @@
 -- pgis_abs type was increased from 8 bytes in 2.1 to 16 bytes in 2.2
 -- See #3460
 UPDATE pg_type SET typlen=16 WHERE typname='pgis_abs' AND typlen=8;
+
+DO language 'plpgsql'
+$$
+BEGIN
+IF _postgis_scripts_pgsql_version()::integer >= 96 THEN
+-- mark ST_Union agg as parallel safe if it is not already
+	UPDATE pg_proc SET proparallel = 's'
+	WHERE oid = 'st_union(geometry)'::regprocedure AND proparallel = 'u';
+END IF;
+END;
+$$;



More information about the postgis-tickets mailing list