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

Reply via email to