[
https://issues.apache.org/jira/browse/FLINK-2871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15108077#comment-15108077
]
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_r50218331
--- 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) {
--- End diff --
Yes, it's better to have `hasNext()` method. Just UnmatchedBuildIterator is
quite complicated, redesign is risky, and the `back()` method would only be
called once, it does not introduce extra effort, so i would just leave it here.
> 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)