Re: Supporting multiple column assignment in UPDATE (9.5 project)

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Supporting multiple column assignment in UPDATE (9.5 project)
Дата
Msg-id CAFj8pRB+zw96YvGMbvBoCLbxZNRdgqsg4rwxv9ZVYOxeDBz05Q@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Supporting multiple column assignment in UPDATE (9.5 project)  (Merlin Moncure <mmoncure@gmail.com>)
Ответы Re: Supporting multiple column assignment in UPDATE (9.5 project)
Список pgsql-hackers



2014-05-05 17:02 GMT+02:00 Merlin Moncure <mmoncure@gmail.com>:
On Sat, May 3, 2014 at 5:48 AM, Marko Tiikkaja <marko@joh.to> wrote:
> On 5/2/14, 10:10 PM, Merlin Moncure wrote:
>>
>> On Fri, May 2, 2014 at 3:03 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>>
>>> Meh.  Then you could have a query that works fine until you add a column
>>> to the table, and it stops working.  If nobody ever used column names
>>> identical to table names it'd be all right, but unfortunately people
>>> seem to do that a lot...
>>
>>
>> That's already the case with select statements
>
> I don't think that's true if you table-qualify your column references and
> don't use SELECT *.
>
>
>> and, if a user were
>> concerned about that, always have the option of aliasing the table as
>> nearly 100% of professional developers do:
>>
>> SELECT f FROM foo f;
>> etc.
>
>
> So e.g.:
>
>   UPDATE foo f SET f = ..;
>
> would resolve to the table, despite there being a column called "f"? That
> would break backwards compatibility.
>
> How about:
>
>   UPDATE foo SET ROW(foo) = (1,2,3);
>
> ISTM that this could be parsed unambiguously, though it's perhaps a bit
> ugly.

Hm, that's a bit too ugly: row(foo) in this case means 'do special
behavior X' whereas in all other cases it means make an anonymous
rowtype with one attribute of type 'foo'.

How about:
UPDATE foo SET (foo).* = (1,2,3);

It is looking little bit strange

I like previous proposal UPDATE foo SET foo = (1,2,3);

Pavel
 

merlin


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Merlin Moncure
Дата:
Сообщение: Re: Supporting multiple column assignment in UPDATE (9.5 project)
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: 9.4 release notes