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 protectedJoinVisitor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected List<Var>getConstantVars(Iterable<Var> vars)protected intgetForeignVarFreq(List<Var> ownUnboundVars, Map<Var,Integer> varFreqMap)protected <L extends List<TupleExpr>>
LgetJoinArgs(TupleExpr tupleExpr, L joinArgs)protected List<Var>getStatementPatternVars(TupleExpr tupleExpr)protected doublegetTupleExprCost(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)voidmeet(Join node)voidmeet(LeftJoin leftJoin)voidmeetJoin(TupleExpr node)voidmeetOther(QueryModelNode node)protected TupleExprselectNextTupleExpr(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:
meetin interfaceQueryModelVisitor<RuntimeException>- Overrides:
meetin classAbstractQueryModelVisitor<RuntimeException>
-
meetOther
public void meetOther(QueryModelNode node) throws RuntimeException
- Specified by:
meetOtherin interfaceQueryModelVisitor<RuntimeException>- Overrides:
meetOtherin classAbstractQueryModelVisitor<RuntimeException>- Throws:
RuntimeException
-
meet
public void meet(Join node) throws RuntimeException
- Specified by:
meetin interfaceQueryModelVisitor<RuntimeException>- Overrides:
meetin 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)
-
-