public class PipelinedHashIndexAndSolutionSetJoinOp extends HashIndexOp
SELECT * WHERE {
?s ?o1
OPTIONAL {
?s ?o2 .
?s ?o3 .
}
} LIMIT 10
to be evaluated over the data set
.
.
.
.
.
.
, where the OPTIONAL is considered as a complex group that is translated
using a hash join pattern. The approach taken by this operator is that the
OPTIONAL pattern is considered as subquery that is passed in to this operator
via Annotations.SUBQUERY. The operator logically proceeds as follows:
1. Incoming are the bindings from outside, i.e. in our example the bindings
for triple pattern "?s JVMPipelinedHashJoinUtility
and the HTreePipelinedHashJoinUtility
.
# Other remarks:
There are some more technicalities like support for ASK_VAR (which is used
by the FILTER (NOT) EXISTS translation scheme, which work in principle in
the same way as they do for the standard hash join.
Usage: the pipelined hash join operator is preferably used for queries
containing LIMIT but *no* ORDER BY. It can also be globally enabled by
system parameter QueryHints.PIPELINED_HASH_JOIN
and via query
hints. See AST2BOpUtility.usePipelinedHashJoin(com.bigdata.rdf.sparql.ast.eval.AST2BOpContext, com.bigdata.rdf.sparql.ast.QueryNodeBase)
for the method
implementing its selection strategy.for implementation
,
Serialized FormModifier and Type | Class and Description |
---|---|
static interface |
PipelinedHashIndexAndSolutionSetJoinOp.Annotations |
HashIndexOpBase.ChunkTaskBase
DEFAULT_INITIAL_CAPACITY
Constructor and Description |
---|
PipelinedHashIndexAndSolutionSetJoinOp(BOp[] args,
Map<String,Object> annotations)
Shallow copy constructor.
|
PipelinedHashIndexAndSolutionSetJoinOp(BOp[] args,
NV... annotations) |
PipelinedHashIndexAndSolutionSetJoinOp(PipelinedHashIndexAndSolutionSetJoinOp op)
Deep copy constructor.
|
Modifier and Type | Method and Description |
---|---|
protected HashIndexOpBase.ChunkTaskBase |
createChunkTask(BOpContext<IBindingSet> context) |
eval, newStats
assertAtOnceJavaHeapOp, assertMaxParallelOne, getChunkCapacity, getChunkOfChunksCapacity, getChunkTimeout, getMaxMemory, getMaxParallel, isAtOnceEvaluation, isBlockedEvaluation, isLastPassRequested, isPipelinedEvaluation, isReorderSolutions, isSharedState
__replaceArg, _clearProperty, _set, _setProperty, annotations, annotationsCopy, annotationsEqual, annotationsRef, argIterator, args, argsCopy, arity, clearAnnotations, clearProperty, deepCopy, deepCopy, get, getProperty, setArg, setProperty, setUnboundProperty, toArray, toArray
annotationsEqual, annotationsToString, annotationsToString, annotationValueToString, checkArgs, clone, equals, getEvaluationContext, getId, getProperty, getRequiredProperty, hashCode, indent, isController, mutation, shortenName, toShortString, toString, toString
public PipelinedHashIndexAndSolutionSetJoinOp(PipelinedHashIndexAndSolutionSetJoinOp op)
public PipelinedHashIndexAndSolutionSetJoinOp(BOp[] args, Map<String,Object> annotations)
args
- annotations
- protected HashIndexOpBase.ChunkTaskBase createChunkTask(BOpContext<IBindingSet> context)
createChunkTask
in class HashIndexOp
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.