Re: top-level DML under CTEs
Merlin Moncure <mmoncure@gmail.com>
From: Merlin Moncure <mmoncure@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Hitoshi Harada <umi.tanuki@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-09-13T18:43:18Z
Lists: pgsql-hackers
On Mon, Sep 13, 2010 at 9:20 AM, Robert Haas <robertmhaas@gmail.com> wrote: > On Mon, Sep 13, 2010 at 9:15 AM, Hitoshi Harada <umi.tanuki@gmail.com> wrote: >> The patch attached is based on the one rejected at the last CF for 9.0 >> last year. >> >> http://archives.postgresql.org/message-id/16303.1266023203@sss.pgh.pa.us >> >> This patch implements the feature that allows top-level DMLs under CTE >> WITH clause. For example: >> >> WITH t AS (SELECT * FROM x) >> UPDATE y SET val = t.val FROM t >> WHERE y.key = t.key; >> >> This feature is part of writeable CTEs proposed by David Fetter originally. > > Thanks for pursuing this. I think this will be a useful feature if we > can get it committed, and plus David Fetter will be very, very happy. > :-) Just to be clear, the attached patch is missing the part of the wCTE that allows queries of the form: WITH foo AS (DELETE * FROM bar RETURNING *) <any query using foo> IOW, your CTE query has to be a select. This is still highly useful however. The patch itself looks very clean after a quick glance (which is all I can offer ATM unfortunately). merlin