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

Mehant Baid updated DRILL-3690:
-------------------------------
    Description: 
Consider the following query:
select 1 from foo where dir0 not in (1994) and col1 not in ('bar');

The filter condition is: AND(NOT(=($1, 1994)), NOT(=($2, 'bar')))
In FindPartitionCondition we rewrite the filter to cherry pick the partition 
column conditions so the interpreter can evaluate it, however when the 
expression contains more than two levels of nesting (in this case AND(NOT(=))) 
) the expression does not get rewritten correctly. In this case the expression 
gets rewritten as: AND(=($1, 1994)). NOT is missing from the rewritten 
expression producing wrong results.



  was:
Consider the following query:
select 1 from foo where dir0 not in (1994) and dir1 not in (1995);

The filter condition is: AND(NOT(=($1, 1994)), NOT(=($2, 1995)))
In FindPartitionCondition we rewrite the filter to cherry pick the partition 
column conditions so the interpreter can evaluate it, however when the 
expression contains more than two levels of nesting (in this case AND(NOT(=))) 
) the expression does not get rewritten correctly. In this case the expression 
gets rewritten as: AND(=($1, 1994), =($2, 1995)). NOT is missing from the 
rewritten expression producing wrong results.




> Partitioning pruning produces wrong results when there are nested expressions 
> in the filter
> -------------------------------------------------------------------------------------------
>
>                 Key: DRILL-3690
>                 URL: https://issues.apache.org/jira/browse/DRILL-3690
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Mehant Baid
>            Assignee: Mehant Baid
>            Priority: Blocker
>             Fix For: 1.2.0
>
>
> Consider the following query:
> select 1 from foo where dir0 not in (1994) and col1 not in ('bar');
> The filter condition is: AND(NOT(=($1, 1994)), NOT(=($2, 'bar')))
> In FindPartitionCondition we rewrite the filter to cherry pick the partition 
> column conditions so the interpreter can evaluate it, however when the 
> expression contains more than two levels of nesting (in this case 
> AND(NOT(=))) ) the expression does not get rewritten correctly. In this case 
> the expression gets rewritten as: AND(=($1, 1994)). NOT is missing from the 
> rewritten expression producing wrong results.



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

Reply via email to