Added sum aggregate

This commit is contained in:
Andrew Kane
2023-07-15 20:25:30 -07:00
parent 324642ff78
commit b1b618616c
7 changed files with 96 additions and 0 deletions
+12
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