Re: top-level DML under CTEs

Hitoshi Harada <umi.tanuki@gmail.com>

From: Hitoshi Harada <umi.tanuki@gmail.com>
To: Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-09-15T01:04:06Z
Lists: pgsql-hackers
2010/9/15 Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>:
> On 2010-09-14 10:51 PM, Tom Lane wrote:
>> My recollection is that whether a CTE is marked RECURSIVE or not affects
>> its scope of visibility, so that confusing the two cases can result in
>> flat-out incorrect parser behavior.
>
> The worst I can think of is:
>
> CREATE TABLE foo(a int);
>
> WITH t AS (SELECT * FROM foo)
> INSERT INTO bar
> WITH RECURSIVE foo (SELECT 1 AS a)
> SELECT * FROM t;
>
> t will actually be populated with the results of the CTE, not the table foo.

Hmmm, that's true. But it seems unrelated to RECURSIVE option, right?

Regards,



-- 
Hitoshi Harada