Thomas Rebele created CALCITE-4404:
--------------------------------------
Summary: Missing LogicalCorrelate when using
FILTER_SUB_QUERY_TO_CORRELATE for nested subqueries
Key: CALCITE-4404
URL: https://issues.apache.org/jira/browse/CALCITE-4404
Project: Calcite
Issue Type: Bug
Reporter: Thomas Rebele
The Programs#subQuery seem to not support nested subqueries.
When applying the rule to the following plan
{code}
LogicalFilter(condition=[EXISTS({
LogicalJoin(condition=[=($0, $5)], joinType=[left])
LogicalFilter(condition=[=($cor0.empid, $0)])
LogicalTableScan(table=[[hr, emps]])
LogicalFilter(condition=[EXISTS({
LogicalFilter(condition=[=($cor1.empid, $0)])
LogicalTableScan(table=[[hr, emps]])
})])
LogicalTableScan(table=[[hr, emps]])
})])
LogicalTableScan(table=[[hr, emps]])
{code}
it gets transformed into
{code}
LogicalProject(empid=[$0], deptno=[$1], name=[$2], salary=[$3], commission=[$4])
LogicalJoin(condition=[true], joinType=[inner])
LogicalTableScan(table=[[hr, emps]])
LogicalAggregate(group=[{0}])
LogicalProject(i=[true])
LogicalJoin(condition=[=($0, $5)], joinType=[left])
LogicalFilter(condition=[=($cor0.empid, $0)])
LogicalTableScan(table=[[hr, emps]])
LogicalProject(empid=[$0], deptno=[$1], name=[$2], salary=[$3],
commission=[$4])
LogicalCorrelate(correlation=[$cor1], joinType=[inner],
requiredColumns=[{0}])
LogicalTableScan(table=[[hr, emps]])
LogicalAggregate(group=[{0}])
LogicalProject(i=[true])
LogicalFilter(condition=[=($cor1.empid, $0)])
LogicalTableScan(table=[[hr, emps]])
{code}
The $cor0 has no associated LogicalCorrelate. My guess is that the first
LogicalJoin should probably be a LogicalCorrelate.
Please note that this is a minimal example. The plan has been obtained by
simplifying a larger plan and _has no meaning by itself._
--
This message was sent by Atlassian Jira
(v8.3.4#803005)