[jira] [Updated] (HIVE-11735) Different results when multiple if() functions are used
[ https://issues.apache.org/jira/browse/HIVE-11735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ashutosh Chauhan updated HIVE-11735: Component/s: Query Planning > 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 > Components: Query Planning >Affects Versions: 0.14.0, 1.0.0, 1.1.1, 1.2.1 >Reporter: Chetna Chaudhari >Assignee: Ashutosh Chauhan > Fix For: 2.0.0 > > 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 : > 33 > Expected result: > 43 > 4) select min(if(name = 'Chetna', 4, 3)) , min(if(name='chetna', 4, 3)) from > sample; > This will give result > 44 > Expected result: > 34 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HIVE-11735) Different results when multiple if() functions are used
[ https://issues.apache.org/jira/browse/HIVE-11735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chetna Chaudhari updated HIVE-11735: Affects Version/s: 0.14.0 1.0.0 1.1.1 1.2.1 > 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 : > 33 > Expected result: > 43 > 4) select min(if(name = 'Chetna', 4, 3)) , min(if(name='chetna', 4, 3)) from > sample; > This will give result > 44 > Expected result: > 34 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HIVE-11735) Different results when multiple if() functions are used
[ https://issues.apache.org/jira/browse/HIVE-11735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chetna Chaudhari updated HIVE-11735: Attachment: HIVE-11735.patch Attaching patch for the suggested approach. Please review it. > 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 >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 : > 33 > Expected result: > 43 > 4) select min(if(name = 'Chetna', 4, 3)) , min(if(name='chetna', 4, 3)) from > sample; > This will give result > 44 > Expected result: > 34 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HIVE-11735) Different results when multiple if() functions are used
[ https://issues.apache.org/jira/browse/HIVE-11735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chetna Chaudhari updated HIVE-11735: Description: 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 : 33 Expected result: 43 4) select min(if(name = 'Chetna', 4, 3)) , min(if(name='chetna', 4, 3)) from sample; This will give result 44 Expected result: 34 was: 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 : 33 Expected result: 43 4) select min(if(name = 'Chetna', 4, 3)) , min(if(name='chetna', 4, 3)) from sample; This will give result 44 Expected result: 34 > 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 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 : > 33 > Expected result: > 43 > 4) select min(if(name = 'Chetna', 4, 3)) , min(if(name='chetna', 4, 3)) from > sample; > This will give result > 44 > Expected result: > 34 -- This message was sent by Atlassian JIRA (v6.3.4#6332)