You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by GitBox <gi...@apache.org> on 2019/10/15 18:28:05 UTC

[GitHub] [calcite] julianhyde commented on a change in pull request #1496: [CALCITE-3400] Add support for interpretering left/right/semi/anti/full join

julianhyde commented on a change in pull request #1496: [CALCITE-3400] Add support for interpretering left/right/semi/anti/full join
URL: https://github.com/apache/calcite/pull/1496#discussion_r335109777
 
 

 ##########
 File path: core/src/main/java/org/apache/calcite/interpreter/JoinNode.java
 ##########
 @@ -47,28 +50,118 @@ public JoinNode(Compiler compiler, Join rel) {
   }
 
   public void run() throws InterruptedException {
-    List<Row> rightList = null;
-    final int leftCount = rel.getLeft().getRowType().getFieldCount();
-    final int rightCount = rel.getRight().getRowType().getFieldCount();
-    context.values = new Object[rel.getRowType().getFieldCount()];
-    Row left;
-    Row right;
-    while ((left = leftSource.receive()) != null) {
-      System.arraycopy(left.getValues(), 0, context.values, 0, leftCount);
-      if (rightList == null) {
-        rightList = new ArrayList<>();
-        while ((right = rightSource.receive()) != null) {
-          rightList.add(right);
+
+    final int fieldCount = rel.getLeft().getRowType().getFieldCount()
+        + rel.getRight().getRowType().getFieldCount();
+    context.values = new Object[fieldCount];
+
+    Source baseSource = leftSource;
 
 Review comment:
   I think "outer" and "inner" are a bit misleading. Since outer is always left and inner is always right, how about we keep the names left and right? You could add a comment about left being the outer side of the nested loop.

----------------------------------------------------------------
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:
users@infra.apache.org


With regards,
Apache Git Services