[
https://issues.apache.org/jira/browse/CALCITE-7077?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zhen Chen updated CALCITE-7077:
-------------------------------
Description:
Invalid unparse for FULL JOIN in MySQLDialect is described in CALCITE-7050. The
purpose is to allow SQL dialects that do not support FULL JOIN to execute
according to the semantics of FULL JOIN. For this, a rule can be implemented to
rewrite FULL JOIN into LEFT JOIN and RIGHT JOIN. For example:
original sql:
{code:java}
SELECT *
FROM Employees e
FULL JOIN Departments d ON e.id = d.id
{code}
rewrite into
{code:java}
SELECT *
FROM Employees e
LEFT JOIN Departments d ON e.id = d.id
UNION ALL
SELECT *
FROM Employees e
RIGHT JOIN Departments d ON e.id = d.id
where e.id is null;
{code}
was:
Invalid unparse for FULL JOIN in MySQLDialect is described in
[CALCITE-7050|https://issues.apache.org/jira/browse/CALCITE-7050]. For this, a
rule can be implemented to rewrite FULL JOIN into LEFT JOIN and RIGHT JOIN. For
example:
original sql:
{code:java}
SELECT *
FROM Employees e
FULL JOIN Departments d ON e.id = d.id
{code}
rewrite into
{code:java}
SELECT *
FROM Employees e
LEFT JOIN Departments d ON e.id = d.id
UNION ALL
SELECT *
FROM Employees e
RIGHT JOIN Departments d ON e.id = d.id
where e.id is null;
{code}
> Implement a rule to rewrite FULL JOIN as LEFT JOIN and RIGHT JOIN
> -----------------------------------------------------------------
>
> Key: CALCITE-7077
> URL: https://issues.apache.org/jira/browse/CALCITE-7077
> Project: Calcite
> Issue Type: New Feature
> Reporter: Zhen Chen
> Assignee: Zhen Chen
> Priority: Minor
>
> Invalid unparse for FULL JOIN in MySQLDialect is described in CALCITE-7050.
> The purpose is to allow SQL dialects that do not support FULL JOIN to execute
> according to the semantics of FULL JOIN. For this, a rule can be implemented
> to rewrite FULL JOIN into LEFT JOIN and RIGHT JOIN. For example:
> original sql:
> {code:java}
> SELECT *
> FROM Employees e
> FULL JOIN Departments d ON e.id = d.id
> {code}
> rewrite into
> {code:java}
> SELECT *
> FROM Employees e
> LEFT JOIN Departments d ON e.id = d.id
> UNION ALL
> SELECT *
> FROM Employees e
> RIGHT JOIN Departments d ON e.id = d.id
> where e.id is null;
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)