[ 
https://issues.apache.org/jira/browse/CALCITE-7050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17956689#comment-17956689
 ] 

Yu Xu edited comment on CALCITE-7050 at 6/7/25 3:19 AM:
--------------------------------------------------------

[~nobigo] I personally agree with Jensen's suggestion. At the dialect level, 
the supportsJoinType interface can be directly made effective for all dialects. 
Later, a Rule that converts Full Join to Union can be added. It seems to be a 
reasonable solution to let users use it by themselves.

In addition, IMO the SqlCall-based rewriting rule code seems to be hard-coded 
because the relevant API is not yet available. If there is anything I described 
wrong, please point it out, thanks.


was (Author: JIRAUSER307770):
[~nobigo] I personally agree with Jensen's suggestion. At the dialect level, 
the supportsJoinType interface can be directly made effective for all dialects. 
Later, a Rule that converts Full Join to Union can be added. It seems to be a 
reasonable solution to let users use it by themselves.

> Invalid unparse for FULL JOIN in MySQLDialect 
> ----------------------------------------------
>
>                 Key: CALCITE-7050
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7050
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: xiong duan
>            Assignee: Yu Xu
>            Priority: Major
>              Labels: pull-request-available
>
> The SQL in MySQL:
> {code:java}
> SELECT * FROM test002 as table1 full join test002  as table2 on table1.id1 = 
> table2.id1; {code}
> throws exception:
> {code:java}
> SQL ERROR [1064] [42000]: You have an error in your SQL syntax; check the 
> manual that corresponds to your MySQL server version for the right syntax to 
> use near 'full join test002  as table2 on table1.id1 = table2.id1 {code}
> Test case in RelToSqlConverterTest:
> {code:java}
> @Test void testFullJoin() {
>   String sql = "select *\n"
>       + "from \"store\" as s\n"
>       + "full join \"employee\" as e on true\n";
>   final String expectedMysql = "SELECT *\n"
>       + "FROM `foodmart`.`store`\n"
>       + "FULL JOIN `foodmart`.`employee` ON TRUE";
>   sql(sql).withMysql().ok(expectedMysql);
> } {code}
> We already have `supportsJoinType` when the jointype is JoinRelTpte.FULL 
> return false.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to