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)

Reply via email to