Re: Support UPDATE table SET(*)=...
От | Merlin Moncure |
---|---|
Тема | Re: Support UPDATE table SET(*)=... |
Дата | |
Msg-id | CAHyXU0z1s_WHzpjDCiOTGgOYjgEa0a=vzQdNN7poyKtiMxxGig@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Support UPDATE table SET(*)=... (Atri Sharma <atri.jiit@gmail.com>) |
Ответы |
Re: Support UPDATE table SET(*)=...
Re: Support UPDATE table SET(*)=... Re: Support UPDATE table SET(*)=... |
Список | pgsql-hackers |
On Wed, Oct 15, 2014 at 3:48 AM, Atri Sharma <atri.jiit@gmail.com> wrote: > > > On Wednesday, October 15, 2014, Marti Raudsepp <marti@juffo.org> wrote: >> >> Hi >> >> On Wed, Oct 15, 2014 at 11:02 AM, Atri Sharma <atri.jiit@gmail.com> wrote: >> > Please find attached a patch which implements support for UPDATE table1 >> > SET(*)=... >> >> I presume you haven't read Tom Lane's proposal and discussion about >> multiple column assignment in UPDATE: >> http://www.postgresql.org/message-id/1783.1399054541@sss.pgh.pa.us >> (Assigning all columns was also discussed there) >> >> And there's a WIP patch: >> http://www.postgresql.org/message-id/20930.1402931841@sss.pgh.pa.us > > Thanks for the links, but this patch only targets SET(*) case, which, if I > understand correctly, the patch you mentioned doesn't directly handle (If I > understand correctly, the target of the two patches is different). Yeah -- in fact, there was some discussion about this exact case. This patch solves a very important problem: when doing record operations to move data between databases with identical schema there's currently no way to 'update' in a generic way without building out the entire field list via complicated and nasty dynamic SQL. I'm not sure about the proposed syntax though; it seems a little weird to me. Any particular reason why you couldn't have just done: UPDATE table1 SET * = a,b,c, ... also, UPDATE table1 t SET t = (SELECT (a,b,c)::t FROM...); seems cleaner than the proposed syntax for row assignment. Tom objected though IIRC. merlin
В списке pgsql-hackers по дате отправления: