diff --git a/src/sparsevec.c b/src/sparsevec.c index 335ebe0..7c1bd6d 100644 --- a/src/sparsevec.c +++ b/src/sparsevec.c @@ -310,6 +310,9 @@ sparsevec_in(PG_FUNCTION_ARGS) stringEnd++; + while (sparsevec_isspace(*stringEnd)) + stringEnd++; + if (*stringEnd != '/') ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), @@ -318,6 +321,9 @@ sparsevec_in(PG_FUNCTION_ARGS) stringEnd++; + while (sparsevec_isspace(*stringEnd)) + stringEnd++; + /* Use similar logic as int2vectorin */ errno = 0; pt = stringEnd; diff --git a/test/expected/sparsevec_input.out b/test/expected/sparsevec_input.out index b27d205..79ee1fc 100644 --- a/test/expected/sparsevec_input.out +++ b/test/expected/sparsevec_input.out @@ -4,7 +4,7 @@ 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; +SELECT ' { 1 : 1.5 , 3 : 3.5 } / 5 '::sparsevec; sparsevec ----------------- {1:1.5,3:3.5}/5 diff --git a/test/sql/sparsevec_input.sql b/test/sql/sparsevec_input.sql index c85545d..802348f 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; +SELECT ' { 1 : 1.5 , 3 : 3.5 } / 5 '::sparsevec; SELECT ''::sparsevec; SELECT '{'::sparsevec;