[ 
https://issues.apache.org/jira/browse/CALCITE-7815?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladislav Pyatkov reassigned CALCITE-7815:
------------------------------------------

    Assignee: Vladislav Pyatkov

> Support the SQL-standard SEARCH clause in recursive CTEs
> --------------------------------------------------------
>
>                 Key: CALCITE-7815
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7815
>             Project: Calcite
>          Issue Type: New Feature
>          Components: core
>            Reporter: Vladislav Pyatkov
>            Assignee: Vladislav Pyatkov
>            Priority: Major
>
> Discussing and implementing the SQL-standard _SEARCH DEPTH FIRST_ and _SEARCH 
> BREADTH FIRST_ clauses in recursive common table expressions.
> _SEARCH_ adds an ordering column to the CTE result. The enclosing query can 
> order by that column to obtain depth-first or breadth-first output; the 
> clause does not itself guarantee the physical evaluation order.
> Example:
> {code:sql}
> WITH RECURSIVE
>   edges(src, dst) AS (
>     VALUES ('A', 'B'), ('A', 'C'), ('B', 'D')
>   ),
>   walk(node) AS (
>     VALUES ('A')
>     UNION ALL
>     SELECT e.dst
>     FROM walk w JOIN edges e ON e.src = w.node
>   )
>   SEARCH DEPTH FIRST BY node SET traversal_order
> SELECT node
> FROM walk
> ORDER BY traversal_order;
> {code}
> Expected output: A, B, D, C. Replacing _DEPTH FIRST_ with _BREADTH FIRST_ 
> should produce A, B, C, D.
> The work should cover parsing, validation, and execution.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to