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. ...Robert -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers