Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.16.0
-
None
-
None
-
None
Description
Filter predicates are not inferred (in RelMdPredicates#getPredicates(), for example by using
JoinPushTransitivePredicatesRule), in case when above LogicalProject has dynamic star.
Query example:
SELECT * FROM sales.emp d JOIN (SELECT * FROM sales.emp WHERE deptno = 4) e ON e.deptno = d.deptno
By using JoinPushTransitivePredicatesRule the expected result is:
LogicalProject(**=[$0])
LogicalJoin(condition=[=($16, $7)], joinType=[inner])
LogicalFilter(condition=[=($7, 4)])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
LogicalProject(**=[$0])
LogicalFilter(condition=[=($7, 4)])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
and actual result:
LogicalProject(**=[$0])
LogicalJoin(condition=[=($16, $7)], joinType=[inner])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
LogicalProject(**=[$0])
LogicalFilter(condition=[=($7, 4)])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
Attachments
Issue Links
- Is contained by
-
DRILL-6350 Umbrella jira which tracks issues connected to Transitive Closure Inference
- Open
- relates to
-
DRILL-6173 Support transitive closure during filter push down and partition pruning
- Resolved