Re: UPDATE SET (a,b,c) = (SELECT ...) versus rules - Mailing list pgsql-hackers

From Tom Lane
Subject Re: UPDATE SET (a,b,c) = (SELECT ...) versus rules
Date
Msg-id 9506.1402775332@sss.pgh.pa.us
Whole thread Raw
In response to Re: UPDATE SET (a,b,c) = (SELECT ...) versus rules  (Andres Freund <andres@2ndquadrant.com>)
Responses Re: UPDATE SET (a,b,c) = (SELECT ...) versus rules  (Andres Freund <andres@2ndquadrant.com>)
List pgsql-hackers
Andres Freund <andres@2ndquadrant.com> writes:
> Hi,
> On 2014-06-14 15:35:33 -0400, Tom Lane wrote:
>> Given that ON UPDATE rules are close to being a deprecated feature,
>> it doesn't seem appropriate to work harder than this; and frankly
>> I don't see how we could avoid multiple sub-select evaluations anyway,
>> if the NEW references are in WHERE or other odd places.
>> 
>> Another possible answer is to just throw a "not implemented" error;
>> but that doesn't seem terribly helpful, and I think it wouldn't save
>> a lot of code anyway.

> I vote for throwing an error. This would make the rules about how rules
> can be used safely even more confusing. I don't think anybody would be
> helped by that. If somebody wrote a halfway sane ON UPDATE rule
> (i.e. calling a function to do the dirty work) it wouldn't be sane
> anymore if somebody starts to use the new syntax...

Well, it wouldn't be "unsafe" (barring volatile functions in the UPDATE,
which are unsafe already).  It might be slow, but that's probably better
than failing.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: UPDATE SET (a,b,c) = (SELECT ...) versus rules
Next
From: Andres Freund
Date:
Subject: Re: UPDATE SET (a,b,c) = (SELECT ...) versus rules