diff --git a/test/expected/cast.out b/test/expected/cast.out index 9231677..269ebdb 100644 --- a/test/expected/cast.out +++ b/test/expected/cast.out @@ -28,6 +28,26 @@ SELECT ARRAY[1,2,3]::numeric[]::vector; [1,2,3] (1 row) +SELECT '[1,2,3]'::vector::real[]; + float4 +--------- + {1,2,3} +(1 row) + +SELECT '{1,2,3}'::real[]::vector; + vector +--------- + [1,2,3] +(1 row) + +SELECT '{1,2,3}'::real[]::vector(3); + vector +--------- + [1,2,3] +(1 row) + +SELECT '{1,2,3}'::real[]::vector(2); +ERROR: expected 2 dimensions, not 3 SELECT '{NULL}'::real[]::vector; ERROR: array must not contain nulls SELECT '{NaN}'::real[]::vector; @@ -40,12 +60,6 @@ SELECT '{}'::real[]::vector; ERROR: vector must have at least 1 dimension SELECT '{{1}}'::real[]::vector; ERROR: array must be 1-D -SELECT '[1,2,3]'::vector::real[]; - float4 ---------- - {1,2,3} -(1 row) - SELECT '[1,2,3]'::vector::halfvec; halfvec --------- @@ -82,6 +96,20 @@ SELECT '[1,2,3]'::halfvec::vector(3); SELECT '[1,2,3]'::halfvec::vector(2); ERROR: expected 2 dimensions, not 3 +SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec; + sparsevec +----------------- + {2:1.5,4:3.5}/5 +(1 row) + +SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec(5); + sparsevec +----------------- + {2:1.5,4:3.5}/5 +(1 row) + +SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec(4); +ERROR: expected 4 dimensions, not 5 SELECT '{2:1.5,4:3.5}/5'::sparsevec::vector; vector ----------------- @@ -98,20 +126,6 @@ SELECT '{1:1.5,3:3.5}/5'::sparsevec::vector(4); ERROR: expected 4 dimensions, not 5 SELECT '{}/16001'::sparsevec::vector; ERROR: vector cannot have more than 16000 dimensions -SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec; - sparsevec ------------------ - {2:1.5,4:3.5}/5 -(1 row) - -SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec(5); - sparsevec ------------------ - {2:1.5,4:3.5}/5 -(1 row) - -SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec(4); -ERROR: expected 4 dimensions, not 5 SELECT array_agg(n)::vector FROM generate_series(1, 16001) n; ERROR: vector cannot have more than 16000 dimensions SELECT array_to_vector(array_agg(n), 16001, false) FROM generate_series(1, 16001) n; diff --git a/test/sql/cast.sql b/test/sql/cast.sql index 4fccafb..4e8dcca 100644 --- a/test/sql/cast.sql +++ b/test/sql/cast.sql @@ -3,13 +3,18 @@ SELECT ARRAY[1.0,2.0,3.0]::vector; SELECT ARRAY[1,2,3]::float4[]::vector; SELECT ARRAY[1,2,3]::float8[]::vector; SELECT ARRAY[1,2,3]::numeric[]::vector; + +SELECT '[1,2,3]'::vector::real[]; + +SELECT '{1,2,3}'::real[]::vector; +SELECT '{1,2,3}'::real[]::vector(3); +SELECT '{1,2,3}'::real[]::vector(2); SELECT '{NULL}'::real[]::vector; SELECT '{NaN}'::real[]::vector; SELECT '{Infinity}'::real[]::vector; SELECT '{-Infinity}'::real[]::vector; SELECT '{}'::real[]::vector; SELECT '{{1}}'::real[]::vector; -SELECT '[1,2,3]'::vector::real[]; SELECT '[1,2,3]'::vector::halfvec; SELECT '[1,2,3]'::vector::halfvec(3); @@ -21,15 +26,15 @@ SELECT '[1,2,3]'::halfvec::vector; SELECT '[1,2,3]'::halfvec::vector(3); SELECT '[1,2,3]'::halfvec::vector(2); +SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec; +SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec(5); +SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec(4); + SELECT '{2:1.5,4:3.5}/5'::sparsevec::vector; SELECT '{1:1.5,3:3.5}/5'::sparsevec::vector(5); SELECT '{1:1.5,3:3.5}/5'::sparsevec::vector(4); SELECT '{}/16001'::sparsevec::vector; -SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec; -SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec(5); -SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec(4); - SELECT array_agg(n)::vector FROM generate_series(1, 16001) n; SELECT array_to_vector(array_agg(n), 16001, false) FROM generate_series(1, 16001) n;