drill-dev mailing list archives

Review Request 28207: DRILL-1707: add drill's version of PushFilterPastProject rule to control when a filter can be pushed down

Date

Wed, 19 Nov 2014 02:46:46 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28207/
-----------------------------------------------------------
Review request for drill and Hanifi Gunes.
Repository: drill-git
Description
-------
DRILL-1707 is caused by a looping in the planner between PushProjectPastFilter and PushFilterPastProject
rules. This started happening after the DrillPushProjectPastJoin rule was added because with
that rule we are pushing more expressions and that further triggers the other 2 rules.
In this fix, we don't push Filter past Project if the Project is producing ITEM expression
(this is done as part of a new rule). Currently, the fix does not check if the Filter conditions
are referencing the ITEM expression and does not split the filter condition into components
that can be pushed. That is marked as a TODO.
As part of this patch, I enabled a few tests in TestProjectPushDown and TestExampleQueries
that were marked Ignored earlier due to the looping issue.
Diffs
-----
exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillPushFilterPastProjectRule.java
PRE-CREATION
exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillRuleSets.java f4481cb
exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java bb411e7
exec/java-exec/src/test/java/org/apache/drill/TestProjectPushDown.java 6e998a3
Diff: https://reviews.apache.org/r/28207/diff/
Testing
-------
unit tests in TestProjectPushDown, TestExampleQueries and the failing mondrian query in DRILL-1707
Thanks,
Aman Sinha