[ 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)