Re: UPDATE SET (a,b,c) = (SELECT ...) versus rules

From: Jim Nasby <jim(at)nasby(dot)net>
To: Andres Freund <andres(at)2ndquadrant(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: UPDATE SET (a,b,c) = (SELECT ...) versus rules
Date: 2014-06-15 00:27:03
Message-ID: 539CE857.3030103@nasby.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 6/14/14, 3:51 PM, Andres Freund wrote:
>> Hm. But you might as well use a trigger, no? Is anyone likely to
>> >actually be doing such a thing?
> I don't think anybody is likely to do such a thing on an actual table,
> but INSTEAD OF for views is pretty new. For a long time rules were the
> the only way to implement updatable views (including any form of row
> level security).
>
>> >It's conceivable that we could optimize the special case of NEW.*,
>> >especially if it appears in the rule query's targetlist. But it's
>> >trouble I don't really care to undertake ...
> I think it's fine to just throw an error.

If there was a showstopper to moving forward with rule support I think it'd be OK to throw our hands in the air, but that's not the case here.

I'm in favor of doing the substitution, just like we do today with RULES, warts and all. We already warn people against using rules and that they're very difficult to get correct, so I don't think double eval of an expression should surprise anyone.
--
Jim C. Nasby, Data Architect jim(at)nasby(dot)net
512.569.9461 (cell) http://jim.nasby.net

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2014-06-15 00:39:27 Re: UPDATE SET (a,b,c) = (SELECT ...) versus rules
Previous Message Kevin Grittner 2014-06-14 23:56:44 delta relations in AFTER triggers