Function array_to_vector
Source fn array_to_vector(array: ListRef<'_>, ctx: &Context) -> Result<VectorVal>
Expand description
query T
SELECT ARRAY[1,2,3]::vector(3);
----
[1,2,3]
query T
SELECT ARRAY[1.0,2.0,3.0]::vector(3);
----
[1,2,3]
query T
SELECT ARRAY[1,2,3]::float4[]::vector(3);
----
[1,2,3]
query T
SELECT ARRAY[1,2,3]::float8[]::vector(3);
----
[1,2,3]
query T
SELECT ARRAY[1,2,3]::numeric[]::vector(3);
----
[1,2,3]
query T
SELECT '{1,2,3}'::real[]::vector(3);
----
[1,2,3]
query error expected 2 dimensions, not 3
SELECT '{1,2,3}'::real[]::vector(2);
query error array must not contain nulls
SELECT '{NULL}'::real[]::vector(1);
query error NaN not allowed in vector
SELECT '{NaN}'::real[]::vector(1);
query error inf not allowed in vector
SELECT '{Infinity}'::real[]::vector(1);
query error -inf not allowed in vector
SELECT '{-Infinity}'::real[]::vector(1);
query error dimension
SELECT '{}'::real[]::vector(1);
query error cannot cast
SELECT '{{1}}'::real[][]::vector(1);
query T
SELECT '{1,2,3}'::double precision[]::vector(3);
----
[1,2,3]
query error expected 2 dimensions, not 3
SELECT '{1,2,3}'::double precision[]::vector(2);
query error out of range
SELECT '{4e38,-4e38}'::double precision[]::vector(2);
# Caveat: pgvector does not check underflow and returns 0 here.
query error out of range
SELECT '{1e-46,-1e-46}'::double precision[]::vector(2);