[
https://issues.apache.org/jira/browse/FLINK-37890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gustavo de Morais updated FLINK-37890:
--------------------------------------
Description:
We need to have the optimizer check if it's possible to use a
StreamingMultiJoinOperator according the [common key
restrictions|https://cwiki.apache.org/confluence/display/FLINK/FLIP-516%3A+Multi-Way+Join+Operator].
* Adjust JoinToMultiJoinRule to check if the join chain respects the multi
join common key restrictions
* If not, create one multi join for each group of joins that respect. That
means for example, for 9 chained joins, 3 have one common key and 6 have
another will generate two chained multi joins
* This could be done by adjusting the canCombine method to fit our
requirements
https://github.com/apache/flink/blob/fdf0bc7e02380e92bb9ab59e5eb847776372df81/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/logical/JoinToMultiJoinRule.java#L476
was:
We need to have the optimizer check if it's possible to use a
StreamingMultiJoinOperator according the [common key
restrictions|https://cwiki.apache.org/confluence/display/FLINK/FLIP-516%3A+Multi-Way+Join+Operator].
* Add Rule to check if the join chain respects the multi join common key
restrictions
** If not, create one multi join for each group of joins that respect. That
means 9 chained joins, 3 have one common key and 6 have another will generate
two chained multi joins.
** This could be addressed in the new FlinkLogicalMultiJoin produced by
FLINK-37889
Related:
* Add FlinkLogicalMultiJoin with all parameters we need +
FlinkJoinToFlinkMultiJoinRule to create it
> Extend JoinToMultiJoinRule to check for common join key
> -------------------------------------------------------
>
> Key: FLINK-37890
> URL: https://issues.apache.org/jira/browse/FLINK-37890
> Project: Flink
> Issue Type: Sub-task
> Reporter: Gustavo de Morais
> Priority: Major
>
> We need to have the optimizer check if it's possible to use a
> StreamingMultiJoinOperator according the [common key
> restrictions|https://cwiki.apache.org/confluence/display/FLINK/FLIP-516%3A+Multi-Way+Join+Operator].
> * Adjust JoinToMultiJoinRule to check if the join chain respects the multi
> join common key restrictions
> * If not, create one multi join for each group of joins that respect. That
> means for example, for 9 chained joins, 3 have one common key and 6 have
> another will generate two chained multi joins
> * This could be done by adjusting the canCombine method to fit our
> requirements
> https://github.com/apache/flink/blob/fdf0bc7e02380e92bb9ab59e5eb847776372df81/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/logical/JoinToMultiJoinRule.java#L476
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)