Simplified sum aggregate

This commit is contained in:
Andrew Kane
2023-07-16 15:30:03 -07:00
parent f9d9d64a4e
commit a0c7f618ff
5 changed files with 7 additions and 59 deletions

View File

@@ -12,14 +12,9 @@ CREATE OPERATOR * (
COMMUTATOR = *
);
CREATE FUNCTION vector_sum(double precision[]) RETURNS vector
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE AGGREGATE sum(vector) (
SFUNC = vector_accum,
STYPE = double precision[],
FINALFUNC = vector_sum,
COMBINEFUNC = vector_combine,
INITCOND = '{0}',
SFUNC = vector_add,
STYPE = vector,
COMBINEFUNC = vector_add,
PARALLEL = SAFE
);

View File

@@ -99,9 +99,6 @@ 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) (
@@ -114,11 +111,9 @@ CREATE AGGREGATE avg(vector) (
);
CREATE AGGREGATE sum(vector) (
SFUNC = vector_accum,
STYPE = double precision[],
FINALFUNC = vector_sum,
COMBINEFUNC = vector_combine,
INITCOND = '{0}',
SFUNC = vector_add,
STYPE = vector,
COMBINEFUNC = vector_add,
PARALLEL = SAFE
);