Chetna Chaudhari created HIVE-11735: ---------------------------------------
Summary: 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 Reporter: Chetna Chaudhari Hive if() udf is returning 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)