[ 
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)

Reply via email to