[
https://issues.apache.org/jira/browse/CALCITE-4619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17359954#comment-17359954
]
JIasen Sheng commented on CALCITE-4619:
---------------------------------------
[~zabetak] I agree with you. I submit a pr to solve this problem, looking
forward to your review.
https://github.com/apache/calcite/pull/2430
> "Full join" generates an incorrect execution plan under mysql
> -------------------------------------------------------------
>
> Key: CALCITE-4619
> URL: https://issues.apache.org/jira/browse/CALCITE-4619
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.26.0
> Reporter: JIasen Sheng
> Priority: Major
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The current jdbcJoinRules can match any join type, but not all jdbc databases
> can support full join, such as mysql and H2.
> Calcite will generate the following plan for
> {code:java}
> select count(*) as c from \"foodmart\".\"store\" as p1 full join
> \"foodmart\".\"store\" as p2 using (\"store_id\")
> {code}
> .
> {code:java}
> JdbcToEnumerableConverter
> JdbcAggregate(group=[{}], C=[COUNT()])
> JdbcJoin(condition=[=($0, $1)], joinType=[full])
> JdbcProject(store_id=[$0])
> JdbcTableScan(table=[[foodmart, store]])
> JdbcProject(store_id=[$0])
> JdbcTableScan(table=[[foodmart, store]]){code}
> When the plan is executed in Mysql, the execution will fail due to the
> existence of a full join.
>
>
> I think it is necessary to add supportsFullJoin method in SqlDialect, and add
> JdbcJoinRule matching rules to solve this problem
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)