Improve error messages for malformed array input strings.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 2 Dec 2014 23:23:16 +0000 (18:23 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 2 Dec 2014 23:23:27 +0000 (18:23 -0500)
commit475aedd1ef0c0f9fc9d675dd2286380d14804975
treeb237c4f2504714f8dc8ee3fca32754ef0a106abc
parent0fd38e13706e6bd4b2a4ce4e0570d0aa4ad65345
Improve error messages for malformed array input strings.

Make the error messages issued by array_in() uniformly follow the style
ERROR: malformed array literal: "actual input string"
DETAIL: specific complaint here
and rewrite many of the specific complaints to be clearer.

The immediate motivation for doing this is a complaint from Josh Berkus
that json_to_record() produced an unintelligible error message when
dealing with an array item, because it tries to feed the JSON-format
array value to array_in().  Really it ought to be smart enough to
perform JSON-to-Postgres array conversion, but that's a future feature
not a bug fix.  In the meantime, this change is something we agreed
we could back-patch into 9.4, and it should help de-confuse things a bit.
src/backend/utils/adt/arrayfuncs.c
src/pl/plperl/expected/plperl_array.out
src/test/regress/expected/arrays.out