Re: Common Table Expressions (WITH RECURSIVE) patch

Поиск
Список
Период
Сортировка
От Gregory Stark
Тема Re: Common Table Expressions (WITH RECURSIVE) patch
Дата
Msg-id 87y7221jm9.fsf@oxford.xeocode.com
обсуждение исходный текст
Ответ на Common Table Expressions (WITH RECURSIVE) patch  (Jeff Davis <pgsql@j-davis.com>)
Ответы Re: Common Table Expressions (WITH RECURSIVE) patch
Список pgsql-hackers
Jeff Davis <pgsql@j-davis.com> writes:

> * Mutual Recursion:
>
>   with recursive
>     foo(i) as (values(1) union all select i+1 from bar where i < 10),
>     bar(i) as (values(1) union all select i+1 from foo where i < 10)
>   select * from foo;
>   ERROR:  mutual recursive call is not supported
>
>   The standard allows mutual recursion.

This seems to be a point of confusion. I originally read the standard and
concluded that mutual recursion was an optional feature. Itagaki-san showed me
a copy of the spec where it seemed there was a clear blanket prohibition on
mutually recursive queries and in fact anything but simple linearly expandable
queries. I wonder if there are different versions of the spec floating around
on this point.

Take a second look at your spec and read on to where it defines "linear" and
"expandable". If it doesn't define those terms then it's definitely different
from what I read. If it does, read on to see what it does with them. The main
reason to define them appeared to be to use them to say that supporting mutual
recursion is not required.

--  Gregory Stark EnterpriseDB          http://www.enterprisedb.com Ask me about EnterpriseDB's PostGIS support!


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: A few thoughts on the plan inval extension patch
Следующее
От: Jeff Davis
Дата:
Сообщение: Re: Common Table Expressions (WITH RECURSIVE) patch