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]
