gustavodemorais commented on PR #27166:
URL: https://github.com/apache/flink/pull/27166#issuecomment-3469265506

   I've synced with @SteveStevenpoor and to fix this in a clean and consistent 
way we should have only one algorithm to identify the common join key. The 
logic we have for the physical phase creates something called equivalence sets 
and operates with indexes. We can create create a 
AttributeBasedJoinKeyExtractor using a FlinkLogicalMultiJoin node. We could 
create a new constructor to our use case and reuse the logic and add the 
necessary functions to operate with the same algorithm. This will make our 
logic much less bug prone. 
   
   
[https://github.com/apache/flink/blob/4c6defbe5296c2edede7190344d510849eb3ba83/flin[…]ors/join/stream/keyselector/AttributeBasedJoinKeyExtractor.java](https://github.com/apache/flink/blob/4c6defbe5296c2edede7190344d510849eb3ba83/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/operators/join/stream/keyselector/AttributeBasedJoinKeyExtractor.java#L353)
   
[https://github.com/apache/flink/blob/ecd284da3365adc36647b2dd1a6ef4fad3c84671/flin[…]ner/plan/rules/physical/stream/StreamPhysicalMultiJoinRule.java](https://github.com/apache/flink/blob/ecd284da3365adc36647b2dd1a6ef4fad3c84671/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/physical/stream/StreamPhysicalMultiJoinRule.java#L63)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to