amaliujia commented on a change in pull request #2006:
URL: https://github.com/apache/calcite/pull/2006#discussion_r439784770
##########
File path:
core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableMergeJoin.java
##########
@@ -134,31 +137,83 @@ public static boolean isMergeJoinSupported(JoinRelType
joinType) {
final RelTraitSet required) {
// Required collation keys can be subset or superset of merge join keys.
RelCollation collation = required.getCollation();
+ int leftInputFieldCount = left.getRowType().getFieldCount();
+
List<Integer> reqKeys = RelCollations.ordinals(collation);
- ImmutableBitSet reqKeySet = ImmutableBitSet.of(reqKeys);
+ List<Integer> leftKeys = joinInfo.leftKeys.toIntegerList();
+ List<Integer> rightKeys =
+ joinInfo.rightKeys.incr(leftInputFieldCount).toIntegerList();
+ List<Integer> rightKeysNotShifted = joinInfo.rightKeys.toIntegerList();
Review comment:
Let me check if this process can be simplified somehow.
For the example above, I am only looking for a way to
```
leftCollation = requiredCollation.apply(join keys) // only need collation
defined on keys for left input,
```
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]