Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.26.0
Description
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
select count(*) as c from \"foodmart\".\"store\" as p1 full join \"foodmart\".\"store\" as p2 using (\"store_id\")
.
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]])
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
Attachments
Issue Links
- links to