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

Gopal V commented on HIVE-14185:
--------------------------------

[~fmantlik]: because IN doesn't work the way you want.

col2 IN (null, 'A') looks like (col2 == null or col2 == 'A')

nothing is equal to null, even null itself, so it folds into (col2 == 'A'), 
which implicitly does 'IS NOT NULL' internally. 

If your goal is to look for nulls, equality is the wrong expression - for 
example, you can filter nulls out by doing col2 == col2, which works like "IS 
NOT NULL".

> Join query fails if the left table is empty and where condition searches in a 
> list containing null
> --------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-14185
>                 URL: https://issues.apache.org/jira/browse/HIVE-14185
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 1.2.1
>            Reporter: Frantisek Mantlik
>
> If the table on the left hand side of the join is empty and the right hand 
> side table contains data, the following query fails:
> {{SELECT * FROM left JOIN right ON left.col1=right.col1 WHERE left.col2 IN 
> (null, 'A')}}
> while the following query runs without problems:
> {{SELECT * FROM left JOIN right ON left.col1=right.col1 WHERE (left.col2 IS 
> NULL or left.col2 IN ('A'))}}



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

Reply via email to