/* 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 -- Internal function for the aggregate -- Is called for each item in an aggregation CREATE FUNCTION int_agg_state (internal, int4) RETURNS internal AS 'array_agg_transfn' PARALLEL SAFE LANGUAGE INTERNAL; -- Internal function for the aggregate -- Is called at the end of the aggregation, and returns an array. 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(int4) ( SFUNC = int_agg_state, STYPE = internal, FINALFUNC = int_agg_final_array, PARALLEL = SAFE ); -- The enumeration function -- returns each element in a one dimensional integer array -- as a row. CREATE FUNCTION int_array_enum(int4[]) RETURNS setof integer AS 'array_unnest' LANGUAGE INTERNAL IMMUTABLE STRICT PARALLEL SAFE;