From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Merlin Moncure <mmoncure(at)gmail(dot)com> |
Cc: | Marko Tiikkaja <marko(at)joh(dot)to>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Supporting multiple column assignment in UPDATE (9.5 project) |
Date: | 2014-05-05 15:20:06 |
Message-ID: | CAFj8pRB+zw96YvGMbvBoCLbxZNRdgqsg4rwxv9ZVYOxeDBz05Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
2014-05-05 17:02 GMT+02:00 Merlin Moncure <mmoncure(at)gmail(dot)com>:
> On Sat, May 3, 2014 at 5:48 AM, Marko Tiikkaja <marko(at)joh(dot)to> wrote:
> > On 5/2/14, 10:10 PM, Merlin Moncure wrote:
> >>
> >> On Fri, May 2, 2014 at 3:03 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)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(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2014-05-05 15:28:21 | Re: 9.4 release notes |
Previous Message | Merlin Moncure | 2014-05-05 15:02:07 | Re: Supporting multiple column assignment in UPDATE (9.5 project) |