Skip site navigation (1) Skip section navigation (2)

Re: top-level DML under CTEs

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Hitoshi Harada <umi(dot)tanuki(at)gmail(dot)com>
Cc: Marko Tiikkaja <marko(dot)tiikkaja(at)cs(dot)helsinki(dot)fi>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: top-level DML under CTEs
Date: 2010-09-15 03:22:44
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-hackerspgsql-rrreviewers
Hitoshi Harada <umi(dot)tanuki(at)gmail(dot)com> writes:
> 2010/9/15 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
>> Why is it so difficult to do this correctly?

> Because INSERT INTO ... (SELECT|VALUES) is already a collection of
> kludge (as comments say). It was possible to parse the two WITHs
> separately, but it results in ambiguous naming issue;
> parseWithClause() asserts there's only one WITH clause in the Stmt and
> detects duplicated CTE name in it.

Well, I would think that the no-duplication rule applies to each WITH
list separately, not both together.  If you do something like

with t1 as (select * from foo)
  select * from
    (with t2 as (select * from foo)
       select * from t1, t2) ss;

there's no expectation that the WITH clauses can't both define the same

			regards, tom lane

In response to


pgsql-hackers by date

Next:From: Robert HaasDate: 2010-09-15 03:22:58
Subject: Re: knngist - 0.8
Previous:From: Tom LaneDate: 2010-09-15 02:47:10
Subject: Re: elog during holding a spinlock is safe?

pgsql-rrreviewers by date

Next:From: Hitoshi HaradaDate: 2010-09-15 04:38:17
Subject: Re: top-level DML under CTEs
Previous:From: Hitoshi HaradaDate: 2010-09-15 01:15:12
Subject: Re: top-level DML under CTEs

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group