Class OMathExpression

java.lang.Object
com.orientechnologies.orient.core.sql.parser.SimpleNode
com.orientechnologies.orient.core.sql.parser.OMathExpression
All Implemented Interfaces:
Node
Direct Known Subclasses:
OBaseExpression, OFirstLevelExpression, OParenthesisExpression

public class OMathExpression extends SimpleNode
  • Field Details

  • Constructor Details

    • OMathExpression

      public OMathExpression(int id)
    • OMathExpression

      public OMathExpression(OrientSql p, int id)
  • Method Details

    • getExpandContent

      public OExpression getExpandContent()
    • isDefinedFor

      public boolean isDefinedFor(OResult currentRecord)
    • isDefinedFor

      public boolean isDefinedFor(OElement currentRecord)
    • isIndexChain

      public boolean isIndexChain(OCommandContext ctx, OClass clazz)
    • isParentesis

      public boolean isParentesis()
    • isCacheable

      public boolean isCacheable()
    • execute

      public Object execute(OResult iCurrentRecord, OCommandContext ctx)
    • getIndexKey

      public Collection<Object> getIndexKey(OCommandContext ctx)
    • getChildExpressions

      public List<OMathExpression> getChildExpressions()
    • setChildExpressions

      public void setChildExpressions(List<OMathExpression> childExpressions)
    • addChildExpression

      public void addChildExpression(OMathExpression expression)
    • unwrapIfNeeded

      public OMathExpression unwrapIfNeeded()
    • getOperators

      public List<OMathExpression.Operator> getOperators()
    • addOperator

      public void addOperator(OMathExpression.Operator operator)
    • toString

      public void toString(Map<Object,Object> params, StringBuilder builder)
      Specified by:
      toString in class SimpleNode
    • toGenericStatement

      public void toGenericStatement(StringBuilder builder)
      Specified by:
      toGenericStatement in class SimpleNode
    • supportsBasicCalculation

      protected boolean supportsBasicCalculation()
    • isIndexedFunctionCall

      public boolean isIndexedFunctionCall()
    • estimateIndexedFunction

      public long estimateIndexedFunction(OFromClause target, OCommandContext context, OBinaryCompareOperator operator, Object right)
    • executeIndexedFunction

      public Iterable<OIdentifiable> executeIndexedFunction(OFromClause target, OCommandContext context, OBinaryCompareOperator operator, Object right)
    • canExecuteIndexedFunctionWithoutIndex

      public boolean canExecuteIndexedFunctionWithoutIndex(OFromClause target, OCommandContext context, OBinaryCompareOperator operator, Object right)
      tests if current expression is an indexed function AND that function can also be executed without using the index
      Parameters:
      target - the query target
      context - the execution context
      Returns:
      true if current expression is an indexed function AND that function can also be executed without using the index, false otherwise
    • allowsIndexedFunctionExecutionOnTarget

      public boolean allowsIndexedFunctionExecutionOnTarget(OFromClause target, OCommandContext context, OBinaryCompareOperator operator, Object right)
      tests if current expression is an indexed function AND that function can be used on this target
      Parameters:
      target - the query target
      context - 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(OFromClause target, OCommandContext context, OBinaryCompareOperator 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 target
      context - the execution context
      Returns:
      true if current expression is an indexed function AND the function has also to be executed after the index search.
    • isFunctionAny

      public boolean isFunctionAny()
    • isFunctionAll

      public boolean isFunctionAll()
    • isBaseIdentifier

      public boolean isBaseIdentifier()
    • getPath

      public Optional<OPath> getPath()
    • getCollate

      public OCollate getCollate(OResult currentRecord, OCommandContext ctx)
    • isEarlyCalculated

      public boolean isEarlyCalculated(OCommandContext ctx)
    • needsAliases

      public boolean needsAliases(Set<String> aliases)
    • isExpand

      public boolean isExpand()
    • isAggregate

      public boolean isAggregate()
    • isCount

      public boolean isCount()
    • splitForAggregation

      public SimpleNode splitForAggregation(AggregateProjectionSplit aggregateProj, OCommandContext ctx)
    • getAggregationContext

      public AggregationContext getAggregationContext(OCommandContext ctx)
    • copy

      public OMathExpression copy()
      Overrides:
      copy in class SimpleNode
    • extractSubQueries

      public void extractSubQueries(OIdentifier letAlias, SubQueryCollector collector)
    • extractSubQueries

      public void extractSubQueries(SubQueryCollector collector)
    • refersToParent

      public boolean refersToParent()
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getMatchPatternInvolvedAliases

      public List<String> getMatchPatternInvolvedAliases()
    • applyRemove

      public void applyRemove(OResultInternal result, OCommandContext ctx)
    • deserializeFromResult

      public static OMathExpression deserializeFromResult(OResult fromResult)
    • serialize

      public OResult serialize()
    • deserialize

      public void deserialize(OResult fromResult)
    • isSelf

      public boolean isSelf()