[ 
https://issues.apache.org/jira/browse/FLINK-2871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15108065#comment-15108065
 ] 

ASF GitHub Bot commented on FLINK-2871:
---------------------------------------

Github user ChengXiangLi commented on a diff in the pull request:

    https://github.com/apache/flink/pull/1469#discussion_r50217624
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/operators/hash/MutableHashTable.java
 ---
    @@ -486,11 +518,43 @@ protected boolean processProbeIter() throws 
IOException{
                        }
                }
                // -------------- partition done ---------------
    -           
    +
                return false;
        }
        
    +   protected boolean processUnmatchedBuildIter() throws IOException  {
    +           if (this.unmatchedBuildVisited) {
    +                   return false;
    +           }
    +           
    +           this.probeMatchedPhase = false;
    +           UnmatchedBuildIterator<BT, PT> unmatchedBuildIter = new 
UnmatchedBuildIterator<>(this.buildSideSerializer, this.numBuckets,
    +                   this.bucketsPerSegmentBits, this.bucketsPerSegmentMask, 
this.buckets, this.partitionsBeingBuilt, probedSet);
    +           this.unmatchedBuildIterator = unmatchedBuildIter;
    +           
    +           // There maybe none unmatched build element, so we add a 
verification here to make sure we do not return (null, null) to user.
    +           if (unmatchedBuildIter.next() == null) {
    +                   this.unmatchedBuildVisited = true;
    +                   return false;
    +           }
    +           
    +           unmatchedBuildIter.back();
    +           
    +           // While visit the unmatched build elements, the probe element 
is null, and the unmatchedBuildIterator
    +           // would iterate all the unmatched build elements, so we return 
false during the second calling of this method.
    +           if (!this.unmatchedBuildVisited) {
    --- End diff --
    
    It could be true if there is no unmatched build records, as showing at line 
536.


> Add OuterJoin strategy with HashTable on outer side
> ---------------------------------------------------
>
>                 Key: FLINK-2871
>                 URL: https://issues.apache.org/jira/browse/FLINK-2871
>             Project: Flink
>          Issue Type: New Feature
>          Components: Local Runtime, Optimizer
>    Affects Versions: 0.10.0
>            Reporter: Fabian Hueske
>            Assignee: Chengxiang Li
>            Priority: Minor
>
> Outer joins are currently supported with two local execution strategies:
> - sort-merge join
> - hash join where the hash table is built on the inner side. Hence, this 
> strategy is only supported for left and right outer joins.
> In order to support hash-tables on the outer side, we need a special hash 
> table implementation that gives access to all records which have not been 
> accessed during the probe phase.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to