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 Form| Modifier and Type | Class and Description |
|---|---|
static interface |
PipelinedHashIndexAndSolutionSetJoinOp.Annotations |
HashIndexOpBase.ChunkTaskBaseDEFAULT_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, newStatsassertAtOnceJavaHeapOp, 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, toArrayannotationsEqual, annotationsToString, annotationsToString, annotationValueToString, checkArgs, clone, equals, getEvaluationContext, getId, getProperty, getRequiredProperty, hashCode, indent, isController, mutation, shortenName, toShortString, toString, toStringpublic PipelinedHashIndexAndSolutionSetJoinOp(PipelinedHashIndexAndSolutionSetJoinOp op)
public PipelinedHashIndexAndSolutionSetJoinOp(BOp[] args, Map<String,Object> annotations)
args - annotations - protected HashIndexOpBase.ChunkTaskBase createChunkTask(BOpContext<IBindingSet> context)
createChunkTask in class HashIndexOpCopyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.