Class FunctionCall

  • All Implemented Interfaces:
    Node

    public class FunctionCall
    extends SimpleNode
    • Constructor Detail

      • FunctionCall

        public FunctionCall​(int id)
      • FunctionCall

        public FunctionCall​(SqlParser p,
                            int id)
    • Method Detail

      • getDatabase

        public static Database getDatabase()
      • isStar

        public boolean isStar()
      • isIndexedFunctionCall

        public boolean isIndexedFunctionCall()
      • estimateIndexedFunction

        public long estimateIndexedFunction​(FromClause target,
                                            CommandContext ctx,
                                            BinaryCompareOperator operator,
                                            Object rightValue)
        Parameters:
        target - query target
        ctx - execution context
        operator - operator at the right of the function
        rightValue - value to compare to funciton result
        Returns:
        the approximate number of items returned by the condition execution, -1 if the extimation cannot be executed
      • canExecuteIndexedFunctionWithoutIndex

        public boolean canExecuteIndexedFunctionWithoutIndex​(FromClause target,
                                                             CommandContext context,
                                                             BinaryCompareOperator operator,
                                                             Object right)
        tests if current function is an indexed function AND that function can also be executed without using the index
        Parameters:
        target - the query target
        context - the execution context
        operator -
        right -
        Returns:
        true if current function 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 function is an indexed function AND that function can be used on this target
        Parameters:
        target - the query target
        context - the execution context
        operator -
        right -
        Returns:
        true if current function 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.
      • isExpand

        public boolean isExpand()
      • needsAliases

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

        public boolean isAggregate()
      • isEarlyCalculated

        public boolean isEarlyCalculated()
      • hashCode

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

        public boolean refersToParent()
      • serialize

        public Result serialize()
      • deserialize

        public void deserialize​(Result fromResult)
      • isCacheable

        public boolean isCacheable()