[ 
https://issues.apache.org/jira/browse/DRILL-1928?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chunhui Shi reassigned DRILL-1928:
----------------------------------

    Assignee: Chunhui Shi

> Refactor filter pushdown code
> -----------------------------
>
>                 Key: DRILL-1928
>                 URL: https://issues.apache.org/jira/browse/DRILL-1928
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Query Planning & Optimization
>    Affects Versions: 0.7.0, 0.8.0
>            Reporter: Venki Korukanti
>            Assignee: Chunhui Shi
>             Fix For: Future
>
>
> Currently in many places (InfoSchema, HBase, MongoDB and FS/Hive partition 
> pruning) we have logic to push the filter into scan.
> 1. We can have common code for visiting the expression tree and determining 
> which part of the tree can be pushed to scan and which part can't be pushed 
> to scan. 
> 2. In all places, if we can't convert the complete filter, partially 
> converted filter is pushed into Scan but the complete filter is copied and 
> evaluated in Filter operator. This causes the partially pushed filter to be 
> evaluated in two places (Scan and Filter). 
> This JIRA proposes following API:
> {code}
> /**
>  * @param filter Filter expression tree
>  * @param fields List of columns names to consider when extracting the 
> filter. For example partition pruning is interested in only on expressions 
> that involve partition columns. In that case partition pruning can pass list 
> of partition columns as supported column list.
>  * @param functions List of supported functions to consider in extracting the 
> filter. For example partition pruning is interested in only "=", ">" etc. It 
> can pass these functions as the supported function list.
>  *
>  * @return Result contains two trees. One tree that can be pushed to Scan and 
> other tree that can't be pushed into Scan. Either of them can be null.
>  */
> FilterPruningResult extract(FilterExpression, FieldList, FunctionList)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to