Class QueryMultiJoinOptimizer.JoinVisitor
- java.lang.Object
-
- org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor<RuntimeException>
-
- org.eclipse.rdf4j.sail.federation.optimizers.QueryMultiJoinOptimizer.JoinVisitor
-
- All Implemented Interfaces:
QueryModelVisitor<RuntimeException>
- Enclosing class:
- QueryMultiJoinOptimizer
protected class QueryMultiJoinOptimizer.JoinVisitor extends AbstractQueryModelVisitor<RuntimeException>
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
JoinVisitor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected List<Var>
getConstantVars(Iterable<Var> vars)
protected int
getForeignVarFreq(List<Var> ownUnboundVars, Map<Var,Integer> varFreqMap)
protected <L extends List<TupleExpr>>
LgetJoinArgs(TupleExpr tupleExpr, L joinArgs)
protected List<Var>
getStatementPatternVars(TupleExpr tupleExpr)
protected double
getTupleExprCost(TupleExpr tupleExpr, Map<TupleExpr,Double> cardinalityMap, Map<TupleExpr,List<Var>> varsMap, Map<Var,Integer> varFreqMap, Set<String> boundVars)
protected List<Var>
getUnboundVars(Iterable<Var> vars)
protected <M extends Map<Var,Integer>>
MgetVarFreqMap(List<Var> varList, M varFreqMap)
void
meet(Join node)
void
meet(LeftJoin leftJoin)
void
meetJoin(TupleExpr node)
void
meetOther(QueryModelNode node)
protected TupleExpr
selectNextTupleExpr(List<TupleExpr> expressions, Map<TupleExpr,Double> cardinalityMap, Map<TupleExpr,List<Var>> varsMap, Map<Var,Integer> varFreqMap, Set<String> boundVars)
Selects from a list of tuple expressions the next tuple expression that should be evaluated.-
Methods inherited from class org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor
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, meet, meet, meetBinaryTupleOperator, meetBinaryValueOperator, meetCompareSubQueryValueOperator, meetNAryValueOperator, meetNode, meetSubQueryValueOperator, meetUnaryTupleOperator, meetUnaryValueOperator, meetUpdateExpr
-
-
-
-
Method Detail
-
meet
public void meet(LeftJoin leftJoin)
- Specified by:
meet
in interfaceQueryModelVisitor<RuntimeException>
- Overrides:
meet
in classAbstractQueryModelVisitor<RuntimeException>
-
meetOther
public void meetOther(QueryModelNode node) throws RuntimeException
- Specified by:
meetOther
in interfaceQueryModelVisitor<RuntimeException>
- Overrides:
meetOther
in classAbstractQueryModelVisitor<RuntimeException>
- Throws:
RuntimeException
-
meet
public void meet(Join node) throws RuntimeException
- Specified by:
meet
in interfaceQueryModelVisitor<RuntimeException>
- Overrides:
meet
in classAbstractQueryModelVisitor<RuntimeException>
- Throws:
RuntimeException
-
meetJoin
public void meetJoin(TupleExpr node)
-
getVarFreqMap
protected <M extends Map<Var,Integer>> M getVarFreqMap(List<Var> varList, M varFreqMap)
-
selectNextTupleExpr
protected TupleExpr selectNextTupleExpr(List<TupleExpr> expressions, Map<TupleExpr,Double> cardinalityMap, Map<TupleExpr,List<Var>> varsMap, Map<Var,Integer> varFreqMap, Set<String> boundVars)
Selects from a list of tuple expressions the next tuple expression that should be evaluated. This method selects the tuple expression with highest number of bound variables, preferring variables that have been bound in other tuple expressions over variables with a fixed value.
-
getTupleExprCost
protected double getTupleExprCost(TupleExpr tupleExpr, Map<TupleExpr,Double> cardinalityMap, Map<TupleExpr,List<Var>> varsMap, Map<Var,Integer> varFreqMap, Set<String> boundVars)
-
-