Class QueryJoinOptimizer
- java.lang.Object
-
- org.eclipse.rdf4j.query.algebra.evaluation.optimizer.QueryJoinOptimizer
-
- All Implemented Interfaces:
QueryOptimizer
- Direct Known Subclasses:
QueryJoinOptimizer
public class QueryJoinOptimizer extends java.lang.Object implements QueryOptimizer
A query optimizer that re-orders nested Joins.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
QueryJoinOptimizer.JoinVisitor
-
Field Summary
Fields Modifier and Type Field Description protected EvaluationStatistics
statistics
private boolean
trackResultSize
-
Constructor Summary
Constructors Constructor Description QueryJoinOptimizer(EvaluationStatistics statistics)
QueryJoinOptimizer(EvaluationStatistics statistics, boolean trackResultSize)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static int
getJoinSize(java.util.Set<java.lang.String> currentListNames, java.util.Set<java.lang.String> names)
private static int
getUnionSize(java.util.Set<java.lang.String> currentListNames, java.util.Set<java.lang.String> candidateBindingNames)
private static boolean
hasCachedCardinality(TupleExpr tupleExpr)
void
optimize(TupleExpr tupleExpr, Dataset dataset, BindingSet bindings)
Applies generally applicable optimizations: path expressions are sorted from more to less specific.
-
-
-
Field Detail
-
statistics
protected final EvaluationStatistics statistics
-
trackResultSize
private final boolean trackResultSize
-
-
Constructor Detail
-
QueryJoinOptimizer
public QueryJoinOptimizer(EvaluationStatistics statistics)
-
QueryJoinOptimizer
public QueryJoinOptimizer(EvaluationStatistics statistics, boolean trackResultSize)
-
-
Method Detail
-
optimize
public void optimize(TupleExpr tupleExpr, Dataset dataset, BindingSet bindings)
Applies generally applicable optimizations: path expressions are sorted from more to less specific.- Specified by:
optimize
in interfaceQueryOptimizer
- Parameters:
tupleExpr
-
-
getUnionSize
private static int getUnionSize(java.util.Set<java.lang.String> currentListNames, java.util.Set<java.lang.String> candidateBindingNames)
-
getJoinSize
private static int getJoinSize(java.util.Set<java.lang.String> currentListNames, java.util.Set<java.lang.String> names)
-
hasCachedCardinality
private static boolean hasCachedCardinality(TupleExpr tupleExpr)
-
-