Class FilterOptimizer
- java.lang.Object
-
- org.eclipse.rdf4j.query.algebra.helpers.AbstractSimpleQueryModelVisitor<OptimizationException>
-
- org.eclipse.rdf4j.federated.optimizer.FilterOptimizer
-
- All Implemented Interfaces:
FedXOptimizer
,QueryModelVisitor<OptimizationException>
public class FilterOptimizer extends AbstractSimpleQueryModelVisitor<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 class
FilterOptimizer.FilterBindingFinder
protected static class
FilterOptimizer.FilterExprInsertVisitor
protected static class
FilterOptimizer.VarFinder
-
Constructor Summary
Constructors Constructor Description FilterOptimizer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
getConjunctiveExpressions(ValueExpr expr, List<ValueExpr> conjExpr)
add the conjunctive expressions to specified list, has recursive step.protected boolean
isCompatibleExpr(ValueExpr e)
returns true if this filter can be used for optimization.void
meet(Filter filter)
void
meet(Service node)
void
optimize(TupleExpr tupleExpr)
Optimize the provided tuple expression-
Methods inherited from class org.eclipse.rdf4j.query.algebra.helpers.AbstractSimpleQueryModelVisitor
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, meet, meetBinaryTupleOperator, meetBinaryValueOperator, meetCompareSubQueryValueOperator, meetNAryValueOperator, meetOther, meetSubQueryValueOperator, meetUnaryTupleOperator, meetUnaryValueOperator, meetUnsupported, meetUpdateExpr
-
-
-
-
Method Detail
-
optimize
public void optimize(TupleExpr tupleExpr)
Description copied from interface:FedXOptimizer
Optimize the provided tuple expression- Specified by:
optimize
in interfaceFedXOptimizer
-
meet
public void meet(Filter filter)
- Specified by:
meet
in interfaceQueryModelVisitor<OptimizationException>
- Overrides:
meet
in classAbstractSimpleQueryModelVisitor<OptimizationException>
-
meet
public void meet(Service node) throws OptimizationException
- Specified by:
meet
in interfaceQueryModelVisitor<OptimizationException>
- Overrides:
meet
in classAbstractSimpleQueryModelVisitor<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
-
-