[jira] [Commented] (CALCITE-1382) ClassCastException in JDBC Adapter
[ https://issues.apache.org/jira/browse/CALCITE-1382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17248106#comment-17248106 ] Julian Hyde commented on CALCITE-1382: -- Agreed. I'll add the test case in the next few days, then mark this resolved. Anyone have any guesses which change fixed this problem? > ClassCastException in JDBC Adapter > -- > > Key: CALCITE-1382 > URL: https://issues.apache.org/jira/browse/CALCITE-1382 > Project: Calcite > Issue Type: Bug > Components: core >Affects Versions: 1.9.0 > Environment: This bug was detected using a postgresql database and > the calcite version 1.9.0. >Reporter: Miguel Oliveira >Assignee: Julian Hyde >Priority: Major > Labels: adapters, jdbc > Fix For: 1.27.0 > > > This query: > {code} > SELECT count(*) FROM (SELECT count(emp.empno) `Count Emp`, dept.dname > `Department Name` FROM Calcite.emp emp JOIN Calcite.dept dept ON emp.deptno = > dept.deptno JOIN Calcite.salgrade salgrade ON emp.comm = salgrade.hisal WHERE > dept.dname LIKE '%O%' GROUP BY emp.deptno, dept.dname) > {code} > generates a ClassCastException: > "org.apache.calcite.adapter.jdbc.JdbcRules$JdbcJoin cannot be cast to > org.apache.calcite.adapter.enumerable.EnumerableRel". > The plan is the following: > {code} > [TABLE, #ID {PLAN=EnumerableAggregate(group=[{}], EXPR$0=[COUNT()]) > EnumerableAggregate(group=[{2, 4}]) > JdbcJoin(condition=[=($1, $0)], joinType=[inner]) > JdbcProject(hisal=[$2]) > JdbcTableScan(table=[[Calcite, salgrade]]) > JdbcJoin(condition=[=($1, $2)], joinType=[inner]) > JdbcProject(comm=[$6], deptno=[$7]) > JdbcTableScan(table=[[Calcite, emp]]) > JdbcProject(deptno=[$0], dname=[$1]) > JdbcFilter(condition=[LIKE($1, '%O%')]) > JdbcTableScan(table=[[Calcite, dept]]) > , }] > {code} > Runnable test: > {code} > /** Test case for > * https://issues.apache.org/jira/browse/CALCITE-1382;>[CALCITE-1382] > * ClassCastException in JDBC adapter. */ > @org.junit.Test > public void testJoinPlan3() throws DataSourceManagerException { > final String sql = "SELECT count(*) FROM (SELECT count(emp.empno) `Count > Emp`, dept.dname `Department Name`\n" > + "FROM emp emp JOIN dept dept ON emp.deptno = dept.deptno\n" > + "JOIN salgrade salgrade ON emp.comm = salgrade.hisal\n" > + "WHERE dept.dname LIKE '%A%' GROUP BY emp.deptno, dept.dname)"; > final String expected = "SELECT COUNT(*) FROM (\n" + > "SELECT count(\"emp\".empno) AS \"Count Emp\", \"dept\".dname AS > \"Department Name\"\n" + > "FROM emp AS \"emp\"\n" + > "INNER JOIN (\n" + > "SELECT deptno, dname\n" + > "FROM dept\n" + > "WHERE dname LIKE '%A%'\n" + > ") AS \"dept\" ON \"emp\".deptno = \"dept\".deptno\n" + > "INNER JOIN (\n" + > "SELECT hisal \n" + > "FROM salgrade \n" + > ") AS \"salgrade\" ON \"emp\".comm = \"salgrade\".hisal " + > "GROUP BY \"emp\".deptno, \"dept\".dname" + > ") AS \"t\""; > sql(sql) > .schema(CalciteAssert.SchemaSpec.JDBC_SCOTT) > .ok(expected); > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (CALCITE-1382) ClassCastException in JDBC Adapter
[ https://issues.apache.org/jira/browse/CALCITE-1382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17247731#comment-17247731 ] Zhen Wang commented on CALCITE-1382: verified that this is no longer an issue with latest master. the query is now returning `EXPR$0=1\n` which looks reasonable. propose to close this in future release. > ClassCastException in JDBC Adapter > -- > > Key: CALCITE-1382 > URL: https://issues.apache.org/jira/browse/CALCITE-1382 > Project: Calcite > Issue Type: Bug > Components: core >Affects Versions: 1.9.0 > Environment: This bug was detected using a postgresql database and > the calcite version 1.9.0. >Reporter: Miguel Oliveira >Priority: Major > Labels: adapters, jdbc > > This query: > {code} > SELECT count(*) FROM (SELECT count(emp.empno) `Count Emp`, dept.dname > `Department Name` FROM Calcite.emp emp JOIN Calcite.dept dept ON emp.deptno = > dept.deptno JOIN Calcite.salgrade salgrade ON emp.comm = salgrade.hisal WHERE > dept.dname LIKE '%O%' GROUP BY emp.deptno, dept.dname) > {code} > generates a ClassCastException: > "org.apache.calcite.adapter.jdbc.JdbcRules$JdbcJoin cannot be cast to > org.apache.calcite.adapter.enumerable.EnumerableRel". > The plan is the following: > {code} > [TABLE, #ID {PLAN=EnumerableAggregate(group=[{}], EXPR$0=[COUNT()]) > EnumerableAggregate(group=[{2, 4}]) > JdbcJoin(condition=[=($1, $0)], joinType=[inner]) > JdbcProject(hisal=[$2]) > JdbcTableScan(table=[[Calcite, salgrade]]) > JdbcJoin(condition=[=($1, $2)], joinType=[inner]) > JdbcProject(comm=[$6], deptno=[$7]) > JdbcTableScan(table=[[Calcite, emp]]) > JdbcProject(deptno=[$0], dname=[$1]) > JdbcFilter(condition=[LIKE($1, '%O%')]) > JdbcTableScan(table=[[Calcite, dept]]) > , }] > {code} > Runnable test: > {code} > /** Test case for > * https://issues.apache.org/jira/browse/CALCITE-1382;>[CALCITE-1382] > * ClassCastException in JDBC adapter. */ > @org.junit.Test > public void testJoinPlan3() throws DataSourceManagerException { > final String sql = "SELECT count(*) FROM (SELECT count(emp.empno) `Count > Emp`, dept.dname `Department Name`\n" > + "FROM emp emp JOIN dept dept ON emp.deptno = dept.deptno\n" > + "JOIN salgrade salgrade ON emp.comm = salgrade.hisal\n" > + "WHERE dept.dname LIKE '%A%' GROUP BY emp.deptno, dept.dname)"; > final String expected = "SELECT COUNT(*) FROM (\n" + > "SELECT count(\"emp\".empno) AS \"Count Emp\", \"dept\".dname AS > \"Department Name\"\n" + > "FROM emp AS \"emp\"\n" + > "INNER JOIN (\n" + > "SELECT deptno, dname\n" + > "FROM dept\n" + > "WHERE dname LIKE '%A%'\n" + > ") AS \"dept\" ON \"emp\".deptno = \"dept\".deptno\n" + > "INNER JOIN (\n" + > "SELECT hisal \n" + > "FROM salgrade \n" + > ") AS \"salgrade\" ON \"emp\".comm = \"salgrade\".hisal " + > "GROUP BY \"emp\".deptno, \"dept\".dname" + > ") AS \"t\""; > sql(sql) > .schema(CalciteAssert.SchemaSpec.JDBC_SCOTT) > .ok(expected); > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (CALCITE-1382) ClassCastException in JDBC Adapter
[ https://issues.apache.org/jira/browse/CALCITE-1382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15550670#comment-15550670 ] Julian Hyde commented on CALCITE-1382: -- This isn't going to be ready for 1.10. > ClassCastException in JDBC Adapter > -- > > Key: CALCITE-1382 > URL: https://issues.apache.org/jira/browse/CALCITE-1382 > Project: Calcite > Issue Type: Bug > Components: core >Affects Versions: 1.9.0 > Environment: This bug was detected using a postgresql database and > the calcite version 1.9.0. >Reporter: Miguel Oliveira >Assignee: Julian Hyde > Labels: adapters, jdbc > > This query: > {code} > SELECT count(*) FROM (SELECT count(emp.empno) `Count Emp`, dept.dname > `Department Name` FROM Calcite.emp emp JOIN Calcite.dept dept ON emp.deptno = > dept.deptno JOIN Calcite.salgrade salgrade ON emp.comm = salgrade.hisal WHERE > dept.dname LIKE '%O%' GROUP BY emp.deptno, dept.dname) > {code} > generates a ClassCastException: > "org.apache.calcite.adapter.jdbc.JdbcRules$JdbcJoin cannot be cast to > org.apache.calcite.adapter.enumerable.EnumerableRel". > The plan is the following: > {code} > [TABLE, #ID {PLAN=EnumerableAggregate(group=[{}], EXPR$0=[COUNT()]) > EnumerableAggregate(group=[{2, 4}]) > JdbcJoin(condition=[=($1, $0)], joinType=[inner]) > JdbcProject(hisal=[$2]) > JdbcTableScan(table=[[Calcite, salgrade]]) > JdbcJoin(condition=[=($1, $2)], joinType=[inner]) > JdbcProject(comm=[$6], deptno=[$7]) > JdbcTableScan(table=[[Calcite, emp]]) > JdbcProject(deptno=[$0], dname=[$1]) > JdbcFilter(condition=[LIKE($1, '%O%')]) > JdbcTableScan(table=[[Calcite, dept]]) > , }] > {code} > Runnable test: > {code} > /** Test case for > * https://issues.apache.org/jira/browse/CALCITE-1382;>[CALCITE-1382] > * ClassCastException in JDBC adapter. */ > @org.junit.Test > public void testJoinPlan3() throws DataSourceManagerException { > final String sql = "SELECT count(*) FROM (SELECT count(emp.empno) `Count > Emp`, dept.dname `Department Name`\n" > + "FROM emp emp JOIN dept dept ON emp.deptno = dept.deptno\n" > + "JOIN salgrade salgrade ON emp.comm = salgrade.hisal\n" > + "WHERE dept.dname LIKE '%A%' GROUP BY emp.deptno, dept.dname)"; > final String expected = "SELECT COUNT(*) FROM (\n" + > "SELECT count(\"emp\".empno) AS \"Count Emp\", \"dept\".dname AS > \"Department Name\"\n" + > "FROM emp AS \"emp\"\n" + > "INNER JOIN (\n" + > "SELECT deptno, dname\n" + > "FROM dept\n" + > "WHERE dname LIKE '%A%'\n" + > ") AS \"dept\" ON \"emp\".deptno = \"dept\".deptno\n" + > "INNER JOIN (\n" + > "SELECT hisal \n" + > "FROM salgrade \n" + > ") AS \"salgrade\" ON \"emp\".comm = \"salgrade\".hisal " + > "GROUP BY \"emp\".deptno, \"dept\".dname" + > ") AS \"t\""; > sql(sql) > .schema(CalciteAssert.SchemaSpec.JDBC_SCOTT) > .ok(expected); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CALCITE-1382) ClassCastException in JDBC Adapter
[ https://issues.apache.org/jira/browse/CALCITE-1382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15533570#comment-15533570 ] Julian Hyde commented on CALCITE-1382: -- No. > ClassCastException in JDBC Adapter > -- > > Key: CALCITE-1382 > URL: https://issues.apache.org/jira/browse/CALCITE-1382 > Project: Calcite > Issue Type: Bug > Components: core >Affects Versions: 1.9.0 > Environment: This bug was detected using a postgresql database and > the calcite version 1.9.0. >Reporter: Miguel Oliveira >Assignee: Julian Hyde > Labels: adapters, jdbc > Fix For: 1.10.0 > > > This query: > {code} > SELECT count(*) FROM (SELECT count(emp.empno) `Count Emp`, dept.dname > `Department Name` FROM Calcite.emp emp JOIN Calcite.dept dept ON emp.deptno = > dept.deptno JOIN Calcite.salgrade salgrade ON emp.comm = salgrade.hisal WHERE > dept.dname LIKE '%O%' GROUP BY emp.deptno, dept.dname) > {code} > generates a ClassCastException: > "org.apache.calcite.adapter.jdbc.JdbcRules$JdbcJoin cannot be cast to > org.apache.calcite.adapter.enumerable.EnumerableRel". > The plan is the following: > {code} > [TABLE, #ID {PLAN=EnumerableAggregate(group=[{}], EXPR$0=[COUNT()]) > EnumerableAggregate(group=[{2, 4}]) > JdbcJoin(condition=[=($1, $0)], joinType=[inner]) > JdbcProject(hisal=[$2]) > JdbcTableScan(table=[[Calcite, salgrade]]) > JdbcJoin(condition=[=($1, $2)], joinType=[inner]) > JdbcProject(comm=[$6], deptno=[$7]) > JdbcTableScan(table=[[Calcite, emp]]) > JdbcProject(deptno=[$0], dname=[$1]) > JdbcFilter(condition=[LIKE($1, '%O%')]) > JdbcTableScan(table=[[Calcite, dept]]) > , }] > {code} > Runnable test: > {code} > /** Test case for > * https://issues.apache.org/jira/browse/CALCITE-1382;>[CALCITE-1382] > * ClassCastException in JDBC adapter. */ > @org.junit.Test > public void testJoinPlan3() throws DataSourceManagerException { > final String sql = "SELECT count(*) FROM (SELECT count(emp.empno) `Count > Emp`, dept.dname `Department Name`\n" > + "FROM emp emp JOIN dept dept ON emp.deptno = dept.deptno\n" > + "JOIN salgrade salgrade ON emp.comm = salgrade.hisal\n" > + "WHERE dept.dname LIKE '%A%' GROUP BY emp.deptno, dept.dname)"; > final String expected = "SELECT COUNT(*) FROM (\n" + > "SELECT count(\"emp\".empno) AS \"Count Emp\", \"dept\".dname AS > \"Department Name\"\n" + > "FROM emp AS \"emp\"\n" + > "INNER JOIN (\n" + > "SELECT deptno, dname\n" + > "FROM dept\n" + > "WHERE dname LIKE '%A%'\n" + > ") AS \"dept\" ON \"emp\".deptno = \"dept\".deptno\n" + > "INNER JOIN (\n" + > "SELECT hisal \n" + > "FROM salgrade \n" + > ") AS \"salgrade\" ON \"emp\".comm = \"salgrade\".hisal " + > "GROUP BY \"emp\".deptno, \"dept\".dname" + > ") AS \"t\""; > sql(sql) > .schema(CalciteAssert.SchemaSpec.JDBC_SCOTT) > .ok(expected); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CALCITE-1382) ClassCastException in JDBC Adapter
[ https://issues.apache.org/jira/browse/CALCITE-1382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15533543#comment-15533543 ] Miguel Oliveira commented on CALCITE-1382: -- [~julianhyde] Have you any updates on this issue? Thanks. > ClassCastException in JDBC Adapter > -- > > Key: CALCITE-1382 > URL: https://issues.apache.org/jira/browse/CALCITE-1382 > Project: Calcite > Issue Type: Bug > Components: core >Affects Versions: 1.9.0 > Environment: This bug was detected using a postgresql database and > the calcite version 1.9.0. >Reporter: Miguel Oliveira >Assignee: Julian Hyde > Labels: adapters, jdbc > Fix For: 1.10.0 > > > This query: > {code} > SELECT count(*) FROM (SELECT count(emp.empno) `Count Emp`, dept.dname > `Department Name` FROM Calcite.emp emp JOIN Calcite.dept dept ON emp.deptno = > dept.deptno JOIN Calcite.salgrade salgrade ON emp.comm = salgrade.hisal WHERE > dept.dname LIKE '%O%' GROUP BY emp.deptno, dept.dname) > {code} > generates a ClassCastException: > "org.apache.calcite.adapter.jdbc.JdbcRules$JdbcJoin cannot be cast to > org.apache.calcite.adapter.enumerable.EnumerableRel". > The plan is the following: > {code} > [TABLE, #ID {PLAN=EnumerableAggregate(group=[{}], EXPR$0=[COUNT()]) > EnumerableAggregate(group=[{2, 4}]) > JdbcJoin(condition=[=($1, $0)], joinType=[inner]) > JdbcProject(hisal=[$2]) > JdbcTableScan(table=[[Calcite, salgrade]]) > JdbcJoin(condition=[=($1, $2)], joinType=[inner]) > JdbcProject(comm=[$6], deptno=[$7]) > JdbcTableScan(table=[[Calcite, emp]]) > JdbcProject(deptno=[$0], dname=[$1]) > JdbcFilter(condition=[LIKE($1, '%O%')]) > JdbcTableScan(table=[[Calcite, dept]]) > , }] > {code} > Runnable test: > {code} > /** Test case for > * https://issues.apache.org/jira/browse/CALCITE-1382;>[CALCITE-1382] > * ClassCastException in JDBC adapter. */ > @org.junit.Test > public void testJoinPlan3() throws DataSourceManagerException { > final String sql = "SELECT count(*) FROM (SELECT count(emp.empno) `Count > Emp`, dept.dname `Department Name`\n" > + "FROM emp emp JOIN dept dept ON emp.deptno = dept.deptno\n" > + "JOIN salgrade salgrade ON emp.comm = salgrade.hisal\n" > + "WHERE dept.dname LIKE '%A%' GROUP BY emp.deptno, dept.dname)"; > final String expected = "SELECT COUNT(*) FROM (\n" + > "SELECT count(\"emp\".empno) AS \"Count Emp\", \"dept\".dname AS > \"Department Name\"\n" + > "FROM emp AS \"emp\"\n" + > "INNER JOIN (\n" + > "SELECT deptno, dname\n" + > "FROM dept\n" + > "WHERE dname LIKE '%A%'\n" + > ") AS \"dept\" ON \"emp\".deptno = \"dept\".deptno\n" + > "INNER JOIN (\n" + > "SELECT hisal \n" + > "FROM salgrade \n" + > ") AS \"salgrade\" ON \"emp\".comm = \"salgrade\".hisal " + > "GROUP BY \"emp\".deptno, \"dept\".dname" + > ") AS \"t\""; > sql(sql) > .schema(CalciteAssert.SchemaSpec.JDBC_SCOTT) > .ok(expected); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CALCITE-1382) ClassCastException in JDBC Adapter
[ https://issues.apache.org/jira/browse/CALCITE-1382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15516897#comment-15516897 ] Julian Hyde commented on CALCITE-1382: -- Got it. I've pushed a branch with this test case: https://github.com/julianhyde/calcite/tree/1382-jdbc-class-cast. > ClassCastException in JDBC Adapter > -- > > Key: CALCITE-1382 > URL: https://issues.apache.org/jira/browse/CALCITE-1382 > Project: Calcite > Issue Type: Bug > Components: core >Affects Versions: 1.9.0 > Environment: This bug was detected using a postgresql database and > the calcite version 1.9.0. >Reporter: Miguel Oliveira >Assignee: Julian Hyde > Labels: adapters, jdbc > Fix For: 1.10.0 > > > This query: > {code} > SELECT count(*) FROM (SELECT count(emp.empno) `Count Emp`, dept.dname > `Department Name` FROM Calcite.emp emp JOIN Calcite.dept dept ON emp.deptno = > dept.deptno JOIN Calcite.salgrade salgrade ON emp.comm = salgrade.hisal WHERE > dept.dname LIKE '%O%' GROUP BY emp.deptno, dept.dname) > {code} > generates a ClassCastException: > "org.apache.calcite.adapter.jdbc.JdbcRules$JdbcJoin cannot be cast to > org.apache.calcite.adapter.enumerable.EnumerableRel". > The plan is the following: > {code} > [TABLE, #ID {PLAN=EnumerableAggregate(group=[{}], EXPR$0=[COUNT()]) > EnumerableAggregate(group=[{2, 4}]) > JdbcJoin(condition=[=($1, $0)], joinType=[inner]) > JdbcProject(hisal=[$2]) > JdbcTableScan(table=[[Calcite, salgrade]]) > JdbcJoin(condition=[=($1, $2)], joinType=[inner]) > JdbcProject(comm=[$6], deptno=[$7]) > JdbcTableScan(table=[[Calcite, emp]]) > JdbcProject(deptno=[$0], dname=[$1]) > JdbcFilter(condition=[LIKE($1, '%O%')]) > JdbcTableScan(table=[[Calcite, dept]]) > , }] > {code} > Runnable test: > {code} > /** Test case for > * https://issues.apache.org/jira/browse/CALCITE-1382;>[CALCITE-1382] > * ClassCastException in JDBC adapter. */ > @org.junit.Test > public void testJoinPlan3() throws DataSourceManagerException { > final String sql = "SELECT count(*) FROM (SELECT count(emp.empno) `Count > Emp`, dept.dname `Department Name`\n" > + "FROM emp emp JOIN dept dept ON emp.deptno = dept.deptno\n" > + "JOIN salgrade salgrade ON emp.comm = salgrade.hisal\n" > + "WHERE dept.dname LIKE '%A%' GROUP BY emp.deptno, dept.dname)"; > final String expected = "SELECT COUNT(*) FROM (\n" + > "SELECT count(\"emp\".empno) AS \"Count Emp\", \"dept\".dname AS > \"Department Name\"\n" + > "FROM emp AS \"emp\"\n" + > "INNER JOIN (\n" + > "SELECT deptno, dname\n" + > "FROM dept\n" + > "WHERE dname LIKE '%A%'\n" + > ") AS \"dept\" ON \"emp\".deptno = \"dept\".deptno\n" + > "INNER JOIN (\n" + > "SELECT hisal \n" + > "FROM salgrade \n" + > ") AS \"salgrade\" ON \"emp\".comm = \"salgrade\".hisal " + > "GROUP BY \"emp\".deptno, \"dept\".dname" + > ") AS \"t\""; > sql(sql) > .schema(CalciteAssert.SchemaSpec.JDBC_SCOTT) > .ok(expected); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)