diff --git a/sql/vector.sql b/sql/vector.sql index 190c38e..65a60a4 100644 --- a/sql/vector.sql +++ b/sql/vector.sql @@ -34,8 +34,8 @@ CREATE TYPE vector ( CREATE FUNCTION l2_distance(vector, vector) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION float4_l2_distance(float4[], float4[]) RETURNS float8 - AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; +CREATE FUNCTION l2_distance(float4[], float4[]) RETURNS float8 + AS 'MODULE_PATHNAME', 'float4_l2_distance' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; CREATE FUNCTION inner_product(vector, vector) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; @@ -171,7 +171,7 @@ CREATE OPERATOR <-> ( ); CREATE OPERATOR <-> ( - LEFTARG = float4[], RIGHTARG = float4[], PROCEDURE = float4_l2_distance, + LEFTARG = float4[], RIGHTARG = float4[], PROCEDURE = l2_distance, COMMUTATOR = '<->' ); diff --git a/test/expected/functions.out b/test/expected/functions.out index 2840688..8366e8e 100644 --- a/test/expected/functions.out +++ b/test/expected/functions.out @@ -54,21 +54,21 @@ SELECT vector_norm('[3e37,4e37]')::real; 5e+37 (1 row) -SELECT l2_distance('[0,0]', '[3,4]'); +SELECT l2_distance('[0,0]'::vector, '[3,4]'); l2_distance ------------- 5 (1 row) -SELECT l2_distance('[0,0]', '[0,1]'); +SELECT l2_distance('[0,0]'::vector, '[0,1]'); l2_distance ------------- 1 (1 row) -SELECT l2_distance('[1,2]', '[3]'); +SELECT l2_distance('[1,2]'::vector, '[3]'); ERROR: different vector dimensions 2 and 1 -SELECT l2_distance('[3e38]', '[-3e38]'); +SELECT l2_distance('[3e38]'::vector, '[-3e38]'); l2_distance ------------- Infinity diff --git a/test/sql/functions.sql b/test/sql/functions.sql index 914df36..b10a660 100644 --- a/test/sql/functions.sql +++ b/test/sql/functions.sql @@ -13,10 +13,10 @@ SELECT vector_norm('[3,4]'); SELECT vector_norm('[0,1]'); SELECT vector_norm('[3e37,4e37]')::real; -SELECT l2_distance('[0,0]', '[3,4]'); -SELECT l2_distance('[0,0]', '[0,1]'); -SELECT l2_distance('[1,2]', '[3]'); -SELECT l2_distance('[3e38]', '[-3e38]'); +SELECT l2_distance('[0,0]'::vector, '[3,4]'); +SELECT l2_distance('[0,0]'::vector, '[0,1]'); +SELECT l2_distance('[1,2]'::vector, '[3]'); +SELECT l2_distance('[3e38]'::vector, '[-3e38]'); SELECT inner_product('[1,2]', '[3,4]'); SELECT inner_product('[1,2]', '[3]');