diff --git a/sql/vector--0.6.2--0.7.0.sql b/sql/vector--0.6.2--0.7.0.sql index 663b6cc..25a97d1 100644 --- a/sql/vector--0.6.2--0.7.0.sql +++ b/sql/vector--0.6.2--0.7.0.sql @@ -125,6 +125,12 @@ CREATE FUNCTION halfvec_spherical_distance(halfvec, halfvec) RETURNS float8 CREATE FUNCTION halfvec(halfvec, integer, boolean) RETURNS halfvec AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; +CREATE FUNCTION halfvec_to_vector(halfvec, integer, boolean) RETURNS vector + AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; + +CREATE FUNCTION vector_to_halfvec(vector, integer, boolean) RETURNS halfvec + AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; + CREATE FUNCTION array_to_halfvec(integer[], integer, boolean) RETURNS halfvec AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; @@ -143,8 +149,14 @@ CREATE FUNCTION halfvec_to_float4(halfvec, integer, boolean) RETURNS real[] CREATE CAST (halfvec AS halfvec) WITH FUNCTION halfvec(halfvec, integer, boolean) AS IMPLICIT; +CREATE CAST (halfvec AS vector) + WITH FUNCTION halfvec_to_vector(halfvec, integer, boolean) AS ASSIGNMENT; + +CREATE CAST (vector AS halfvec) + WITH FUNCTION vector_to_halfvec(vector, integer, boolean) AS IMPLICIT; + CREATE CAST (halfvec AS real[]) - WITH FUNCTION halfvec_to_float4(halfvec, integer, boolean) AS IMPLICIT; + WITH FUNCTION halfvec_to_float4(halfvec, integer, boolean) AS ASSIGNMENT; CREATE CAST (integer[] AS halfvec) WITH FUNCTION array_to_halfvec(integer[], integer, boolean) AS ASSIGNMENT; @@ -269,18 +281,6 @@ CREATE OPERATOR CLASS halfvec_cosine_ops FUNCTION 1 halfvec_negative_inner_product(halfvec, halfvec), FUNCTION 2 halfvec_norm(halfvec); -CREATE FUNCTION halfvec_to_vector(halfvec, integer, boolean) RETURNS vector - AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; - -CREATE FUNCTION vector_to_halfvec(vector, integer, boolean) RETURNS halfvec - AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; - -CREATE CAST (halfvec AS vector) - WITH FUNCTION halfvec_to_vector(halfvec, integer, boolean) AS ASSIGNMENT; - -CREATE CAST (vector AS halfvec) - WITH FUNCTION vector_to_halfvec(vector, integer, boolean) AS IMPLICIT; - CREATE TYPE sparsevec; CREATE FUNCTION sparsevec_in(cstring, oid, integer) RETURNS sparsevec diff --git a/sql/vector.sql b/sql/vector.sql index 2996604..501eb7c 100644 --- a/sql/vector.sql +++ b/sql/vector.sql @@ -422,6 +422,12 @@ CREATE FUNCTION halfvec_spherical_distance(halfvec, halfvec) RETURNS float8 CREATE FUNCTION halfvec(halfvec, integer, boolean) RETURNS halfvec AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; +CREATE FUNCTION halfvec_to_vector(halfvec, integer, boolean) RETURNS vector + AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; + +CREATE FUNCTION vector_to_halfvec(vector, integer, boolean) RETURNS halfvec + AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; + CREATE FUNCTION array_to_halfvec(integer[], integer, boolean) RETURNS halfvec AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; @@ -442,8 +448,14 @@ CREATE FUNCTION halfvec_to_float4(halfvec, integer, boolean) RETURNS real[] CREATE CAST (halfvec AS halfvec) WITH FUNCTION halfvec(halfvec, integer, boolean) AS IMPLICIT; +CREATE CAST (halfvec AS vector) + WITH FUNCTION halfvec_to_vector(halfvec, integer, boolean) AS ASSIGNMENT; + +CREATE CAST (vector AS halfvec) + WITH FUNCTION vector_to_halfvec(vector, integer, boolean) AS IMPLICIT; + CREATE CAST (halfvec AS real[]) - WITH FUNCTION halfvec_to_float4(halfvec, integer, boolean) AS IMPLICIT; + WITH FUNCTION halfvec_to_float4(halfvec, integer, boolean) AS ASSIGNMENT; CREATE CAST (integer[] AS halfvec) WITH FUNCTION array_to_halfvec(integer[], integer, boolean) AS ASSIGNMENT; @@ -572,20 +584,6 @@ CREATE OPERATOR CLASS halfvec_cosine_ops FUNCTION 1 halfvec_negative_inner_product(halfvec, halfvec), FUNCTION 2 halfvec_norm(halfvec); --- extension casts - -CREATE FUNCTION halfvec_to_vector(halfvec, integer, boolean) RETURNS vector - AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; - -CREATE FUNCTION vector_to_halfvec(vector, integer, boolean) RETURNS halfvec - AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; - -CREATE CAST (halfvec AS vector) - WITH FUNCTION halfvec_to_vector(halfvec, integer, boolean) AS ASSIGNMENT; - -CREATE CAST (vector AS halfvec) - WITH FUNCTION vector_to_halfvec(vector, integer, boolean) AS IMPLICIT; - --- sparsevec type CREATE TYPE sparsevec;