@@ -125,6 +125,12 @@ CREATE FUNCTION halfvec_spherical_distance(halfvec, halfvec) RETURNS float8
125125CREATE FUNCTION halfvec (halfvec, integer , boolean ) RETURNS halfvec
126126 AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
127127
128+ CREATE FUNCTION halfvec_to_vector (halfvec, integer , boolean ) RETURNS vector
129+ AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
130+
131+ CREATE FUNCTION vector_to_halfvec (vector, integer , boolean ) RETURNS halfvec
132+ AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
133+
128134CREATE FUNCTION array_to_halfvec (integer [], integer , boolean ) RETURNS halfvec
129135 AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
130136
@@ -143,8 +149,14 @@ CREATE FUNCTION halfvec_to_float4(halfvec, integer, boolean) RETURNS real[]
143149CREATE CAST (halfvec AS halfvec)
144150 WITH FUNCTION halfvec(halfvec, integer , boolean ) AS IMPLICIT;
145151
152+ CREATE CAST (halfvec AS vector)
153+ WITH FUNCTION halfvec_to_vector(halfvec, integer , boolean ) AS ASSIGNMENT;
154+
155+ CREATE CAST (vector AS halfvec)
156+ WITH FUNCTION vector_to_halfvec(vector, integer , boolean ) AS IMPLICIT;
157+
146158CREATE CAST (halfvec AS real [])
147- WITH FUNCTION halfvec_to_float4(halfvec, integer , boolean ) AS IMPLICIT ;
159+ WITH FUNCTION halfvec_to_float4(halfvec, integer , boolean ) AS ASSIGNMENT ;
148160
149161CREATE CAST (integer [] AS halfvec)
150162 WITH FUNCTION array_to_halfvec(integer [], integer , boolean ) AS ASSIGNMENT;
@@ -269,18 +281,6 @@ CREATE OPERATOR CLASS halfvec_cosine_ops
269281 FUNCTION 1 halfvec_negative_inner_product(halfvec, halfvec),
270282 FUNCTION 2 halfvec_norm(halfvec);
271283
272- CREATE FUNCTION halfvec_to_vector (halfvec, integer , boolean ) RETURNS vector
273- AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
274-
275- CREATE FUNCTION vector_to_halfvec (vector, integer , boolean ) RETURNS halfvec
276- AS ' MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
277-
278- CREATE CAST (halfvec AS vector)
279- WITH FUNCTION halfvec_to_vector(halfvec, integer , boolean ) AS ASSIGNMENT;
280-
281- CREATE CAST (vector AS halfvec)
282- WITH FUNCTION vector_to_halfvec(vector, integer , boolean ) AS IMPLICIT;
283-
284284CREATE TYPE sparsevec ;
285285
286286CREATE FUNCTION sparsevec_in (cstring, oid , integer ) RETURNS sparsevec
0 commit comments