]> granicus.if.org Git - postgresql/commitdiff
Update intagg extension for parallel query.
authorRobert Haas <rhaas@postgresql.org>
Tue, 7 Jun 2016 15:25:55 +0000 (11:25 -0400)
committerRobert Haas <rhaas@postgresql.org>
Tue, 7 Jun 2016 15:26:41 +0000 (11:26 -0400)
All functions provided by this extension are PARALLEL SAFE.

Andreas Karlsson

contrib/intagg/Makefile
contrib/intagg/intagg--1.0--1.1.sql [new file with mode: 0644]
contrib/intagg/intagg--1.1.sql [moved from contrib/intagg/intagg--1.0.sql with 80% similarity]
contrib/intagg/intagg.control

index 2cfe9978e2d9321b5d9a93aa6cc8879f94e8318f..c1e11bb95a569c1a5156ace27b2a1ba82c3a7525 100644 (file)
@@ -1,7 +1,7 @@
 # contrib/intagg/Makefile
 
 EXTENSION = intagg
-DATA = intagg--1.0.sql intagg--unpackaged--1.0.sql
+DATA = intagg--1.1.sql intagg--1.0--1.1.sql intagg--unpackaged--1.0.sql
 
 ifdef USE_PGXS
 PG_CONFIG = pg_config
diff --git a/contrib/intagg/intagg--1.0--1.1.sql b/contrib/intagg/intagg--1.0--1.1.sql
new file mode 100644 (file)
index 0000000..2ec95b6
--- /dev/null
@@ -0,0 +1,11 @@
+/* contrib/intagg/intagg--1.0--1.1.sql */
+
+-- complain if script is sourced in psql, rather than via ALTER EXTENSION
+\echo Use "ALTER EXTENSION intagg UPDATE TO '1.1'" to load this file. \quit
+
+ALTER FUNCTION int_agg_state(internal, int4) PARALLEL SAFE;
+ALTER FUNCTION int_agg_final_array(internal) PARALLEL SAFE;
+ALTER FUNCTION int_array_enum(int4[]) PARALLEL SAFE;
+
+UPDATE pg_proc SET proparallel = 's'
+WHERE oid = 'int_array_aggregate(int4)'::regprocedure;
similarity index 80%
rename from contrib/intagg/intagg--1.0.sql
rename to contrib/intagg/intagg--1.1.sql
index f96b6e2e9b7b4eb6a58d8a5ad2a4aa7fd83d97b7..3796a2afbdf8877fd0a8d918c0f8e2e69f8778ff 100644 (file)
@@ -1,4 +1,4 @@
-/* contrib/intagg/intagg--1.0.sql */
+/* contrib/intagg/intagg--1.1.sql */
 
 -- complain if script is sourced in psql, rather than via CREATE EXTENSION
 \echo Use "CREATE EXTENSION intagg" to load this file. \quit
@@ -8,6 +8,7 @@
 CREATE FUNCTION int_agg_state (internal, int4)
 RETURNS internal
 AS 'array_agg_transfn'
+PARALLEL SAFE
 LANGUAGE INTERNAL;
 
 -- Internal function for the aggregate
@@ -15,15 +16,16 @@ LANGUAGE INTERNAL;
 CREATE FUNCTION int_agg_final_array (internal)
 RETURNS int4[]
 AS 'array_agg_finalfn'
+PARALLEL SAFE
 LANGUAGE INTERNAL;
 
 -- The aggregate function itself
 -- uses the above functions to create an array of integers from an aggregation.
-CREATE AGGREGATE int_array_aggregate (
-       BASETYPE = int4,
+CREATE AGGREGATE int_array_aggregate(int4) (
        SFUNC = int_agg_state,
        STYPE = internal,
-       FINALFUNC = int_agg_final_array
+       FINALFUNC = int_agg_final_array,
+       PARALLEL = SAFE
 );
 
 -- The enumeration function
@@ -32,4 +34,4 @@ CREATE AGGREGATE int_array_aggregate (
 CREATE FUNCTION int_array_enum(int4[])
 RETURNS setof integer
 AS 'array_unnest'
-LANGUAGE INTERNAL IMMUTABLE STRICT;
+LANGUAGE INTERNAL IMMUTABLE STRICT PARALLEL SAFE;
index f11fb11940bed10b676f730c972297b84ff8d3bb..a733bbfc1d2d7b3e2cc9cd2ad5807a9225decfe9 100644 (file)
@@ -1,4 +1,4 @@
 # intagg extension
 comment = 'integer aggregator and enumerator (obsolete)'
-default_version = '1.0'
+default_version = '1.1'
 relocatable = true