On 2010-09-17 4:48 AM, Hitoshi Harada wrote:
2010/9/15 Hitoshi Harada<umi.tan...@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
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers