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 ClassesModifier and TypeClassDescriptionprotected static classprotected static classprotected static class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidgetConjunctiveExpressions(ValueExpr expr, List<ValueExpr> conjExpr) add the conjunctive expressions to specified list, has recursive step.protected booleanreturns true if this filter can be used for optimization.voidvoidvoidOptimize the provided tuple expressionMethods inherited from class 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, meetBinaryTupleOperator, meetBinaryValueOperator, meetCompareSubQueryValueOperator, meetNAryValueOperator, meetOther, meetSubQueryValueOperator, meetUnaryTupleOperator, meetUnaryValueOperator, meetUnsupported, meetUpdateExprModifier and TypeMethodDescriptionvoidvoidmeet(AggregateFunctionCall node) voidvoidmeet(ArbitraryLengthPath node) voidvoidmeet(BindingSetAssignment node) voidmeet(BNodeGenerator node) voidvoidvoidvoidvoidmeet(CompareAll node) voidmeet(CompareAny node) voidvoidvoidvoidvoidmeet(DeleteData node) voidmeet(DescribeOperator node) voidmeet(Difference node) voidvoidvoidvoidvoidmeet(ExtensionElem node) voidmeet(FunctionCall node) voidvoidmeet(GroupConcat node) voidvoidvoidvoidmeet(InsertData node) voidmeet(Intersection node) voidmeet(IRIFunction node) voidvoidvoidvoidmeet(IsResource node) voidvoidvoidvoidvoidmeet(LangMatches node) voidvoidmeet(ListMemberOperator node) voidvoidvoidvoidvoidvoidvoidvoidmeet(MultiProjection node) voidvoidvoidvoidvoidvoidmeet(Projection node) voidmeet(ProjectionElem node) voidmeet(ProjectionElemList node) voidvoidvoidvoidvoidvoidmeet(SingletonSet node) voidvoidmeet(StatementPattern node) voidvoidvoidvoidvoidmeet(ValueConstant node) voidmeet(ValueExprTripleRef node) voidvoidmeet(ZeroLengthPath node) protected voidMethod called by all meet methods with aBinaryTupleOperatornode as argument.protected voidMethod called by all meet methods with aBinaryValueOperatornode as argument.protected voidMethod called by all meet methods with aCompareSubQueryValueOperatornode as argument.protected voidMethod called by all meet methods with aNAryValueOperatornode as argument.voidmeetOther(QueryModelNode node) protected voidMethod called by all meet methods with aSubQueryValueOperatornode as argument.protected voidMethod called by all meet methods with aUnaryTupleOperatornode as argument.protected voidMethod called by all meet methods with aUnaryValueOperatornode as argument.voidprotected voidmeetUpdateExpr(UpdateExpr node) Method called by all meet methods with aUpdateExprnode as argument.
-
Constructor Details
-
FilterOptimizer
public FilterOptimizer()
-
-
Method Details
-
optimize
Description copied from interface:FedXOptimizerOptimize the provided tuple expression- Specified by:
optimizein interfaceFedXOptimizer- Parameters:
tupleExpr-
-
meet
- Specified by:
meetin interfaceQueryModelVisitor<OptimizationException>- Overrides:
meetin classAbstractSimpleQueryModelVisitor<OptimizationException>
-
meet
- Specified by:
meetin interfaceQueryModelVisitor<OptimizationException>- Overrides:
meetin classAbstractSimpleQueryModelVisitor<OptimizationException>- Throws:
OptimizationException
-
getConjunctiveExpressions
-
isCompatibleExpr
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
-