diff options
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java')
-rw-r--r-- | exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java index 4d309aea0..acc597705 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java @@ -162,12 +162,14 @@ public class RuntimeFilterVisitor extends BasePrelVisitor<Prel, Void, RuntimeExc List<String> leftFields = left.getRowType().getFieldNames(); List<String> rightFields = right.getRowType().getFieldNames(); List<Integer> leftKeys = hashJoinPrel.getLeftKeys(); + List<Integer> rightKeys = hashJoinPrel.getRightKeys(); RelMetadataQuery metadataQuery = left.getCluster().getMetadataQuery(); int i = 0; for (Integer leftKey : leftKeys) { String leftFieldName = leftFields.get(leftKey); - String rightFieldName = rightFields.get(i); - i++; + Integer rightKey = rightKeys.get(i++); + String rightFieldName = rightFields.get(rightKey); + //This also avoids the left field of the join condition with a function call. ScanPrel scanPrel = findLeftScanPrel(leftFieldName, left); if (scanPrel != null) { @@ -405,4 +407,4 @@ public class RuntimeFilterVisitor extends BasePrelVisitor<Prel, Void, RuntimeExc } } -}
\ No newline at end of file +} |