From 0ddf65c2a3ffffe294104b764fc2f6e5cb7be781 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Thu, 25 Apr 2024 21:31:43 -0700 Subject: [PATCH] Added separate SQL function for halfvec_combine [skip ci] --- sql/vector--0.6.2--0.7.0.sql | 5 ++++- sql/vector.sql | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) 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 );