Class FilterOptimizer
- java.lang.Object
-
- org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor<OptimizationException>
-
- org.eclipse.rdf4j.federated.optimizer.FilterOptimizer
-
- All Implemented Interfaces:
FedXOptimizer,QueryModelVisitor<OptimizationException>
public class FilterOptimizer extends AbstractQueryModelVisitor<OptimizationException> implements FedXOptimizer
Filter optimizer to push down FILTER expressions as far as possible.- Author:
- Andreas Schwarte
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classFilterOptimizer.FilterBindingFinderprotected static classFilterOptimizer.FilterExprInsertVisitorprotected static classFilterOptimizer.VarFinder
-
Constructor Summary
Constructors Constructor Description FilterOptimizer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidgetConjunctiveExpressions(ValueExpr expr, List<ValueExpr> conjExpr)add the conjunctive expressions to specified list, has recursive step.protected booleanisCompatibleExpr(ValueExpr e)returns true if this filter can be used for optimization.voidmeet(Filter filter)voidmeet(Service node)voidoptimize(TupleExpr tupleExpr)Optimize the provided tuple expression-
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, meetOther, meetSubQueryValueOperator, meetUnaryTupleOperator, meetUnaryValueOperator, meetUpdateExpr
-
-
-
-
Method Detail
-
optimize
public void optimize(TupleExpr tupleExpr)
Description copied from interface:FedXOptimizerOptimize the provided tuple expression- Specified by:
optimizein interfaceFedXOptimizer
-
meet
public void meet(Filter filter)
- Specified by:
meetin interfaceQueryModelVisitor<OptimizationException>- Overrides:
meetin classAbstractQueryModelVisitor<OptimizationException>
-
meet
public void meet(Service node) throws OptimizationException
- Specified by:
meetin interfaceQueryModelVisitor<OptimizationException>- Overrides:
meetin classAbstractQueryModelVisitor<OptimizationException>- Throws:
OptimizationException
-
getConjunctiveExpressions
protected void getConjunctiveExpressions(ValueExpr expr, List<ValueExpr> conjExpr)
add the conjunctive expressions to specified list, has recursive step.- Parameters:
expr- the expr, in the best case in CNFconjExpr- the list to which expressions will be added
-
isCompatibleExpr
protected boolean isCompatibleExpr(ValueExpr e)
returns true if this filter can be used for optimization. Currently no conjunctive or disjunctive expressions are supported.- Parameters:
e-- Returns:
- whether the expression is compatible
-
-