Re: Possible regression in 'UPDATE ... SET (<column list>) = <row expression>' with just one single column/row value since v10

From: YasonTR <yasontr(at)protonmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: Possible regression in 'UPDATE ... SET (<column list>) = <row expression>' with just one single column/row value since v10
Date: 2017-10-24 14:55:10
Message-ID: gJQHKF6S1zCGkc_hq8S0neCD7N6R4frak1GgPvx8ETdKd4pWH3AgGarDw1Ic6hU1XgBoVeQ4WKOfnv7elm-rN3G1jwhOqyxI8IeounEc6v0=@protonmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi Tom,

I get your reference to the spec, but why is it working without ROW() when multiple columns are involved? For example: "UPDATE my_table SET (a, b) = (x, y)" works on v10 (afaik).

Thank you.

> -------- Original Message --------
> Subject: Re: [BUGS] Possible regression in 'UPDATE ... SET () = ' with just one single column/row value since v10
> Local Time: October 24, 2017 4:18 PM
> UTC Time: October 24, 2017 2:18 PM
> From: tgl(at)sss(dot)pgh(dot)pa(dot)us
> To: YasonTR <yasontr(at)protonmail(dot)com>
> pgsql-bugs(at)postgresql(dot)org <pgsql-bugs(at)postgresql(dot)org>
>
> YasonTR yasontr(at)protonmail(dot)com writes:
>
>> The following (odd) construction worked in pgv9.x: "UPDATE my_table SET (my_col) = (some value)". This no longer works in v10. It gives the error "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression". It looks like it only breaks when the column list just holds one single column.
>>
>> Yeah, IIRC this was an intentional change. The fact that the previous
>> coding allowed you to do that was a mistake, because per spec you really
>> need to supply a row value when you parenthesize the SET column list.
>> As of v10 it should work to write
>> UPDATE my_table SET (my_col) = ROW(some value)
>>
>> regards, tom lane
>>
>> --
>> Sent via pgsql-bugs mailing list (pgsql-bugs(at)postgresql(dot)org)
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgsql-bugs

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David G. Johnston 2017-10-24 15:07:45 Re: Possible regression in 'UPDATE ... SET (<column list>) = <row expression>' with just one single column/row value since v10
Previous Message Tom Lane 2017-10-24 14:18:40 Re: Possible regression in 'UPDATE ... SET (<column list>) = <row expression>' with just one single column/row value since v10