diff --git a/sql/vector--0.6.2--0.7.0.sql b/sql/vector--0.6.2--0.7.0.sql index 0d0a07c..e9d9c25 100644 --- a/sql/vector--0.6.2--0.7.0.sql +++ b/sql/vector--0.6.2--0.7.0.sql @@ -178,11 +178,14 @@ CREATE FUNCTION halfvec_accum(double precision[], halfvec) RETURNS double precis CREATE FUNCTION halfvec_avg(double precision[]) RETURNS halfvec AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; +CREATE FUNCTION halfvec_combine(double precision[], double precision[]) RETURNS double precision[] + AS 'MODULE_PATHNAME', 'vector_combine' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; + CREATE AGGREGATE avg(halfvec) ( SFUNC = halfvec_accum, STYPE = double precision[], FINALFUNC = halfvec_avg, - COMBINEFUNC = vector_combine, + COMBINEFUNC = halfvec_combine, INITCOND = '{0}', PARALLEL = SAFE ); diff --git a/sql/vector.sql b/sql/vector.sql index 75d27b6..58ff773 100644 --- a/sql/vector.sql +++ b/sql/vector.sql @@ -479,13 +479,16 @@ CREATE FUNCTION halfvec_accum(double precision[], halfvec) RETURNS double precis CREATE FUNCTION halfvec_avg(double precision[]) RETURNS halfvec AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; +CREATE FUNCTION halfvec_combine(double precision[], double precision[]) RETURNS double precision[] + AS 'MODULE_PATHNAME', 'vector_combine' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; + -- halfvec aggregates CREATE AGGREGATE avg(halfvec) ( SFUNC = halfvec_accum, STYPE = double precision[], FINALFUNC = halfvec_avg, - COMBINEFUNC = vector_combine, + COMBINEFUNC = halfvec_combine, INITCOND = '{0}', PARALLEL = SAFE );