Skip to content

Commit 20d503d

Browse files
committed
Revert "[CALCITE-6978] Translation to relational algebra of correlated query with COALESCE causes an assertion failure"
This reverts commit 60e1b72. Reverting as CALCITE-7035 highlighted issues for missing rewrites of calls without implementors/converlet This issue will be addressed by CALCITE-7012
1 parent eee8c89 commit 20d503d

File tree

4 files changed

+2
-33
lines changed

4 files changed

+2
-33
lines changed

core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1528,9 +1528,7 @@ private void handleOffsetFetch(@Nullable SqlNode offset, @Nullable SqlNode fetch
15281528
((SqlBasicCall) call).setOperator(overloads.get(0));
15291529
}
15301530
}
1531-
if (config.callRewrite()
1532-
// Do not rewrite calls that contain subqueries
1533-
&& !SqlUtil.containsCall(call, c -> c.getKind() == SqlKind.SELECT)) {
1531+
if (config.callRewrite()) {
15341532
node = call.getOperator().rewriteCall(this, call);
15351533
}
15361534
} else if (node instanceof SqlNodeList) {

core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1678,18 +1678,6 @@ public static void checkActualAndReferenceFiles() {
16781678
sql(sql).ok();
16791679
}
16801680

1681-
/** Test case for <a href="https://issues.apache.org/jira/browse/CALCITE-6978">[CALCITE-6978]
1682-
* Translation to relational algebra of correlated query with COALESCE causes an
1683-
* assertion failure</a>. */
1684-
@Test void testCoalesceSubquery() {
1685-
final String sql = "SELECT"
1686-
+ " deptno, "
1687-
+ " coalesce((select sum(empno) from emp "
1688-
+ " where deptno = emp.deptno limit 1), 0) as w "
1689-
+ "FROM dept";
1690-
sql(sql).ok();
1691-
}
1692-
16931681
@Test void testSampleBernoulliQuery() {
16941682
final String sql = "select * from (\n"
16951683
+ " select * from emp as e tablesample bernoulli(10) repeatable(1)\n"

core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -651,23 +651,6 @@ LogicalProject(EXPR$0=[CHAR_LENGTH('foo')])
651651
<![CDATA[
652652
LogicalProject(EXPR$0=[CASE(IS NOT NULL($3), CAST($3):INTEGER NOT NULL, 0)])
653653
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
654-
]]>
655-
</Resource>
656-
</TestCase>
657-
<TestCase name="testCoalesceSubquery">
658-
<Resource name="sql">
659-
<![CDATA[SELECT deptno, coalesce((select sum(empno) from emp where deptno = emp.deptno limit 1), 0) as w FROM dept]]>
660-
</Resource>
661-
<Resource name="plan">
662-
<![CDATA[
663-
LogicalProject(DEPTNO=[$0], W=[COALESCE($2, 0)])
664-
LogicalJoin(condition=[true], joinType=[left])
665-
LogicalTableScan(table=[[CATALOG, SALES, DEPT]])
666-
LogicalSort(fetch=[1])
667-
LogicalAggregate(group=[{}], EXPR$0=[SUM($0)])
668-
LogicalProject(EMPNO=[$0])
669-
LogicalFilter(condition=[=($7, $7)])
670-
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
671654
]]>
672655
</Resource>
673656
</TestCase>

core/src/test/resources/sql/sub-query.iq

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1134,7 +1134,7 @@ EnumerableCalc(expr#0..3=[{inputs}], ENAME=[$t1], DEEP2SAL=[$t3])
11341134
EnumerableTableScan(table=[[scott, EMP]])
11351135
EnumerableSort(sort0=[$0], dir0=[ASC])
11361136
EnumerableAggregate(group=[{0}], EXPR$0=[SUM($1)])
1137-
EnumerableCalc(expr#0..4=[{inputs}], expr#5=[0], expr#6=[COALESCE($t4, $t5)], expr#7=[+($t2, $t6)], MGR9=[$t1], $f0=[$t7])
1137+
EnumerableCalc(expr#0..4=[{inputs}], expr#5=[IS NOT NULL($t4)], expr#6=[0.00:DECIMAL(19, 2)], expr#7=[CASE($t5, $t4, $t6)], expr#8=[+($t2, $t7)], MGR9=[$t1], $f0=[$t8])
11381138
EnumerableMergeJoin(condition=[=($0, $3)], joinType=[left])
11391139
EnumerableCalc(expr#0..7=[{inputs}], expr#8=[IS NOT NULL($t3)], EMPNO=[$t0], MGR=[$t3], SAL=[$t5], $condition=[$t8])
11401140
EnumerableTableScan(table=[[scott, EMP]])

0 commit comments

Comments
 (0)