You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ignite TC Bot (Jira)" <ji...@apache.org> on 2026/09/04 08:12:00 UTC

[jira] [Commented] (IGNITE-27822) Support recursive query for Calcite engine

    [ https://issues.apache.org/jira/browse/IGNITE-27822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18111462#comment-18111462 ] 

Ignite TC Bot commented on IGNITE-27822:
----------------------------------------

{panel:title=Branch: [pull/13479/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/13479/head] Base: [master] : New Tests (22)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Calcite SQL 2{color} [[tests 10|https://ci2.ignite.apache.org/viewLog.html?buildId=9324214]]
* {color:#013220}IgniteCalciteTestSuite2: RecursiveCtePlannerTest.testRecursiveDeltaPlan - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite2: RecursiveCtePlannerTest.testRecursiveCteWithPartitionedTable - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite2: RecursiveCtePlannerTest.testRecursiveCteWithReplicatedTable - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite2: RecursiveCtePlannerTest.testRecursiveCteWithMultipleSeedBranches - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite2: RecursiveCtePlannerTest.testRecursiveCteWithReplicatedIndexedTable - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite2: test_recursive_sequence.test - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite2: test_recursive_subquery.test - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite2: test_recursive_hierarchy.test - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite2: RecursiveCtePlannerTest.testNonDeterministicIndexScanIsNotMaterialized - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite2: RecursiveCtePlannerTest.testNonDeterministicTableScanIsNotMaterialized - PASSED{color}

{color:#00008b}Cache 13{color} [[tests 1|https://ci2.ignite.apache.org/viewLog.html?buildId=9324112]]
* {color:#013220}IgniteCacheTestSuite13: SystemViewCacheExpiryPolicyTest.testCacheViewExpiryPolicy[factory=javax.cache.configuration.FactoryBuilder$SingletonFactory@7d66e544, actual=SingletonFactory [expiryPlc=EternalExpiryPolicy [create=ETERNAL]]] - PASSED{color}

{color:#00008b}Calcite SQL 3{color} [[tests 11|https://ci2.ignite.apache.org/viewLog.html?buildId=9324215]]
* {color:#013220}IgniteCalciteTestSuite3: RecursiveCteIntegrationTest.testRecursionStopsWhenDeltaIsEmpty - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: RecursiveCteIntegrationTest.testEmployeeHierarchy - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: RecursiveCteIntegrationTest.testRecursiveCteWithDistinctUnionIsRejected - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: RecursiveCteIntegrationTest.testStateIsIsolatedBetweenSameNamedRecursiveCtes - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: RecursiveCteIntegrationTest.testRecursiveTermWithoutSelfReferenceAfterOptimization - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: RecursiveCteIntegrationTest.testIndependentNonDeterministicSubtreeIsEvaluatedForEveryIteration - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: MemoryQuotasIntegrationTest.testRecursiveDeltaIsAccountedForMemoryQuota - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: CalciteQueryProcessorPropertiesTest.testRecursiveCteIterationLimit - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: RecursiveCteIntegrationTest.testRecursiveTermIsNotExecutedWhenSeedIsEmpty - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: RecursiveCteIntegrationTest.testRecursiveTermWithMultipleSelfReferences - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: RecursiveCteIntegrationTest.testRecursiveCteWithMultipleRecursiveBranches - PASSED{color}
... and 0 new tests

{panel}
[TeamCity *--&gt; Run :: All* Results|https://ci2.ignite.apache.org/viewLog.html?buildId=9324248&amp;buildTypeId=IgniteTests24Java8_RunAll]
{color:#ffffff}tcbot-analysis-comment chainBuildId=9324248 rerunBuildIds=none{color}

> Support recursive query for Calcite engine
> ------------------------------------------
>
>                 Key: IGNITE-27822
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27822
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Vladislav Pyatkov
>            Assignee: Vladislav Pyatkov
>            Priority: Major
>              Labels: ignite-2
>         Attachments: RecursiveQueryTest.java
>
>          Time Spent: 3.5h
>  Remaining Estimate: 0h
>
> h3. Motivation
> Apache Calcite can parse, validate, and produce a logical plan for recursive CTEs using LogicalRepeatUnion, transient tables, and table spools. However, Ignite Calcite currently lacks the physical relational operators, planner rules, and runtime execution nodes required to execute such plans.
> As a result, valid hierarchical queries using {{WITH RECURSIVE}} cannot be executed by the Ignite Calcite engine.
> This task adds the first complete vertical slice of recursive CTE support.
> h3. Definition of done
> *  Supported {{WITH RECURSIVE ... UNION ALL}} queries execute through the Ignite Calcite engine.
> * Recursive state is isolated between separate CTE instances and separate queries.
> * Recursive delta memory is included in SQL query memory accounting.
> * Distributed source-table scans can feed coordinator-side recursion.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)