Вот документация: http://download-east.oracle.com/docs/cd/B12037_01/server.101/b10759/queries003.htmOracle иерархическая выполнения запроса шаги
Вот порядок выполнения описывает:
- Объединение, если он присутствует, оценивается первых, является ли объединение указано в ОТ или с предложением WHERE .
- Условие CONNECT BY - оценено.
- Оцениваются любые оставшиеся предложения WHERE предикаты.
Мой вопрос в том, что часть 1. сверху применяется к вложенным запросам. Например, если у меня есть:
select * from foo
where exists (select 'x' from bar
where bar.foo_id = foo.foo_id
start with bar.id is null
connect by prior bar.id = bar.parent_id)
ли присоединиться где положение получить выполняются немедленно, или, так как foo.foo_id в этом контексте фактически одно значение, является оно выполнено в части 3, где остальные выполняются однозначные условные ограничения?