Add test case for [CALCITE-685]

Currently throws AssertionError: "Correlation variable $cor0 should be defined" 
in EnumerableRelImplementor.getCorrelVariableGetter.


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/ee289e4f
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/ee289e4f
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/ee289e4f

Branch: refs/heads/master
Commit: ee289e4f42ad9e3a36d9c80a01cf3df86393bd8f
Parents: 34997ad
Author: Julian Hyde <[email protected]>
Authored: Mon Feb 13 17:56:56 2017 -0800
Committer: Julian Hyde <[email protected]>
Committed: Wed Feb 22 22:17:37 2017 -0800

----------------------------------------------------------------------
 .../java/org/apache/calcite/test/JdbcTest.java  | 26 ++++++++++++++++++++
 1 file changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/ee289e4f/core/src/test/java/org/apache/calcite/test/JdbcTest.java
----------------------------------------------------------------------
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 cda40c3..28fcf00 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -4779,6 +4779,32 @@ public class JdbcTest {
         .returnsCount(599);
   }
 
+  /** Test case for
+   * <a href="https://issues.apache.org/jira/browse/CALCITE-685";>[CALCITE-685]
+   * Correlated scalar sub-query in SELECT clause throws</a>. */
+  @Ignore("[CALCITE-685]")
+  @Test public void testCorrelatedScalarSubQuery() throws SQLException {
+    final String sql = "select e.department_id, sum(e.employee_id),\n"
+        + "       ( select sum(e2.employee_id)\n"
+        + "         from  employee e2\n"
+        + "         where e.department_id = e2.department_id\n"
+        + "       )\n"
+        + "from employee e\n"
+        + "group by e.department_id\n";
+    final String explain = "EnumerableJoin(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";
+    CalciteAssert.that()
+        .with(CalciteAssert.Config.FOODMART_CLONE)
+        .with(Lex.JAVA)
+        .query(sql)
+        .explainContains(explain)
+        .returnsCount(0);
+  }
+
   @Test public void testLeftJoin() {
     CalciteAssert.hr()
         .query("select e.\"deptno\", d.\"deptno\"\n"

Reply via email to