You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "godfrey he (JIRA)" <ji...@apache.org> on 2018/05/02 12:03:00 UTC
[jira] [Created] (CALCITE-2295) Correlated SubQuery with Project
will generate error plan
godfrey he created CALCITE-2295:
-----------------------------------
Summary: Correlated SubQuery with Project will generate error plan
Key: CALCITE-2295
URL: https://issues.apache.org/jira/browse/CALCITE-2295
Project: Calcite
Issue Type: Bug
Components: core
Affects Versions: 1.15.0
Reporter: godfrey he
Assignee: Julian Hyde
test case in *RelOptRulesTest.java*:
{code:java}
@Test public void testDecorrelateWithProject() throws Exception {
final String sql = "select sal,\n"
+ "exists (select * from emp_b where emp.deptno = emp_b.deptno)\n"
+ "from sales.emp";
checkSubQuery(sql).withLateDecorrelation(true).check();
}
{code}
after *SqlToRelConverter*, the plan is
{code:java}
LogicalProject(SAL=[$5], EXPR$1=[EXISTS({
LogicalFilter(condition=[=($cor0.DEPTNO, $7)])
LogicalTableScan(table=[[CATALOG, SALES, EMP_B]])
})])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
{code}
NOTES: *LogicalProject* does not have any *_variablesSet_* attributes.
the correct plan should be:
{code:java}
LogicalProject(SAL=[$5], EXPR$1=[EXISTS({
LogicalFilter(condition=[=($cor0.DEPTNO, $7)])
LogicalTableScan(table=[[CATALOG, SALES, EMP_B]])
})], variablesSet=[[$cor0]])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)