Package com.arcadedb.query.sql.parser
Class MathExpression
- java.lang.Object
-
- com.arcadedb.query.sql.parser.SimpleNode
-
- com.arcadedb.query.sql.parser.MathExpression
-
- All Implemented Interfaces:
Node
- Direct Known Subclasses:
BaseExpression
,FirstLevelExpression
,MultExpression
,ParenthesisExpression
public class MathExpression extends SimpleNode
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MathExpression.Operator
-
Field Summary
Fields Modifier and Type Field Description protected List<MathExpression>
childExpressions
protected List<MathExpression.Operator>
operators
-
Fields inherited from class com.arcadedb.query.sql.parser.SimpleNode
children, firstToken, id, lastToken, parent, parser, value
-
-
Constructor Summary
Constructors Constructor Description MathExpression(int id)
MathExpression(SqlParser p, int id)
-
Method Summary
-
Methods inherited from class com.arcadedb.query.sql.parser.SimpleNode
childrenAccept, dump, getValue, jjtAccept, jjtAddChild, jjtClose, jjtGetChild, jjtGetFirstToken, jjtGetLastToken, jjtGetNumChildren, jjtGetParent, jjtGetValue, jjtOpen, jjtSetFirstToken, jjtSetLastToken, jjtSetParent, jjtSetValue, toString, toString
-
-
-
-
Field Detail
-
childExpressions
protected List<MathExpression> childExpressions
-
operators
protected List<MathExpression.Operator> operators
-
-
Constructor Detail
-
MathExpression
public MathExpression(int id)
-
MathExpression
public MathExpression(SqlParser p, int id)
-
-
Method Detail
-
getExpandContent
public Expression getExpandContent()
-
isDefinedFor
public boolean isDefinedFor(Result currentRecord)
-
isDefinedFor
public boolean isDefinedFor(Record currentRecord)
-
isCacheable
public boolean isCacheable()
-
execute
public Object execute(Identifiable iCurrentRecord, CommandContext ctx)
-
execute
public Object execute(Result iCurrentRecord, CommandContext ctx)
-
getChildExpressions
public List<MathExpression> getChildExpressions()
-
setChildExpressions
public void setChildExpressions(List<MathExpression> childExpressions)
-
getOperators
public List<MathExpression.Operator> getOperators()
-
toString
public void toString(Map<String,Object> params, StringBuilder builder)
- Overrides:
toString
in classSimpleNode
-
supportsBasicCalculation
protected boolean supportsBasicCalculation()
-
isIndexedFunctionCall
public boolean isIndexedFunctionCall()
-
estimateIndexedFunction
public long estimateIndexedFunction(FromClause target, CommandContext context, BinaryCompareOperator operator, Object right)
-
executeIndexedFunction
public Iterable<Record> executeIndexedFunction(FromClause target, CommandContext context, BinaryCompareOperator operator, Object right)
-
canExecuteIndexedFunctionWithoutIndex
public boolean canExecuteIndexedFunctionWithoutIndex(FromClause target, CommandContext context, BinaryCompareOperator operator, Object right)
tests if current expression is an indexed funciton AND that function can also be executed without using the index- Parameters:
target
- the query targetcontext
- the execution context- Returns:
- true if current expression is an indexed funciton AND that function can also be executed without using the index, false otherwise
-
allowsIndexedFunctionExecutionOnTarget
public boolean allowsIndexedFunctionExecutionOnTarget(FromClause target, CommandContext context, BinaryCompareOperator operator, Object right)
tests if current expression is an indexed function AND that function can be used on this target- Parameters:
target
- the query targetcontext
- the execution context- Returns:
- true if current expression is an indexed function AND that function can be used on this target, false otherwise
-
executeIndexedFunctionAfterIndexSearch
public boolean executeIndexedFunctionAfterIndexSearch(FromClause target, CommandContext context, BinaryCompareOperator operator, Object right)
tests if current expression is an indexed function AND the function has also to be executed after the index search. In some cases, the index search is accurate, so this condition can be excluded from further evaluation. In other cases the result from the index is a superset of the expected result, so the function has to be executed anyway for further filtering- Parameters:
target
- the query targetcontext
- the execution context- Returns:
- true if current expression is an indexed function AND the function has also to be executed after the index search.
-
isBaseIdentifier
public boolean isBaseIdentifier()
-
isEarlyCalculated
public boolean isEarlyCalculated()
-
isExpand
public boolean isExpand()
-
isAggregate
public boolean isAggregate()
-
isCount
public boolean isCount()
-
splitForAggregation
public SimpleNode splitForAggregation(AggregateProjectionSplit aggregateProj)
-
getAggregationContext
public AggregationContext getAggregationContext(CommandContext ctx)
-
copy
public MathExpression copy()
- Overrides:
copy
in classSimpleNode
-
extractSubQueries
public void extractSubQueries(Identifier letAlias, SubQueryCollector collector)
-
extractSubQueries
public void extractSubQueries(SubQueryCollector collector)
-
refersToParent
public boolean refersToParent()
-
applyRemove
public void applyRemove(ResultInternal result, CommandContext ctx)
-
deserializeFromResult
public static MathExpression deserializeFromResult(Result fromResult)
-
serialize
public Result serialize()
-
deserialize
public void deserialize(Result fromResult)
-
-