diff --git a/test/expected/cast.out b/test/expected/cast.out index 80541fe..9231677 100644 --- a/test/expected/cast.out +++ b/test/expected/cast.out @@ -52,16 +52,14 @@ SELECT '[1,2,3]'::vector::halfvec; [1,2,3] (1 row) -SELECT '[1,2,3]'::halfvec::vector; - vector +SELECT '[1,2,3]'::vector::halfvec(3); + halfvec --------- [1,2,3] (1 row) SELECT '[1,2,3]'::vector::halfvec(2); ERROR: expected 2 dimensions, not 3 -SELECT '[1,2,3]'::halfvec::vector(2); -ERROR: expected 2 dimensions, not 3 SELECT '[65520]'::vector::halfvec; ERROR: infinite value not allowed in halfvec SELECT '[1e-8]'::vector::halfvec; @@ -70,20 +68,50 @@ SELECT '[1e-8]'::vector::halfvec; [0] (1 row) +SELECT '[1,2,3]'::halfvec::vector; + vector +--------- + [1,2,3] +(1 row) + +SELECT '[1,2,3]'::halfvec::vector(3); + vector +--------- + [1,2,3] +(1 row) + +SELECT '[1,2,3]'::halfvec::vector(2); +ERROR: expected 2 dimensions, not 3 SELECT '{2:1.5,4:3.5}/5'::sparsevec::vector; vector ----------------- [0,1.5,0,3.5,0] (1 row) +SELECT '{1:1.5,3:3.5}/5'::sparsevec::vector(5); + vector +----------------- + [1.5,0,3.5,0,0] +(1 row) + +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 '{}/16001'::sparsevec::vector; -ERROR: vector cannot have more than 16000 dimensions +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/expected/sparsevec_input.out b/test/expected/sparsevec_input.out index d5e48b2..f1e4f8d 100644 --- a/test/expected/sparsevec_input.out +++ b/test/expected/sparsevec_input.out @@ -88,11 +88,3 @@ LINE 1: SELECT '{2:1}/1'::sparsevec; ^ SELECT '{}/1'::sparsevec(2); ERROR: expected 2 dimensions, not 1 -SELECT '{1:1.5,3:3.5}/5'::sparsevec::vector(5); - vector ------------------ - [1.5,0,3.5,0,0] -(1 row) - -SELECT '{1:1.5,3:3.5}/5'::sparsevec::vector(4); -ERROR: expected 4 dimensions, not 5 diff --git a/test/sql/cast.sql b/test/sql/cast.sql index 40c9b08..4fccafb 100644 --- a/test/sql/cast.sql +++ b/test/sql/cast.sql @@ -12,16 +12,24 @@ SELECT '{{1}}'::real[]::vector; SELECT '[1,2,3]'::vector::real[]; SELECT '[1,2,3]'::vector::halfvec; -SELECT '[1,2,3]'::halfvec::vector; +SELECT '[1,2,3]'::vector::halfvec(3); SELECT '[1,2,3]'::vector::halfvec(2); -SELECT '[1,2,3]'::halfvec::vector(2); SELECT '[65520]'::vector::halfvec; SELECT '[1e-8]'::vector::halfvec; +SELECT '[1,2,3]'::halfvec::vector; +SELECT '[1,2,3]'::halfvec::vector(3); +SELECT '[1,2,3]'::halfvec::vector(2); + SELECT '{2:1.5,4:3.5}/5'::sparsevec::vector; -SELECT '[0,1.5,0,3.5,0]'::vector::sparsevec; +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; diff --git a/test/sql/sparsevec_input.sql b/test/sql/sparsevec_input.sql index 7757dd3..e188d9a 100644 --- a/test/sql/sparsevec_input.sql +++ b/test/sql/sparsevec_input.sql @@ -24,5 +24,3 @@ SELECT '{0:1}/1'::sparsevec; SELECT '{2:1}/1'::sparsevec; SELECT '{}/1'::sparsevec(2); -SELECT '{1:1.5,3:3.5}/5'::sparsevec::vector(5); -SELECT '{1:1.5,3:3.5}/5'::sparsevec::vector(4);