You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2015/12/17 21:03:46 UTC

[jira] [Commented] (DRILL-4201) DrillPushFilterPastProject should allow partial filter pushdown.

    [ 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 <jn...@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)