You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Gustavo de Morais (Jira)" <ji...@apache.org> on 2025/05/19 17:38:00 UTC

[jira] [Created] (FLINK-37814) FLIP-516: Adjust FlinkJoinToMultiJoinRule for Multi Join Operator

Gustavo de Morais created FLINK-37814:
-----------------------------------------

             Summary: FLIP-516: Adjust FlinkJoinToMultiJoinRule for Multi Join Operator
                 Key: FLINK-37814
                 URL: https://issues.apache.org/jira/browse/FLINK-37814
             Project: Flink
          Issue Type: New Feature
            Reporter: Gustavo de Morais


The current FlinkJoinToMultiJoinRule is implemented and only used for join reordering.  We can use it as a base but we need a new set of optimizer rules for the multi way join operator:

 
 * Add FlinkLogicalMultiJoin with all parameters we need + FlinkJoinToFlinkMultiJoinRule to create it
 ** There are some parameters that calcite's MultiJoin does not contain as we require it. For example: we only have outerJoinConditions and we actually need all join conditions for each input level, including inner joins.
 * Add right join to left join rule - our operator only works with left joins
 * 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 message was sent by Atlassian Jira
(v8.20.10#820010)