diff --git a/src/sparsevec.c b/src/sparsevec.c index 4a40339..335ebe0 100644 --- a/src/sparsevec.c +++ b/src/sparsevec.c @@ -291,6 +291,9 @@ sparsevec_in(PG_FUNCTION_ARGS) nnz++; } + while (sparsevec_isspace(*stringEnd)) + stringEnd++; + if (*stringEnd != '\0' && *stringEnd != '}') ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), diff --git a/test/expected/sparsevec_input.out b/test/expected/sparsevec_input.out index ce5d8d1..b27d205 100644 --- a/test/expected/sparsevec_input.out +++ b/test/expected/sparsevec_input.out @@ -4,10 +4,10 @@ SELECT '{1:1.5,3:3.5}/5'::sparsevec; {1:1.5,3:3.5}/5 (1 row) -SELECT '{1:1.5,3:3.5}/5'::sparsevec::vector; - vector +SELECT ' { 1 : 1.5 , 3 : 3.5 }/5 '::sparsevec; + sparsevec ----------------- - [1.5,0,3.5,0,0] + {1:1.5,3:3.5}/5 (1 row) SELECT ''::sparsevec; diff --git a/test/sql/sparsevec_input.sql b/test/sql/sparsevec_input.sql index 9414925..c85545d 100644 --- a/test/sql/sparsevec_input.sql +++ b/test/sql/sparsevec_input.sql @@ -1,5 +1,5 @@ SELECT '{1:1.5,3:3.5}/5'::sparsevec; -SELECT '{1:1.5,3:3.5}/5'::sparsevec::vector; +SELECT ' { 1 : 1.5 , 3 : 3.5 }/5 '::sparsevec; SELECT ''::sparsevec; SELECT '{'::sparsevec;