From 2a89ec92becee9c9df61005f40407ba65cabd682 Mon Sep 17 00:00:00 2001 From: nobigo Date: Tue, 21 Jan 2025 12:27:31 +0800 Subject: [PATCH] [CALCITE-2295] Correlated SubQuery with Project will generate error plan --- .../apache/calcite/test/RelOptRulesTest.java | 10 +++++ .../apache/calcite/test/RelOptRulesTest.xml | 38 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java b/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java index e7d33252634c..b02a929e675e 100644 --- a/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java +++ b/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java @@ -9116,6 +9116,16 @@ public interface Config extends RelRule.Config { .check(); } + /** Test case for + * [CALCITE-2295] + * Correlated SubQuery with Project will generate error plan. */ + @Test public void testDecorrelationWithProject() throws Exception { + final String sql = "select sal,\n" + + "exists (select * from emp_b where emp.deptno = emp_b.deptno)\n" + + "from sales.emp"; + sql(sql).withSubQueryRules().withLateDecorrelate(true).check(); + } + /** Test case for * [CALCITE-3296] * Decorrelator gives empty result after decorrelating sort rel with diff --git a/core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml b/core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml index 5e8739f5df5d..038ca94a5702 100644 --- a/core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml +++ b/core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml @@ -2483,6 +2483,44 @@ LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$ LogicalAggregate(group=[{0}]) LogicalProject(DEPTNO=[$7]) LogicalTableScan(table=[[CATALOG, SALES, EMP]]) +]]> + + + + + + + + + + + + + +