diff --git a/test/expected/cast.out b/test/expected/cast.out index f8e5091..e286531 100644 --- a/test/expected/cast.out +++ b/test/expected/cast.out @@ -221,6 +221,28 @@ SELECT '{}'::real[]::sparsevec; ERROR: sparsevec must have at least 1 dimension SELECT '{{1}}'::real[]::sparsevec; ERROR: array must be 1-D +SELECT '{1,0,2,0,3,0}'::double precision[]::sparsevec; + sparsevec +----------------- + {1:1,3:2,5:3}/6 +(1 row) + +SELECT '{1,0,2,0,3,0}'::double precision[]::sparsevec(6); + sparsevec +----------------- + {1:1,3:2,5:3}/6 +(1 row) + +SELECT '{1,0,2,0,3,0}'::double precision[]::sparsevec(5); +ERROR: expected 5 dimensions, not 6 +SELECT '{4e38,-4e38}'::double precision[]::sparsevec; +ERROR: infinite value not allowed in sparsevec +SELECT '{1e-46,-1e-46}'::double precision[]::sparsevec; + sparsevec +----------- + {}/2 +(1 row) + -- vector to array SELECT '[1,2,3]'::vector::real[]; float4 diff --git a/test/sql/cast.sql b/test/sql/cast.sql index 229ba06..8acfab9 100644 --- a/test/sql/cast.sql +++ b/test/sql/cast.sql @@ -66,6 +66,12 @@ SELECT '{-Infinity}'::real[]::sparsevec; SELECT '{}'::real[]::sparsevec; SELECT '{{1}}'::real[]::sparsevec; +SELECT '{1,0,2,0,3,0}'::double precision[]::sparsevec; +SELECT '{1,0,2,0,3,0}'::double precision[]::sparsevec(6); +SELECT '{1,0,2,0,3,0}'::double precision[]::sparsevec(5); +SELECT '{4e38,-4e38}'::double precision[]::sparsevec; +SELECT '{1e-46,-1e-46}'::double precision[]::sparsevec; + -- vector to array SELECT '[1,2,3]'::vector::real[];