Re: top-level DML under CTEs

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: top-level DML under CTEs
Дата
Msg-id 19924.1284505345@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: top-level DML under CTEs  (Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>)
Ответы Re: top-level DML under CTEs  (Hitoshi Harada <umi.tanuki@gmail.com>)
Список pgsql-hackers
Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi> writes:
> 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.

> I don't think this is a huge problem in real life, but if someone thinks 
> otherwise, I think we could just error out if the lists have a different 
> RECURSIVE definition.

Wrong is wrong.  Doesn't matter whether it's "a huge problem in real life".

Why is it so difficult to do this correctly?
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bernd Helmle
Дата:
Сообщение: Re: ALTER TABLE...ALTER COLUMN vs inheritance
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Pseudoconstant quals versus the join removal patch