[ https://issues.apache.org/jira/browse/DRILL-4201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15062688#comment-15062688 ]
ASF GitHub Bot commented on DRILL-4201: --------------------------------------- GitHub user jinfengni opened a pull request: https://github.com/apache/drill/pull/305 DRILL-4201 : Allow partial filter to be pushed down project for bette… …r performance. Partial filter pushdown has performance benefits because: 1) enable partition pruning, if the pushed down involves partitioning columns, 2) allow the filter to be applied in upper stream. You can merge this pull request into a Git repository by running: $ git pull https://github.com/jinfengni/incubator-drill DRILL-4201 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/drill/pull/305.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #305 ---- commit 68203ad035f65d1708ce228df432d5b23f4af3ba Author: Jinfeng Ni <j...@apache.org> Date: 2015-12-12T00:00:13Z DRILL-4201 : Allow partial filter to be pushed down project for better performance. Partial filter pushdown has performance benefits because: 1) enable partition pruning, if the pushed down involves partitioning columns, 2) allow the filter to be applied in upper stream. ---- > DrillPushFilterPastProject should allow partial filter pushdown. > ----------------------------------------------------------------- > > Key: DRILL-4201 > URL: https://issues.apache.org/jira/browse/DRILL-4201 > Project: Apache Drill > Issue Type: Bug > Components: Query Planning & Optimization > Reporter: Jinfeng Ni > Assignee: Jinfeng Ni > Fix For: 1.5.0 > > > Currently, DrillPushFilterPastProjectRule will stop pushing the filter down, > if the filter itself has ITEM or FLATTEN function, or its input reference is > referring to an ITEM or FLATTEN function. However, in case that the filter is > a conjunction of multiple sub-filters, some of them refer to ITEM or FLATTEN > but the other not, then we should allow partial filter to be pushed down. For > instance, > WHERE partition_col > 10 and flatten_output_col = 'ABC'. > The "flatten_output_col" comes from the output of FLATTEN operator, and > therefore flatten_output_col = 'ABC' should not pushed past the project. But > partiion_col > 10 should be pushed down, such that we could trigger the > pruning rule to apply partition pruning. > It would be improve Drill query performance, when the partially pushed filter > leads to partition pruning, or the partially pushed filter results in early > filtering in upstream operator. -- This message was sent by Atlassian JIRA (v6.3.4#6332)