Sahil Takiar created HIVE-14971:
-----------------------------------
Summary: Hive returns incorrect result when NOT used with <=>
(null safe equals) operator
Key: HIVE-14971
URL: https://issues.apache.org/jira/browse/HIVE-14971
Project: Hive
Issue Type: Bug
Components: Hive
Reporter: Sahil Takiar
Assignee: Sahil Takiar
Hive returns incorrect results when using a <=> inside a NOT operator:
*Setup:*
{code}
create table table1 (int_col_1 int, int_col_2 int);
insert into table1 values (1, 2), (3, 3), (null, 4), (5, null), (null, null);
select * from table1;
+-------------------+-------------------+
| table1.int_col_1 | table1.int_col_2 |
+-------------------+-------------------+
| 1 | 2 |
| 3 | 3 |
| NULL | 4 |
| 5 | NULL |
| NULL | NULL |
+-------------------+-------------------+
{code}
The following query returns incorrect results: {{select int_col_1 from table1
where not(int_col_1 <=> int_col_2)}} returns
{code}
+------------+
| int_col_1 |
+------------+
| 1 |
+------------+
{code}
Where it should return {{1, NULL, 5}}
Here is another query that returns incorrect results: {{select *, not(int_col_1
<=> int_col_2) from table1}}
{code}
+-------------------+-------------------+--------+
| table1.int_col_1 | table1.int_col_2 | _c1 |
+-------------------+-------------------+--------+
| 1 | 2 | true |
| 3 | 3 | false |
| NULL | 4 | NULL |
| 5 | NULL | NULL |
| NULL | NULL | NULL |
+-------------------+-------------------+--------+
{code}
The column {{_c1}} should not be returning {{NULL}} for the last three rows.
This could be a bug in the NOT operator because the query {{select *, int_col_1
<=> int_col_2 from table1}} returns:
{code}
+-------------------+-------------------+--------+
| table1.int_col_1 | table1.int_col_2 | _c1 |
+-------------------+-------------------+--------+
| 1 | 2 | false |
| 3 | 3 | true |
| NULL | 4 | false |
| 5 | NULL | false |
| NULL | NULL | true |
+-------------------+-------------------+--------+
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)