Re: Support UPDATE table SET(*)=... - Mailing list pgsql-hackers

From Jim Nasby
Subject Re: Support UPDATE table SET(*)=...
Date
Msg-id 55245BEF.6050607@BlueTreble.com
Whole thread Raw
In response to Re: Support UPDATE table SET(*)=...  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-hackers
On 4/7/15 2:00 PM, Alvaro Herrera wrote:
> Tom Lane wrote:
>
>> I spent a fair amount of time cleaning this patch up to get it into
>> committable shape, but as I was working on the documentation I started
>> to lose enthusiasm for it, because I was having a hard time coming up
>> with compelling examples.  The originally proposed motivation was
>>
>>>> It solves the problem of doing UPDATE from a record variable of the same
>>>> type as the table e.g. update foo set (*) = (select foorec.*) where ...;
>>
>> but it feels to me that this is not actually a very good solution to that
>> problem --- even granting that the problem needs to be solved, a claim
>> that still requires some justification IMO.
>
> How about an UPDATE ran inside a plpgsql function, which is using a row
> variable of the table type?  You could assign values to individual
> columns of q row variable, and run the multicolumn UPDATE last.

Along similar lines, I've often wanted something akin to *, but allowing 
finer control over what you got. Generally when I want this it's because 
I really do want everything (as in, don't want to re-code a bunch of 
stuff if a column is added), but perhaps not the surrogate key field. Or 
I want everything, but rename some field to something else.

Basically, another way to do what Alvaro is suggesting (though, the 
ability to rename something is new...)

If we had that ability I think UPDATE * would become a lot more useful.
-- 
Jim Nasby, Data Architect, Blue Treble Consulting
Data in Trouble? Get it in Treble! http://BlueTreble.com



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: rare avl shutdown slowness (related to signal handling)
Next
From: Jim Nasby
Date:
Subject: Re: Replication identifiers, take 4