You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Hari Sankar Sivarama Subramaniyan (JIRA)" <ji...@apache.org> on 2014/04/23 00:24:19 UTC

[jira] [Commented] (HIVE-6934) PartitionPruner doesn't handle top level constant expression correctly

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

Hari Sankar Sivarama Subramaniyan commented on HIVE-6934:
---------------------------------------------------------

encountered another hive issue as part of this fix. 
explain select * from table where 1;
The above query passes where as ' select * from table where 1;' fails when trying to convert 1 to boolean. We should be able to catch this exception semantically.


> 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
>         Attachments: HIVE-6934.1.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.2#6252)