Class ConstantOptimizer.ConstantVisitor
- java.lang.Object
-
- org.eclipse.rdf4j.query.algebra.helpers.AbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
- org.eclipse.rdf4j.query.algebra.evaluation.optimizer.ConstantOptimizer.VarNameCollector
-
- org.eclipse.rdf4j.query.algebra.evaluation.optimizer.ConstantOptimizer.ConstantVisitor
-
- All Implemented Interfaces:
QueryModelVisitor<java.lang.RuntimeException>
- Enclosing class:
- ConstantOptimizer
private static class ConstantOptimizer.ConstantVisitor extends ConstantOptimizer.VarNameCollector
-
-
Field Summary
Fields Modifier and Type Field Description private QueryEvaluationContextcontext(package private) java.util.List<ProjectionElemList>projElemListsprivate EvaluationStrategystrategy-
Fields inherited from class org.eclipse.rdf4j.query.algebra.evaluation.optimizer.ConstantOptimizer.VarNameCollector
varNames
-
-
Constructor Summary
Constructors Constructor Description ConstantVisitor(EvaluationStrategy strategy, QueryEvaluationContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private booleanisConstant(ValueExpr expr)private booleanisConstantZeroArgFunction(FunctionCall functionCall)Determines if the provided zero-arg function is a function that should return a constant value for the entire query execution (e.g NOW()), or if it should generate a new value for every call (e.g.voidmeet(And and)voidmeet(Bound bound)voidmeet(FunctionCall functionCall)voidmeet(If node)voidmeet(Or or)voidmeet(ProjectionElemList projElems)voidmeet(Regex node)Override meetBinaryValueOperatorprotected voidmeetBinaryValueOperator(BinaryValueOperator binaryValueOp)Method called by all meet methods with aBinaryValueOperatornode as argument.protected voidmeetUnaryValueOperator(UnaryValueOperator unaryValueOp)Method called by all meet methods with aUnaryValueOperatornode as argument.-
Methods inherited from class org.eclipse.rdf4j.query.algebra.evaluation.optimizer.ConstantOptimizer.VarNameCollector
meet
-
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, meetBinaryTupleOperator, meetCompareSubQueryValueOperator, meetNAryValueOperator, meetOther, meetSubQueryValueOperator, meetUnaryTupleOperator, meetUnsupported, meetUpdateExpr
-
-
-
-
Field Detail
-
strategy
private final EvaluationStrategy strategy
-
context
private final QueryEvaluationContext context
-
projElemLists
java.util.List<ProjectionElemList> projElemLists
-
-
Constructor Detail
-
ConstantVisitor
public ConstantVisitor(EvaluationStrategy strategy, QueryEvaluationContext context)
-
-
Method Detail
-
meet
public void meet(ProjectionElemList projElems)
- Specified by:
meetin interfaceQueryModelVisitor<java.lang.RuntimeException>- Overrides:
meetin classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
meet
public void meet(Or or)
- Specified by:
meetin interfaceQueryModelVisitor<java.lang.RuntimeException>- Overrides:
meetin classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
meet
public void meet(And and)
- Specified by:
meetin interfaceQueryModelVisitor<java.lang.RuntimeException>- Overrides:
meetin classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
meetBinaryValueOperator
protected void meetBinaryValueOperator(BinaryValueOperator binaryValueOp)
Description copied from class:AbstractSimpleQueryModelVisitorMethod called by all meet methods with aBinaryValueOperatornode as argument.- Overrides:
meetBinaryValueOperatorin classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>- Parameters:
binaryValueOp- The node that is being visited.
-
meetUnaryValueOperator
protected void meetUnaryValueOperator(UnaryValueOperator unaryValueOp)
Description copied from class:AbstractSimpleQueryModelVisitorMethod called by all meet methods with aUnaryValueOperatornode as argument.- Overrides:
meetUnaryValueOperatorin classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>- Parameters:
unaryValueOp- The node that is being visited.
-
meet
public void meet(FunctionCall functionCall)
- Specified by:
meetin interfaceQueryModelVisitor<java.lang.RuntimeException>- Overrides:
meetin classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
isConstantZeroArgFunction
private boolean isConstantZeroArgFunction(FunctionCall functionCall)
Determines if the provided zero-arg function is a function that should return a constant value for the entire query execution (e.g NOW()), or if it should generate a new value for every call (e.g. RAND()).- Parameters:
functionCall- a zero-arg function call.- Returns:
trueiff the provided function returns a constant value for the query execution,falseotherwise.
-
meet
public void meet(Bound bound)
- Specified by:
meetin interfaceQueryModelVisitor<java.lang.RuntimeException>- Overrides:
meetin classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
meet
public void meet(If node)
- Specified by:
meetin interfaceQueryModelVisitor<java.lang.RuntimeException>- Overrides:
meetin classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
meet
public void meet(Regex node)
Override meetBinaryValueOperator- Specified by:
meetin interfaceQueryModelVisitor<java.lang.RuntimeException>- Overrides:
meetin classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
isConstant
private boolean isConstant(ValueExpr expr)
-
-