Re: Learning SQL: nested CTE and UNION

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Learning SQL: nested CTE and UNION
Дата
Msg-id 13313.1343756611@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Learning SQL: nested CTE and UNION  (Adam Mackler <adammackler@gmail.com>)
Список pgsql-novice
Adam Mackler <adammackler@gmail.com> writes:
> ... But this does not work:

> WITH outmost AS (
>   SELECT 1
>   UNION (WITH innermost as (SELECT 2)
>          SELECT * FROM innermost
>          UNION SELECT 3)
> )
> SELECT * FROM outmost;

> Result:
> ERROR:  relation "innermost" does not exist
> LINE 4:          SELECT * FROM innermost

This is a bug :-(.  The parse analysis code seems to think that WITH can
only be attached to the top level or a leaf-level SELECT within a set
operation tree; but the grammar follows the SQL standard which says
no such thing.  The WITH gets accepted, and attached to the
intermediate-level UNION which is where syntactically it should go,
and then it's entirely ignored during parse analysis.  Will see about
fixing it.

            regards, tom lane

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

Предыдущее
От: Adam Mackler
Дата:
Сообщение: Re: Learning SQL: nested CTE and UNION
Следующее
От: George McIlwaine
Дата:
Сообщение: postgres domain service account won't start the postgres service