[
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)