[
https://issues.apache.org/jira/browse/FLINK-2871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15110405#comment-15110405
]
ASF GitHub Bot commented on FLINK-2871:
---------------------------------------
Github user fhueske commented on a diff in the pull request:
https://github.com/apache/flink/pull/1469#discussion_r50384749
--- 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 --
But you leave the method in line 538 with `return false` and the check in
line 526 prevents that you get to line 545 if `unmatchedBuildVisited == true`
again.
> 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)