From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
---|---|
To: | Rob McColl <rob(at)robmccoll(dot)com> |
Cc: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: PostgreSQL 10 parenthesized single-column updates can produce errors |
Date: | 2017-10-31 22:45:28 |
Message-ID: | CAKFQuwZcht7u6eV6CUFFw3unGphasTL5-Wce5NwPnekhw-vDtg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Oct 31, 2017 at 3:14 PM, Rob McColl <rob(at)robmccoll(dot)com> wrote:
>
>> I believe that this is not an intended change or behavior, but is instead
>> an unintentional side effect of 906bfcad7ba7cb3863fe0e2a7810be8e3cd84fbd
>> Improve handling of "UPDATE ... SET (column_list) = row_constructor". (
>> https://github.com/postgres/postgres/commit/906bfcad7ba7cb3
>> 863fe0e2a7810be8e3cd84fbd).
>>
>
At this point the intent of 906bfcad doesn't really matter - and given the
number of complaints in the month since v10 went live I'm tending to lean
toward bringing the pre-10 behavior back. There is no ambiguity involved
here and the breakage of existing applications seems considerably worse
than the technical oddity of allowing (val) to be interpreted as a
row_constructor in this situation. From a standards perspective we are
strictly more permissive so no new problem there.
On a related note, the 10.0 syntax guide is wrong, it needs to break out
the parenthesized single-column and multi-column variants separately:
Presently: ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [,
...] )
Basically one cannot specify only a single column_name AND omit ROW
It would have been nice if the syntax for that variant would have been:
( column_name, column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT },
{ expression | DEFAULT } [, ...] )
If the v10 behavior remains the above change should be made as well as
adding:
( column_name ) = ROW ( expression | DEFAULT )
If we revert 10 to the pre-10 behavior the existing syntax will work.
David J.
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2017-10-31 22:48:39 | Re: PostgreSQL 10 parenthesized single-column updates can produce errors |
Previous Message | Tomas Vondra | 2017-10-31 22:44:36 | Re: Re: PANIC: invalid index offnum: 186 when processing BRIN indexes in VACUUM |