Added sum aggregate

This commit is contained in:
Andrew Kane
2023-07-15 20:25:30 -07:00
parent 08e7209810
commit ed1bc3e856
7 changed files with 96 additions and 0 deletions

View File

@@ -99,6 +99,9 @@ CREATE FUNCTION vector_avg(double precision[]) RETURNS vector
CREATE FUNCTION vector_combine(double precision[], double precision[]) RETURNS double precision[]
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION vector_sum(double precision[]) RETURNS vector
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- aggregates
CREATE AGGREGATE avg(vector) (
@@ -110,6 +113,15 @@ CREATE AGGREGATE avg(vector) (
PARALLEL = SAFE
);
CREATE AGGREGATE sum(vector) (
SFUNC = vector_accum,
STYPE = double precision[],
FINALFUNC = vector_sum,
COMBINEFUNC = vector_combine,
INITCOND = '{0}',
PARALLEL = SAFE
);
-- cast functions
CREATE FUNCTION vector(vector, integer, boolean) RETURNS vector