On Tuesday 27 October 2009 18:02:53 Robert Haas wrote: > On Tue, Oct 27, 2009 at 10:50 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: > > In yesterday's discussions about FOR UPDATE there was some mention of > > making it not propagate into WITH subqueries: > > http://archives.postgresql.org/pgsql-hackers/2009-10/msg01540.php > > That is, given > > WITH w AS (SELECT * FROM foo) SELECT * FROM w, bar ... FOR UPDATE > > should foo be locked FOR UPDATE or not? The current behavior is that > > the code attempts to propagate FOR UPDATE into the WITH, and fails > > (the parser rejects it in some cases, and the planner in others --- > > AFAICT there is no case where it actually works). This is pretty > > useless, and it's also at odds with the philosophy we adopted that WITH > > queries execute independently of the primary query. So I think there > > was consensus to change it to have FOR UPDATE ignore WITH references. > > > > What I'm wondering at the moment is if there's any objection to > > back-patching the change into 8.4. Given the lack of any way to have a > > working query depend on this behavior, it doesn't seem that there could > > be a problem, but can anyone think of an objection I missed? > > If it doesn't have any effect anyway, what's the virtue of back-patching > it? > > It seems like we might want to throw an error rather than silently > ignoring it, but that obviously wouldn't be back-patchable. Because it makes it impossible to use SELECT FOR UPDATE with a CTE atm? Which very well can be considered a bug.
Andres -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers