jian he <jian.universal...@gmail.com> writes:
> On Mon, Jul 8, 2024 at 10:42 PM Tom Lane <t...@sss.pgh.pa.us> wrote:
>> One possibility could be
>> ...
>> that is, only say "Missing "]"" if there's no ']' anywhere, and
>> otherwise just say the dimensions are wrong.  This could be fooled
>> by a ']' that's part of some string in the data, but even then the
>> errdetail isn't wrong.
>> 
>> Or we could just say "Array dimensions have invalid syntax."
>> unconditionally.

> please check attached.

Meh.  This just replaces one possibly-off-point error message
with a different one that will be off-point in a different set
of cases.  I think we should simply reduce the specificity of
the message.

BTW, I think we have pretty much the same issue with respect
to the check for "=" later on.  For instance, if someone
is confused about whether to insert commas:

=# select '[1:1],[1:2]={{3,4}}'::int[];
ERROR:  malformed array literal: "[1:1],[1:2]={{3,4}}"
LINE 1: select  '[1:1],[1:2]={{3,4}}'::int[];
                ^
DETAIL:  Missing "=" after array dimensions.

Here again, the problem is not a missing "=", it's invalid
syntax somewhere before that.

Another thing we could consider doing here (and similarly
for your original case) is

DETAIL:  Expected "=" not "," after array dimensions.

The advantage of this is that it provides a little more
clarity as to exactly where things went wrong.

                        regards, tom lane


Reply via email to