hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chetna Chaudhari (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-11735) Different results when multiple if() functions are used
Date Sat, 17 Oct 2015 13:29:05 GMT

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

Chetna Chaudhari commented on HIVE-11735:
-----------------------------------------

[~ashutoshc]: This issue will occur in all queries wherever there are predicates based on
case sensitive data. Any thoughts on whether I should proceed with fixing it for all. Because
changing RowResolver class is causing test failures in other queries. Or its by design?

> Different results when multiple if() functions are used 
> --------------------------------------------------------
>
>                 Key: HIVE-11735
>                 URL: https://issues.apache.org/jira/browse/HIVE-11735
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 0.14.0, 1.0.0, 1.1.1, 1.2.1
>            Reporter: Chetna Chaudhari
>            Assignee: Chetna Chaudhari
>         Attachments: HIVE-11735.patch
>
>
> Hive if() udf is returns different results when string equality is used as condition,
with case change. 
> Observation:
>    1) if( name = 'chetna' , 3, 4) and if( name = 'Chetna', 3, 4) both are treated as
equal.
>    2) The rightmost udf result is pushed to predicates on left side. Leading to same
result for both the udfs.
> How to reproduce the issue:
> 1) CREATE TABLE `sample`(
>   `name` string)
> ROW FORMAT SERDE
>   'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
> STORED AS INPUTFORMAT
>   'org.apache.hadoop.mapred.TextInputFormat'
> OUTPUTFORMAT
>   'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
> TBLPROPERTIES (
>   'transient_lastDdlTime'='1425075745');
> 2) insert into table sample values ('chetna');
> 3) select min(if(name = 'chetna', 4, 3)) , min(if(name='Chetna', 4, 3))  from sample;

>     This will give result : 
>     3    3
>     Expected result:
>     4    3
> 4) select min(if(name = 'Chetna', 4, 3)) , min(if(name='chetna', 4, 3))  from sample;

>     This will give result 
>     4    4
>     Expected result:
>     3    4



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

Mime
View raw message