public class HashJoin extends JoinExecutorBase<BindingSet>
bindings, joinVars, leftIter, rightArg
closed, evaluationThread, executorId, finished, log, NEXT_EXECUTOR_ID, queryInfo, rightIter, rightQueue, strategy
Constructor and Description |
---|
HashJoin(FederationEvalStrategy strategy,
CloseableIteration<BindingSet,QueryEvaluationException> leftIter,
TupleExpr rightArg,
Set<String> joinVars,
BindingSet bindings,
QueryInfo queryInfo) |
Modifier and Type | Method and Description |
---|---|
protected void |
handleBindings()
Implementations must implement this method to handle bindings.
|
protected void |
performJoin(Collection<BindingSet> leftBlock,
Collection<BindingSet> rightBlock,
Set<String> joinVariables,
Collection<String> freeVariablesRight)
Perform the join and add the result to this cursor.
|
getExecutorType, getJoinVars, handleClose, performExecution, setJoinVars
addResult, checkTimeout, done, getDisplayId, getId, getNextElement, getQueryInfo, isFinished, run, toss, toString
hasNext, next, remove
close, isClosed
public HashJoin(FederationEvalStrategy strategy, CloseableIteration<BindingSet,QueryEvaluationException> leftIter, TupleExpr rightArg, Set<String> joinVars, BindingSet bindings, QueryInfo queryInfo) throws QueryEvaluationException
QueryEvaluationException
protected void handleBindings() throws Exception
JoinExecutorBase
while (!closed && leftIter.hasNext()) {
// your code
}
and add results to rightQueue. Note that addResult() is implemented synchronized and thus thread safe. In case
you can guarantee sequential access, it is also possible to directly access rightQueue
Note that the implementation must block until the entire join is executed.handleBindings
in class JoinExecutorBase<BindingSet>
Exception
protected void performJoin(Collection<BindingSet> leftBlock, Collection<BindingSet> rightBlock, Set<String> joinVariables, Collection<String> freeVariablesRight)
See join(Collection, Collection, Set, Collection)
and ParallelExecutorBase.addResult(CloseableIteration)
.
leftBlock
- rightBlock
- joinVariables
- freeVariablesRight
- Copyright © 2015-2020 Eclipse Foundation. All Rights Reserved.