[ https://issues.apache.org/jira/browse/SPARK-8636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14613492#comment-14613492 ]
Apache Spark commented on SPARK-8636: ------------------------------------- User 'animeshbaranawal' has created a pull request for this issue: https://github.com/apache/spark/pull/7044 > CaseKeyWhen has incorrect NULL handling > --------------------------------------- > > Key: SPARK-8636 > URL: https://issues.apache.org/jira/browse/SPARK-8636 > Project: Spark > Issue Type: Bug > Components: SQL > Affects Versions: 1.4.0 > Reporter: Santiago M. Mola > Labels: starter > > CaseKeyWhen implementation in Spark uses the following equals implementation: > {code} > private def equalNullSafe(l: Any, r: Any) = { > if (l == null && r == null) { > true > } else if (l == null || r == null) { > false > } else { > l == r > } > } > {code} > Which is not correct, since in SQL, NULL is never equal to NULL (actually, it > is not unequal either). In this case, a NULL value in a CASE WHEN expression > should never match. > For example, you can execute this in MySQL: > {code} > SELECT CASE NULL WHEN NULL THEN "NULL MATCHES" ELSE "NULL DOES NOT MATCH" END > FROM DUAL; > {code} > And the result will be "NULL DOES NOT MATCH". -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org