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 QueryEvaluationContext
context
(package private) java.util.List<ProjectionElemList>
projElemLists
private EvaluationStrategy
strategy
-
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 boolean
isConstant(ValueExpr expr)
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.void
meet(And and)
void
meet(Bound bound)
void
meet(FunctionCall functionCall)
void
meet(If node)
void
meet(Or or)
void
meet(ProjectionElemList projElems)
void
meet(Regex node)
Override meetBinaryValueOperatorprotected void
meetBinaryValueOperator(BinaryValueOperator binaryValueOp)
Method called by all meet methods with aBinaryValueOperator
node as argument.protected void
meetUnaryValueOperator(UnaryValueOperator unaryValueOp)
Method called by all meet methods with aUnaryValueOperator
node 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:
meet
in interfaceQueryModelVisitor<java.lang.RuntimeException>
- Overrides:
meet
in classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
meet
public void meet(Or or)
- Specified by:
meet
in interfaceQueryModelVisitor<java.lang.RuntimeException>
- Overrides:
meet
in classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
meet
public void meet(And and)
- Specified by:
meet
in interfaceQueryModelVisitor<java.lang.RuntimeException>
- Overrides:
meet
in classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
meetBinaryValueOperator
protected void meetBinaryValueOperator(BinaryValueOperator binaryValueOp)
Description copied from class:AbstractSimpleQueryModelVisitor
Method called by all meet methods with aBinaryValueOperator
node as argument.- Overrides:
meetBinaryValueOperator
in classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
- Parameters:
binaryValueOp
- The node that is being visited.
-
meetUnaryValueOperator
protected void meetUnaryValueOperator(UnaryValueOperator unaryValueOp)
Description copied from class:AbstractSimpleQueryModelVisitor
Method called by all meet methods with aUnaryValueOperator
node as argument.- Overrides:
meetUnaryValueOperator
in classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
- Parameters:
unaryValueOp
- The node that is being visited.
-
meet
public void meet(FunctionCall functionCall)
- Specified by:
meet
in interfaceQueryModelVisitor<java.lang.RuntimeException>
- Overrides:
meet
in 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:
true
iff the provided function returns a constant value for the query execution,
false
otherwise.
-
meet
public void meet(Bound bound)
- Specified by:
meet
in interfaceQueryModelVisitor<java.lang.RuntimeException>
- Overrides:
meet
in classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
meet
public void meet(If node)
- Specified by:
meet
in interfaceQueryModelVisitor<java.lang.RuntimeException>
- Overrides:
meet
in classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
meet
public void meet(Regex node)
Override meetBinaryValueOperator- Specified by:
meet
in interfaceQueryModelVisitor<java.lang.RuntimeException>
- Overrides:
meet
in classAbstractSimpleQueryModelVisitor<java.lang.RuntimeException>
-
isConstant
private boolean isConstant(ValueExpr expr)
-
-