protected class QueryJoinOptimizer.JoinVisitor extends org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor<RuntimeException>
| Modifier | Constructor and Description |
|---|---|
protected |
JoinVisitor() |
| Modifier and Type | Method and Description |
|---|---|
protected List<org.eclipse.rdf4j.query.algebra.Var> |
getConstantVars(Iterable<org.eclipse.rdf4j.query.algebra.Var> vars) |
protected List<org.eclipse.rdf4j.query.algebra.Extension> |
getExtensions(List<org.eclipse.rdf4j.query.algebra.TupleExpr> expressions) |
protected int |
getForeignVarFreq(List<org.eclipse.rdf4j.query.algebra.Var> ownUnboundVars,
Map<org.eclipse.rdf4j.query.algebra.Var,Integer> varFreqMap) |
protected <L extends List<org.eclipse.rdf4j.query.algebra.TupleExpr>> |
getJoinArgs(org.eclipse.rdf4j.query.algebra.TupleExpr tupleExpr,
L joinArgs) |
protected List<org.eclipse.rdf4j.query.algebra.Var> |
getStatementPatternVars(org.eclipse.rdf4j.query.algebra.TupleExpr tupleExpr) |
protected List<org.eclipse.rdf4j.query.algebra.TupleExpr> |
getSubSelects(List<org.eclipse.rdf4j.query.algebra.TupleExpr> expressions) |
protected double |
getTupleExprCardinality(org.eclipse.rdf4j.query.algebra.TupleExpr tupleExpr,
Map<org.eclipse.rdf4j.query.algebra.TupleExpr,Double> cardinalityMap,
Map<org.eclipse.rdf4j.query.algebra.TupleExpr,List<org.eclipse.rdf4j.query.algebra.Var>> varsMap,
Map<org.eclipse.rdf4j.query.algebra.Var,Integer> varFreqMap,
Set<String> boundVars) |
protected List<org.eclipse.rdf4j.query.algebra.Var> |
getUnboundVars(Iterable<org.eclipse.rdf4j.query.algebra.Var> vars) |
protected <M extends Map<org.eclipse.rdf4j.query.algebra.Var,Integer>> |
getVarFreqMap(List<org.eclipse.rdf4j.query.algebra.Var> varList,
M varFreqMap) |
void |
meet(org.eclipse.rdf4j.query.algebra.Join node) |
void |
meet(org.eclipse.rdf4j.query.algebra.LeftJoin leftJoin) |
protected List<org.eclipse.rdf4j.query.algebra.TupleExpr> |
reorderSubselects(List<org.eclipse.rdf4j.query.algebra.TupleExpr> subselects)
Determines an optimal ordering of subselect join arguments, based on variable bindings.
|
protected org.eclipse.rdf4j.query.algebra.TupleExpr |
selectNextTupleExpr(List<org.eclipse.rdf4j.query.algebra.TupleExpr> expressions,
Map<org.eclipse.rdf4j.query.algebra.TupleExpr,Double> cardinalityMap,
Map<org.eclipse.rdf4j.query.algebra.TupleExpr,List<org.eclipse.rdf4j.query.algebra.Var>> varsMap,
Map<org.eclipse.rdf4j.query.algebra.Var,Integer> varFreqMap,
Set<String> boundVars)
Selects from a list of tuple expressions the next tuple expression that should be evaluated.
|
meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meetBinaryTupleOperator, meetBinaryValueOperator, meetCompareSubQueryValueOperator, meetNAryValueOperator, meetNode, meetOther, meetSubQueryValueOperator, meetUnaryTupleOperator, meetUnaryValueOperator, meetUpdateExprpublic void meet(org.eclipse.rdf4j.query.algebra.LeftJoin leftJoin)
meet in interface org.eclipse.rdf4j.query.algebra.QueryModelVisitor<RuntimeException>meet in class org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor<RuntimeException>public void meet(org.eclipse.rdf4j.query.algebra.Join node)
meet in interface org.eclipse.rdf4j.query.algebra.QueryModelVisitor<RuntimeException>meet in class org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor<RuntimeException>protected <L extends List<org.eclipse.rdf4j.query.algebra.TupleExpr>> L getJoinArgs(org.eclipse.rdf4j.query.algebra.TupleExpr tupleExpr, L joinArgs)
protected List<org.eclipse.rdf4j.query.algebra.Var> getStatementPatternVars(org.eclipse.rdf4j.query.algebra.TupleExpr tupleExpr)
protected <M extends Map<org.eclipse.rdf4j.query.algebra.Var,Integer>> M getVarFreqMap(List<org.eclipse.rdf4j.query.algebra.Var> varList, M varFreqMap)
protected List<org.eclipse.rdf4j.query.algebra.Extension> getExtensions(List<org.eclipse.rdf4j.query.algebra.TupleExpr> expressions)
protected List<org.eclipse.rdf4j.query.algebra.TupleExpr> getSubSelects(List<org.eclipse.rdf4j.query.algebra.TupleExpr> expressions)
protected List<org.eclipse.rdf4j.query.algebra.TupleExpr> reorderSubselects(List<org.eclipse.rdf4j.query.algebra.TupleExpr> subselects)
Example: reordering
[f] [a b c] [e f] [a d] [b e]should result in:
[a b c] [a d] [b e] [e f] [f]
subselects - the original ordering of expressionsprotected org.eclipse.rdf4j.query.algebra.TupleExpr selectNextTupleExpr(List<org.eclipse.rdf4j.query.algebra.TupleExpr> expressions, Map<org.eclipse.rdf4j.query.algebra.TupleExpr,Double> cardinalityMap, Map<org.eclipse.rdf4j.query.algebra.TupleExpr,List<org.eclipse.rdf4j.query.algebra.Var>> varsMap, Map<org.eclipse.rdf4j.query.algebra.Var,Integer> varFreqMap, Set<String> boundVars)
protected double getTupleExprCardinality(org.eclipse.rdf4j.query.algebra.TupleExpr tupleExpr,
Map<org.eclipse.rdf4j.query.algebra.TupleExpr,Double> cardinalityMap,
Map<org.eclipse.rdf4j.query.algebra.TupleExpr,List<org.eclipse.rdf4j.query.algebra.Var>> varsMap,
Map<org.eclipse.rdf4j.query.algebra.Var,Integer> varFreqMap,
Set<String> boundVars)
protected List<org.eclipse.rdf4j.query.algebra.Var> getConstantVars(Iterable<org.eclipse.rdf4j.query.algebra.Var> vars)
protected List<org.eclipse.rdf4j.query.algebra.Var> getUnboundVars(Iterable<org.eclipse.rdf4j.query.algebra.Var> vars)
Copyright © 2015-2019 Eclipse Foundation. All Rights Reserved.