Class MathExpression

    • 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()
      • setChildExpressions

        public void setChildExpressions​(List<MathExpression> childExpressions)
      • supportsBasicCalculation

        protected boolean supportsBasicCalculation()
      • isIndexedFunctionCall

        public boolean isIndexedFunctionCall()
      • 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 target
        context - 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 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​(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 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.
      • isBaseIdentifier

        public boolean isBaseIdentifier()
      • isEarlyCalculated

        public boolean isEarlyCalculated()
      • needsAliases

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

        public boolean isExpand()
      • isAggregate

        public boolean isAggregate()
      • isCount

        public boolean isCount()
      • refersToParent

        public boolean refersToParent()
      • hashCode

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

        public List<String> getMatchPatternInvolvedAliases()
      • serialize

        public Result serialize()
      • deserialize

        public void deserialize​(Result fromResult)