Package | Description |
---|---|
com.bigdata.rdf.sparql.ast |
This package contains an Abstract Syntax Tree which provides an intermediate translation
target for SPARQL parsers.
|
com.bigdata.rdf.sparql.ast.eval | |
com.bigdata.rdf.sparql.ast.hints |
Query hints are specified at the SPARQL layer using magic predicates.
|
com.bigdata.rdf.sparql.ast.optimizers |
Constructor and Description |
---|
ConstructNode(AST2BOpContext ctx) |
Modifier and Type | Class and Description |
---|---|
class |
AST2BOpUpdateContext
Extended to expose the connection used to execute the SPARQL UPDATE request.
|
Modifier and Type | Method and Description |
---|---|
protected static PipelineOp |
AST2BOpFilters.addChunkedMaterializationStep(PipelineOp left,
Set<IVariable<IV>> vars,
boolean materializeInlineIvs,
Long cutoffLimit,
Properties queryHints,
AST2BOpContext ctx)
Use a pipeline operator which uses the chunked materialization pattern
for solution sets.
|
protected static PipelineOp |
AST2BOpFilters.addMaterializationSteps1(PipelineOp left,
int rightId,
IValueExpression<IV> ve,
Set<IVariable<IV>> vars,
Properties queryHints,
AST2BOpContext ctx)
If the value expression that needs the materialized variables can run
without a
NotMaterializedException then just route to the
rightId (around the rest of the materialization pipeline steps). |
protected static PipelineOp |
AST2BOpFilters.addMaterializationSteps2(PipelineOp left,
int rightId,
Set<IVariable<IV>> vars,
Properties queryHints,
AST2BOpContext ctx)
Adds a series of materialization steps to materialize terms needed
downstream.
|
protected static PipelineOp |
AST2BOpFilters.addMaterializationSteps3(PipelineOp left,
Set<IVariable<?>> doneSet,
Map<IConstraint,Set<IVariable<IV>>> needsMaterialization,
Properties queryHints,
AST2BOpContext ctx)
For each filter which requires materialization steps, add the
materializations steps to the pipeline and then add the filter to the
pipeline.
|
protected static PipelineOp |
AST2BOpFilters.addNonConditionalMaterializationSteps(PipelineOp left,
Set<IVariable<?>> doneSet,
Map<IConstraint,Set<IVariable<IV>>> needsMaterialization,
Long cutoffLimit,
Properties queryHints,
AST2BOpContext ctx)
The RTO requires that we do not reorder solutions.
|
protected static PipelineOp |
AST2BOpBase.applyQueryHints(PipelineOp op,
ASTBase node,
AST2BOpContext ctx)
Apply any query hints to the operator as annotations of that operator.
|
protected static PipelineOp |
AST2BOpBase.applyQueryHints(PipelineOp op,
Properties nodeQueryHints,
AST2BOpContext ctx)
Apply any query hints to the operator as annotations of that operator.
|
protected FunctionNode |
ASTSearchInSearchOptimizer.convert(AST2BOpContext ctx,
FunctionNode searchInSearch)
Perform the conversion from one function (BDS.SEARCH_IN_SEARCH) to
another (IN).
|
PipelineOp |
IExternalAST2BOp.convertJoinGroup(PipelineOp left,
JoinGroupNode joinGroup,
Set<IVariable<?>> doneSet,
AtomicInteger start,
AST2BOpContext ctx)
Translate the given join group.
|
protected static PipelineOp |
AST2BOpRTO.convertRTOJoinGraph(PipelineOp left,
JoinGroupNode joinGroup,
Set<IVariable<?>> doneSet,
AST2BOpContext ctx,
AtomicInteger start)
Inspect the remainder of the join group.
|
PipelineOp |
IExternalAST2BOp.fastRangeCountJoin(PipelineOp left,
List<NV> anns,
Predicate<?> pred,
DatasetNode dataset,
Long cutoffLimitIsIgnored,
VarNode fastRangeCountVar,
Properties queryHints,
AST2BOpContext ctx)
Use a
FastRangeCountOp . |
protected IV[] |
ASTSearchInSearchOptimizer.getHits(AST2BOpContext ctx,
org.openrdf.model.Literal search,
String match,
String regex)
Collect the hits for the IN filter.
|
static PipelineOp |
AST2BOpJoins.join(PipelineOp left,
Predicate pred,
Set<IVariable<?>> doneSet,
Collection<IConstraint> constraints,
Long cutoffLimit,
Properties queryHints,
AST2BOpContext ctx)
Add a join for a statement pattern.
|
QueryNodeWithBindingSet |
ASTSearchOptimizerBase.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
protected void |
ASTSearchInSearchOptimizer.optimize(AST2BOpContext ctx,
StaticAnalysis sa,
JoinGroupNode group,
FilterNode filterNode)
Optimize a single FilterNode.
|
protected void |
ASTSearchInSearchOptimizer.optimizeJoinGroup(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode group)
Optimize the join group.
|
static QueryRoot |
ASTEvalHelper.optimizeQuery(ASTContainer astContainer,
AST2BOpContext context,
org.openrdf.query.algebra.evaluation.QueryBindingSet globallyScopedBS,
org.openrdf.query.Dataset dataset)
Optimize a SELECT query.
|
static com.bigdata.rdf.sparql.ast.eval.ASTDeferredIVResolution.DeferredResolutionResult |
ASTDeferredIVResolution.resolveQuery(AbstractTripleStore store,
ASTContainer ast,
org.openrdf.query.BindingSet bs,
org.openrdf.query.Dataset dataset,
AST2BOpContext ctxIn)
Do deferred resolution of IVs, which were left unresolved while preparing
the query
|
protected static Predicate |
AST2BOpUtility.toPredicate(StatementPatternNode sp,
AST2BOpContext ctx)
Method produces a
Predicate which captures the semantics of the
StatementPatternNode . |
Constructor and Description |
---|
ASTConstructIterator(AST2BOpContext context,
AbstractTripleStore tripleStore,
ConstructNode construct,
GraphPatternGroup<?> whereClause,
Map<String,BigdataBNode> bnodesIn,
info.aduna.iteration.CloseableIteration<org.openrdf.query.BindingSet,org.openrdf.query.QueryEvaluationException> src) |
Modifier and Type | Method and Description |
---|---|
void |
BasicBooleanQueryHint.handle(AST2BOpContext context,
QueryRoot queryRoot,
QueryHintScope scope,
ASTBase op,
Boolean value) |
void |
BasicDoubleQueryHint.handle(AST2BOpContext context,
QueryRoot queryRoot,
QueryHintScope scope,
ASTBase op,
Double value) |
void |
AbstractChunkSizeHint.handle(AST2BOpContext context,
QueryRoot queryRoot,
QueryHintScope scope,
ASTBase op,
Integer value) |
void |
BasicIntQueryHint.handle(AST2BOpContext context,
QueryRoot queryRoot,
QueryHintScope scope,
ASTBase op,
Integer value) |
void |
BasicLongQueryHint.handle(AST2BOpContext context,
QueryRoot queryRoot,
QueryHintScope scope,
ASTBase op,
Long value) |
void |
OptimizerQueryHint.handle(AST2BOpContext ctx,
QueryRoot queryRoot,
QueryHintScope scope,
ASTBase op,
QueryOptimizerEnum value) |
void |
BasicStringQueryHint.handle(AST2BOpContext context,
QueryRoot queryRoot,
QueryHintScope scope,
ASTBase op,
String value) |
void |
IQueryHint.handle(AST2BOpContext ctx,
QueryRoot queryRoot,
QueryHintScope scope,
ASTBase op,
T value)
Handle the query hint.
|
Modifier and Type | Method and Description |
---|---|
protected void |
ASTRangeCountOptimizer.attachRangeCounts(AST2BOpContext ctx,
List<StatementPatternNode> spNodes,
IBindingSet exogenousBindings,
int nrExogeneousBindings)
Use the
SPORelation from the database to grab the appropriate
range counts for the StatementPatternNode s. |
protected void |
ASTRangeCountOptimizer.estimateCardinalities(StatementPatternNode sp,
IV<?,?> s,
IV<?,?> p,
IV<?,?> o,
IV<?,?> c,
AST2BOpContext ctx,
int exogenousBindingsAdjustmentFactor) |
protected void |
ASTRangeCountOptimizer.estimateCardinality(StatementPatternNode sp,
AST2BOpContext ctx,
IBindingSet exogenousBindings,
int nrExogeneousBindings)
For testing purposes we can override this method.
|
protected boolean |
ASTFastRangeCountOptimizer.markForFastRangeCount(AST2BOpContext context,
StatementPatternNode sp,
VarNode fastRangeCountVariable)
Marks the triple pattern for fast range count, if supported.
|
protected void |
ASTFilterNormalizationOptimizer.normalizeAndDecomposeFilters(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode group)
Bring all FILTERs into CNF and split them at top-level to contain
simpler FILTER expressions.
|
QueryNodeWithBindingSet |
ASTOptimizerList.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input)
Run all the optimizers in the list.
|
QueryNodeWithBindingSet |
ASTFlattenJoinGroupsOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTOrderByAggregateFlatteningOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTSparql11SubqueryOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTSimpleOptionalOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTQueryHintOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTConstructOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTNamedSubqueryOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
AskOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTSimpleGroupByAndCountOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTServiceNodeOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTStaticJoinOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTSubGroupJoinVarOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTEmptyGroupOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTLiftPreFiltersOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
AbstractJoinGroupOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input)
Top-level optimize method.
|
QueryNodeWithBindingSet |
ASTAttachJoinFiltersOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTFastRangeCountOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTRunFirstRunLastOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
IASTOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input)
Optimize the AST.
|
QueryNodeWithBindingSet |
ASTGraphGroupOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTHashJoinOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTWildcardProjectionOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTUnionFiltersOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTUnknownTermOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTExistsOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTDescribeOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTFlattenUnionsOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTRangeConstraintOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTComplexOptionalOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input)
Deprecated.
|
QueryNodeWithBindingSet |
ASTSetValueExpressionsOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTBottomUpOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTDistinctTermScanOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
QueryNodeWithBindingSet |
ASTStaticBindingsOptimizer.optimize(AST2BOpContext context,
QueryNodeWithBindingSet input) |
protected void |
ASTPropertyPathOptimizer.optimize(AST2BOpContext ctx,
StaticAnalysis sa,
GraphPatternGroup<? extends IGroupMemberNode> group,
com.bigdata.rdf.sparql.ast.optimizers.ASTPropertyPathOptimizer.PropertyPathInfo ppInfo,
PathNode.PathAlternative pathAlt,
ArbitraryLengthPathNode alpNode,
Properties queryHints,
PropertyPathNode ppNode)
Optimize a PathAlternative using UNIONs.
|
protected void |
ASTPropertyPathOptimizer.optimize(AST2BOpContext ctx,
StaticAnalysis sa,
GraphPatternGroup<? extends IGroupMemberNode> group,
com.bigdata.rdf.sparql.ast.optimizers.ASTPropertyPathOptimizer.PropertyPathInfo ppInfo,
PathNode.PathElt pathElt,
ArbitraryLengthPathNode alpNode,
Properties queryHints,
PropertyPathNode ppNode)
Optimize a PathElt.
|
protected void |
ASTPropertyPathOptimizer.optimize(AST2BOpContext ctx,
StaticAnalysis sa,
GraphPatternGroup<? extends IGroupMemberNode> group,
com.bigdata.rdf.sparql.ast.optimizers.ASTPropertyPathOptimizer.PropertyPathInfo ppInfo,
PathNode.PathNegatedPropertySet pathNPS,
ArbitraryLengthPathNode alpNode,
PropertyPathNode ppNode)
Optimize a PathNegatedPropertySet.
|
protected void |
ASTPropertyPathOptimizer.optimize(AST2BOpContext ctx,
StaticAnalysis sa,
GraphPatternGroup<? extends IGroupMemberNode> group,
com.bigdata.rdf.sparql.ast.optimizers.ASTPropertyPathOptimizer.PropertyPathInfo ppInfo,
PathNode.PathSequence pathSeq,
ArbitraryLengthPathNode alpNode,
Properties queryHints,
PropertyPathNode ppNode)
Optimize a PathSequence.
|
protected void |
ASTPropertyPathOptimizer.optimize(AST2BOpContext ctx,
StaticAnalysis sa,
GraphPatternGroup<? extends IGroupMemberNode> group,
com.bigdata.rdf.sparql.ast.optimizers.ASTPropertyPathOptimizer.PropertyPathInfo ppInfo,
TermNode termNode,
PropertyPathNode ppNode)
Optimize a TermNode (add a statement pattern to the group).
|
protected void |
ASTPropertyPathOptimizer.optimize(AST2BOpContext ctx,
StaticAnalysis sa,
GraphPatternGroup<? extends IGroupMemberNode> group,
com.bigdata.rdf.sparql.ast.optimizers.ASTPropertyPathOptimizer.PropertyPathInfo ppInfo,
ZeroLengthPathNode zlpNode,
PropertyPathNode ppNode)
Optimize a ZeroLengthPathNode (add it to the group with the left and
right properly set).
|
protected void |
ASTPropertyPathOptimizer.optimize(AST2BOpContext ctx,
StaticAnalysis sa,
JoinGroupNode group,
PropertyPathNode ppNode,
ArbitraryLengthPathNode alpNode)
Optimize a single PropertyPathNode.
|
protected void |
ASTCardinalityOptimizer.optimizeJoinGroup(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode group)
Calculate the estimated cardinality of a join group.
|
protected void |
ASTRangeCountOptimizer.optimizeJoinGroup(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode group)
Optimize the join group.
|
protected void |
ASTALPServiceOptimizer.optimizeJoinGroup(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode group)
Optimize the join group.
|
protected void |
ASTJoinGroupOrderOptimizer.optimizeJoinGroup(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode joinGroup) |
protected void |
ASTPropertyPathOptimizer.optimizeJoinGroup(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode group)
Optimize the join group.
|
protected void |
ASTRangeOptimizer.optimizeJoinGroup(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode group)
Optimize the join group, attach range nodes.
|
protected abstract void |
AbstractJoinGroupOptimizer.optimizeJoinGroup(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode op)
Subclasses can do the work of optimizing a join group here.
|
protected void |
ASTJoinOrderByTypeOptimizer.optimizeJoinGroup(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode joinGroup)
Deprecated.
Get the group member nodes into the right order:
|
protected void |
ASTFilterNormalizationOptimizer.optimizeJoinGroup(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode group) |
protected void |
ASTFilterNormalizationOptimizer.removeDuplicatesAndTautologies(AST2BOpContext ctx,
StaticAnalysis sa,
IBindingSet[] bSets,
JoinGroupNode group)
Remove duplicate FILTERs and tautologies
|
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.