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