apache / datafusion

Apache DataFusion SQL Query Engine
https://datafusion.apache.org/
Apache License 2.0
5.21k stars 957 forks source link

feat: Add CrossJoin match case to unparser #10371

Closed sardination closed 1 week ago

sardination commented 2 weeks ago

Which issue does this PR close?

Part of https://github.com/apache/datafusion/issues/8661

Rationale for this change

Came across this issue when trying to federate a query selecting from multiple tables with different sources. For example, SELECT a_1, b_1 FROM table_a, table_b is evaluated as a cross join, but the unparser wasn't handling cross joins yet.

What changes are included in this PR?

Allow unparsing of cross joins into the equivalent inner join.

Are these changes tested?

Added a test for cross join roundtrip. It is slightly different from the other roundtrips because sqlparser doesn't have an implementation for Cross Join, so it gets converted into an Inner Join.

Are there any user-facing changes?

alamb commented 2 weeks ago

CI failure seems to be infrastructure related: https://github.com/apache/datafusion/actions/runs/8943389816/job/24568207362?pr=10371 -- I restarted it

alamb commented 1 week ago

Thanks again @sardination !