[ https://issues.apache.org/jira/browse/FLINK-2871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15111803#comment-15111803 ]
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_r50495621 --- 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 -- Yes, you are right. > 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)