Re: top-level DML under CTEs - Mailing list pgsql-hackers

From Marko Tiikkaja
Subject Re: top-level DML under CTEs
Date
Msg-id 4C9A9853.2070609@cs.helsinki.fi
Whole thread Raw
In response to Re: top-level DML under CTEs  (Hitoshi Harada <umi.tanuki@gmail.com>)
Responses Re: top-level DML under CTEs
List pgsql-hackers
On 2010-09-17 4:48 AM, Hitoshi Harada wrote:
> 2010/9/15 Hitoshi Harada<umi.tanuki@gmail.com>:
>> Well, I didn't know it is allowed. That would look like the way to go.
>
> I made changes to the previous version, so that it avoids to resolve
> CTE name duplication.

This patch still doesn't address the issue Tom raised here:
http://archives.postgresql.org/pgsql-hackers/2010-09/msg00753.php

For WITH .. INSERT .. WITH .. SELECT ..; this patch works OK, but not so 
much for VALUES:

=# CREATE RULE barrule AS ON UPDATE TO bar DO INSTEAD
-# WITH RECURSIVE t AS (SELECT -1)
-# INSERT INTO bar
-# WITH t AS (SELECT 1)
-# VALUES((SELECT * FROM t));
CREATE RULE

=# \d bar      Table "public.bar" Column |  Type   | Modifiers
--------+---------+----------- a      | integer |
Rules:    barrule AS    ON UPDATE TO bar DO INSTEAD  WITH RECURSIVE t AS (         SELECT 1        ), t AS (
SELECT(-1)        ) INSERT INTO bar (a)  WITH RECURSIVE t AS (                 SELECT 1                ), t AS (
        SELECT (-1)                )
 
  VALUES (( SELECT t."?column?"           FROM t))


Regards,
Marko Tiikkaja


pgsql-hackers by date:

Previous
From: "Joshua D. Drake"
Date:
Subject: Re: Configuring synchronous replication
Next
From: "Joshua D. Drake"
Date:
Subject: Re: Configuring synchronous replication