[ 
https://issues.apache.org/jira/browse/HIVE-6934?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14171292#comment-14171292
 ] 

Ashutosh Chauhan commented on HIVE-6934:
----------------------------------------

I think there is an issue here. Consider, query like : 
{code}
 select count(1) from srcpart where false;
{code}

After patch this will retrieve every partition, whereas it should retrieve 
none. That is because after change compactExpr() will return null for this 
expression and then prune() method will retrieve all partitions. 
[~hsubramaniyan] Can you confirm?

> PartitionPruner doesn't handle top level constant expression correctly
> ----------------------------------------------------------------------
>
>                 Key: HIVE-6934
>                 URL: https://issues.apache.org/jira/browse/HIVE-6934
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Harish Butani
>            Assignee: Hari Sankar Sivarama Subramaniyan
>            Priority: Critical
>             Fix For: 0.14.0
>
>         Attachments: HIVE-6934.4.patch, HIVE-6934.5.patch, HIVE-6934.6.patch, 
> HIVE-6934.7.patch, HIVE-6934.8.patch
>
>
> You hit this error indirectly, because how we handle invalid constant 
> comparisons. Consider:
> {code}
> create table x(key int, value string) partitioned by (dt int, ts string);
> -- both these queries hit this issue
> select * from x where key = 'abc';
> select * from x where dt = 'abc';
> -- the issue is the comparison get converted to the constant false
> -- and the PartitionPruner doesn't handle top level constant exprs corrcetly
> {code}
> Thanks to [~hsubramaniyan] for uncovering this as part of adding tests for 
> HIVE-5376



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

Reply via email to