diff --git a/src/halfvec.c b/src/halfvec.c index 2c1108b..9e8bb95 100644 --- a/src/halfvec.c +++ b/src/halfvec.c @@ -173,6 +173,10 @@ halfvec_in(PG_FUNCTION_ARGS) errdetail("Vector contents must start with \"[\"."))); str++; + + while (halfvec_isspace(*str)) + str++; + pt = strtok(str, ","); stringEnd = pt; diff --git a/src/vector.c b/src/vector.c index 38be7f6..6c1d604 100644 --- a/src/vector.c +++ b/src/vector.c @@ -197,6 +197,10 @@ vector_in(PG_FUNCTION_ARGS) errdetail("Vector contents must start with \"[\"."))); str++; + + while (vector_isspace(*str)) + str++; + pt = strtok(str, ","); stringEnd = pt; diff --git a/test/expected/halfvec_input.out b/test/expected/halfvec_input.out index a61d72b..cb3a852 100644 --- a/test/expected/halfvec_input.out +++ b/test/expected/halfvec_input.out @@ -96,9 +96,10 @@ LINE 1: SELECT '['::halfvec; ^ DETAIL: Unexpected end of input. SELECT '[ '::halfvec; -ERROR: invalid input syntax for type halfvec: "[ " +ERROR: malformed halfvec literal: "[ " LINE 1: SELECT '[ '::halfvec; ^ +DETAIL: Unexpected end of input. SELECT '[,'::halfvec; ERROR: malformed halfvec literal: "[," LINE 1: SELECT '[,'::halfvec; @@ -108,9 +109,8 @@ SELECT '[]'::halfvec; ERROR: halfvec must have at least 1 dimension LINE 1: SELECT '[]'::halfvec; ^ --- TODO fix error message SELECT '[ ]'::halfvec; -ERROR: invalid input syntax for type halfvec: "[ ]" +ERROR: halfvec must have at least 1 dimension LINE 1: SELECT '[ ]'::halfvec; ^ -- TODO fix error message diff --git a/test/expected/vector_input.out b/test/expected/vector_input.out index bb6e0d4..e9eb5f9 100644 --- a/test/expected/vector_input.out +++ b/test/expected/vector_input.out @@ -108,9 +108,10 @@ LINE 1: SELECT '['::vector; ^ DETAIL: Unexpected end of input. SELECT '[ '::vector; -ERROR: invalid input syntax for type vector: "[ " +ERROR: malformed vector literal: "[ " LINE 1: SELECT '[ '::vector; ^ +DETAIL: Unexpected end of input. SELECT '[,'::vector; ERROR: malformed vector literal: "[," LINE 1: SELECT '[,'::vector; @@ -120,9 +121,8 @@ SELECT '[]'::vector; ERROR: vector must have at least 1 dimension LINE 1: SELECT '[]'::vector; ^ --- TODO fix error message SELECT '[ ]'::vector; -ERROR: invalid input syntax for type vector: "[ ]" +ERROR: vector must have at least 1 dimension LINE 1: SELECT '[ ]'::vector; ^ -- TODO fix error message diff --git a/test/sql/halfvec_input.sql b/test/sql/halfvec_input.sql index 45a3831..b3ac850 100644 --- a/test/sql/halfvec_input.sql +++ b/test/sql/halfvec_input.sql @@ -20,7 +20,6 @@ SELECT '['::halfvec; SELECT '[ '::halfvec; SELECT '[,'::halfvec; SELECT '[]'::halfvec; --- TODO fix error message SELECT '[ ]'::halfvec; -- TODO fix error message SELECT '[,]'::vector; diff --git a/test/sql/vector_input.sql b/test/sql/vector_input.sql index 9ea98f9..e7bdf2d 100644 --- a/test/sql/vector_input.sql +++ b/test/sql/vector_input.sql @@ -22,7 +22,6 @@ SELECT '['::vector; SELECT '[ '::vector; SELECT '[,'::vector; SELECT '[]'::vector; --- TODO fix error message SELECT '[ ]'::vector; -- TODO fix error message SELECT '[,]'::vector;