mirror of https://github.com/postgres/postgres
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
![]()
9 years ago
|
/* contrib/intagg/intagg--1.1.sql */
|
||
![]()
24 years ago
|
|
||
![]()
14 years ago
|
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
||
|
\echo Use "CREATE EXTENSION intagg" to load this file. \quit
|
||
|
|
||
![]()
24 years ago
|
-- Internal function for the aggregate
|
||
|
-- Is called for each item in an aggregation
|
||
![]()
15 years ago
|
CREATE FUNCTION int_agg_state (internal, int4)
|
||
![]()
17 years ago
|
RETURNS internal
|
||
|
AS 'array_agg_transfn'
|
||
![]()
9 years ago
|
PARALLEL SAFE
|
||
![]()
17 years ago
|
LANGUAGE INTERNAL;
|
||
![]()
24 years ago
|
|
||
|
-- Internal function for the aggregate
|
||
|
-- Is called at the end of the aggregation, and returns an array.
|
||
![]()
15 years ago
|
CREATE FUNCTION int_agg_final_array (internal)
|
||
![]()
23 years ago
|
RETURNS int4[]
|
||
![]()
17 years ago
|
AS 'array_agg_finalfn'
|
||
![]()
9 years ago
|
PARALLEL SAFE
|
||
![]()
17 years ago
|
LANGUAGE INTERNAL;
|
||
![]()
24 years ago
|
|
||
![]()
21 years ago
|
-- The aggregate function itself
|
||
![]()
24 years ago
|
-- uses the above functions to create an array of integers from an aggregation.
|
||
![]()
9 years ago
|
CREATE AGGREGATE int_array_aggregate(int4) (
|
||
![]()
24 years ago
|
SFUNC = int_agg_state,
|
||
![]()
17 years ago
|
STYPE = internal,
|
||
![]()
9 years ago
|
FINALFUNC = int_agg_final_array,
|
||
|
PARALLEL = SAFE
|
||
![]()
24 years ago
|
);
|
||
|
|
||
|
-- The enumeration function
|
||
![]()
21 years ago
|
-- returns each element in a one dimensional integer array
|
||
![]()
24 years ago
|
-- as a row.
|
||
![]()
15 years ago
|
CREATE FUNCTION int_array_enum(int4[])
|
||
![]()
23 years ago
|
RETURNS setof integer
|
||
![]()
17 years ago
|
AS 'array_unnest'
|
||
![]()
9 years ago
|
LANGUAGE INTERNAL IMMUTABLE STRICT PARALLEL SAFE;
|