[ 
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)

Reply via email to