-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Describe the bug
As part of the upgrade to DataFusion v43, we found that the CrossJoin logical plan node was removed in DataFusion (#12985), replacing it with a JOIN with no conditions.
i.e. in DataFusion the following two statements are logically similar:
SELECT * FROM t1 JOIN t2;
SELECT * FROM t1 CROSS JOIN t2;This is not true for all databases systems, like Postgres/SQL Server - which will interpret the JOIN as an inner join, which then errors out that no conditions were specified:
SELECT * FROM t1 JOIN t2 -- Error: syntax error at or near "JOIN"
For the unparser, we should return an explicit CROSS JOIN when we unparser a JOIN with no conditions.
To Reproduce
Run the unparser for the following query:
SELECT * FROM t1 CROSS JOIN t2 and observe it gets unparsed to SELECT * FROM t1 JOIN t2
Expected behavior
SELECT * FROM t1 CROSS JOIN t2 and SELECT * FROM t1 JOIN t2 are unparsed to SELECT * FROM t1 CROSS JOIN t2
Additional context
No response