From 7252374fa8f01ce30fc0a9378fab4b3e9a273ea1 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Sat, 15 Aug 2026 08:59:03 -0700 Subject: [PATCH] Added more tests for sparsevec casts [skip ci] --- test/expected/cast.out | 22 ++++++++++++++++++++++ test/sql/cast.sql | 6 ++++++ 2 files changed, 28 insertions(+) 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[];