You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "黄泓 (JIRA)" <ji...@apache.org> on 2016/04/20 16:58:25 UTC

[jira] [Updated] (SPARK-14757) Incorrect behavior of Join operation in Spqrk SQL JOIN : "false" in the left table is joined to "null" on the right table

     [ https://issues.apache.org/jira/browse/SPARK-14757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

黄泓 updated SPARK-14757:
-----------------------
    Description: 
Content of table a:

|outgoing_0|
|     false     |
|      true     |
|      null      |

Content of table b:

|outgoing_1|
|     false      |
|      true      |
|      null       |

After running this query:

select * from a FULL JOIN b ON ( outgoing_0<=>outgoing_1)

I got the following result:

|outgoing_0|outgoing_1|
|      true      |      true      |
|     false      |     false     |
|     false      |      null      |
|      null       |      null      |

The row with "false" as outgoing_0 and "null" as outgoing_1 is unexpected. The operator <=> should match null with null. 

While left "false" is matched with right "null", it is also strange to find that the "false" on the right table does not match with "null" on the left table (no row with "null" as outgoing_0 and "false" as outgoing_1)

  was:
Content of table a:
+-------------+
|outgoing_0|
+-------------+
|     false     |
|      true     |
|      null      |
+--------------+

Content of table b:

+--------------+
|outgoing_1|
+--------------+
|     false      |
|      true      |
|      null       |
+--------------+

After running this query:

select * from a FULL JOIN b ON ( outgoing_0<=>outgoing_1)

I got the following result:

+-------------+--------------+
|outgoing_0|outgoing_1|
+--------------+--------------+
|      true      |      true      |
|     false      |     false     |
|     false      |      null      |
|      null       |      null      |
+--------------+--------------+

The row with "false" as outgoing_0 and "null" as outgoing_1 is unexpected. The operator <=> should match null with null. 

While left "false" is matched with right "null", it is also strange to find that the "false" on the right table does not match with "null" on the left table (no row with "null" as outgoing_0 and "false" as outgoing_1)


> Incorrect behavior of Join operation in Spqrk SQL JOIN : "false" in the left table is joined to "null" on the right table
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SPARK-14757
>                 URL: https://issues.apache.org/jira/browse/SPARK-14757
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 1.6.0
>            Reporter: 黄泓
>
> Content of table a:
> |outgoing_0|
> |     false     |
> |      true     |
> |      null      |
> Content of table b:
> |outgoing_1|
> |     false      |
> |      true      |
> |      null       |
> After running this query:
> select * from a FULL JOIN b ON ( outgoing_0<=>outgoing_1)
> I got the following result:
> |outgoing_0|outgoing_1|
> |      true      |      true      |
> |     false      |     false     |
> |     false      |      null      |
> |      null       |      null      |
> The row with "false" as outgoing_0 and "null" as outgoing_1 is unexpected. The operator <=> should match null with null. 
> While left "false" is matched with right "null", it is also strange to find that the "false" on the right table does not match with "null" on the left table (no row with "null" as outgoing_0 and "false" as outgoing_1)



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org