This is an automated email from the ASF dual-hosted git repository.
xiedeyantu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/main by this push:
new fcf881b50d Re-enable [CALCITE-685] Correlated scalar sub-query in
SELECT clause throws
fcf881b50d is described below
commit fcf881b50d057c90f351d2bfd76a9f244d8cf846
Author: Zhen Chen <[email protected]>
AuthorDate: Wed Jul 1 20:20:54 2026 +0800
Re-enable [CALCITE-685] Correlated scalar sub-query in SELECT clause throws
Signed-off-by: xiedeyantu <[email protected]>
---
.../java/org/apache/calcite/test/JdbcTest.java | 33 ++++++++++++++++------
1 file changed, 24 insertions(+), 9 deletions(-)
diff --git a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
index dbeb4f7a46..8ebc5b87c9 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -5500,7 +5500,6 @@ private CalciteAssert.AssertQuery predicate(String foo) {
/** Test case for
* <a href="https://issues.apache.org/jira/browse/CALCITE-685">[CALCITE-685]
* Correlated scalar sub-query in SELECT clause throws</a>. */
- @Disabled("[CALCITE-685]")
@Test void testCorrelatedScalarSubQuery() {
final String sql = "select e.department_id, sum(e.employee_id),\n"
+ " ( select sum(e2.employee_id)\n"
@@ -5508,19 +5507,35 @@ private CalciteAssert.AssertQuery predicate(String foo)
{
+ " where e.department_id = e2.department_id\n"
+ " )\n"
+ "from employee e\n"
- + "group by e.department_id\n";
- final String explain = "EnumerableNestedLoopJoin(condition=[true],
joinType=[left])\n"
- + " EnumerableAggregate(group=[{7}], EXPR$1=[$SUM0($0)])\n"
- + " EnumerableTableScan(table=[[foodmart2, employee]])\n"
- + " EnumerableAggregate(group=[{}], EXPR$0=[SUM($0)])\n"
- + " EnumerableCalc(expr#0..16=[{inputs}], expr#17=[$cor0],
expr#18=[$t17.department_id], expr#19=[=($t18, $t7)], employee_id=[$t0],
department_id=[$t7], $condition=[$t19])\n"
- + " EnumerableTableScan(table=[[foodmart2, employee]])\n";
+ + "group by e.department_id\n"
+ + "order by e.department_id";
+ final String explain = "EnumerableCalc(expr#0..3=[{inputs}],
proj#0..1=[{exprs}], "
+ + "EXPR$0=[$t3])\n"
+ + " EnumerableMergeJoin(condition=[=($0, $2)], joinType=[left])\n"
+ + " EnumerableSort(sort0=[$0], dir0=[ASC])\n"
+ + " EnumerableAggregate(group=[{7}], EXPR$1=[$SUM0($0)])\n"
+ + " EnumerableTableScan(table=[[foodmart2, employee]])\n"
+ + " EnumerableSort(sort0=[$0], dir0=[ASC])\n"
+ + " EnumerableAggregate(group=[{7}], EXPR$0=[$SUM0($0)])\n"
+ + " EnumerableTableScan(table=[[foodmart2, employee]])\n";
CalciteAssert.that()
.with(CalciteAssert.Config.FOODMART_CLONE)
.with(Lex.JAVA)
.query(sql)
.explainContains(explain)
- .returnsCount(0);
+ .returnsOrdered(
+ "department_id=1; EXPR$1=75; EXPR$2=75",
+ "department_id=2; EXPR$1=160; EXPR$2=160",
+ "department_id=3; EXPR$1=126; EXPR$2=126",
+ "department_id=4; EXPR$1=87; EXPR$2=87",
+ "department_id=5; EXPR$1=398; EXPR$2=398",
+ "department_id=11; EXPR$1=44166; EXPR$2=44166",
+ "department_id=14; EXPR$1=8859; EXPR$2=8859",
+ "department_id=15; EXPR$1=133341; EXPR$2=133341",
+ "department_id=16; EXPR$1=160636; EXPR$2=160636",
+ "department_id=17; EXPR$1=137346; EXPR$2=137346",
+ "department_id=18; EXPR$1=165879; EXPR$2=165879",
+ "department_id=19; EXPR$1=17670; EXPR$2=17670");
}
@Test void testLeftJoin() {