Class Aggregate

    • Constructor Detail

      • Aggregate

        public Aggregate​(AggregateType aggregateType,
                         Expression[] args,
                         Select select,
                         boolean distinct)
        Create a new aggregate object.
        Parameters:
        aggregateType - the aggregate type
        args - the aggregated expressions
        select - the select statement
        distinct - if distinct is used
    • Method Detail

      • getAggregateType

        public static AggregateType getAggregateType​(java.lang.String name)
        Get the aggregate type for this name, or -1 if no aggregate has been found.
        Parameters:
        name - the aggregate function name
        Returns:
        null if no aggregate function has been found, or the aggregate type
      • setOrderByList

        public void setOrderByList​(java.util.ArrayList<QueryOrderBy> orderByList)
        Set the order for ARRAY_AGG() or GROUP_CONCAT() aggregate.
        Parameters:
        orderByList - the order by list
      • getAggregateType

        public AggregateType getAggregateType()
        Returns the type of this aggregate.
        Returns:
        the type of this aggregate
      • setExtraArguments

        public void setExtraArguments​(java.lang.Object extraArguments)
        Sets the additional arguments.
        Parameters:
        extraArguments - the additional arguments
      • getExtraArguments

        public java.lang.Object getExtraArguments()
        Returns the additional arguments.
        Returns:
        the additional arguments
      • setFlags

        public void setFlags​(int flags)
        Description copied from interface: ExpressionWithFlags
        Set the flags for this expression.
        Specified by:
        setFlags in interface ExpressionWithFlags
        Parameters:
        flags - the flags to set
      • updateAggregate

        protected void updateAggregate​(SessionLocal session,
                                       java.lang.Object aggregateData)
        Description copied from class: AbstractAggregate
        Updates an aggregate value.
        Specified by:
        updateAggregate in class AbstractAggregate
        Parameters:
        session - the session
        aggregateData - aggregate data
      • updateGroupAggregates

        protected void updateGroupAggregates​(SessionLocal session,
                                             int stage)
        Description copied from class: DataAnalysisOperation
        Invoked when processing group stage of grouped window queries to update arguments of this aggregate.
        Overrides:
        updateGroupAggregates in class AbstractAggregate
        Parameters:
        session - the session
        stage - select stage
      • updateFromExpressions

        protected void updateFromExpressions​(SessionLocal session,
                                             java.lang.Object aggregateData,
                                             Value[] array)
        Description copied from class: AbstractAggregate
        Updates the provided aggregate data from the remembered expressions.
        Specified by:
        updateFromExpressions in class AbstractAggregate
        Parameters:
        session - the session
        aggregateData - aggregate data
        array - values of expressions
      • mapColumnsAnalysis

        public void mapColumnsAnalysis​(ColumnResolver resolver,
                                       int level,
                                       int innerState)
        Description copied from class: DataAnalysisOperation
        Map the columns of the resolver to expression columns.
        Overrides:
        mapColumnsAnalysis in class AbstractAggregate
        Parameters:
        resolver - the column resolver
        level - the subquery nesting level
        innerState - one of the Expression MAP_IN_* values
      • setEvaluatable

        public void setEvaluatable​(TableFilter tableFilter,
                                   boolean b)
        Description copied from class: Expression
        Tell the expression columns whether the table filter can return values now. This is used when optimizing the query.
        Overrides:
        setEvaluatable in class AbstractAggregate
        Parameters:
        tableFilter - the table filter
        b - true if the table filter can return value
      • getUnenclosedSQL

        public java.lang.StringBuilder getUnenclosedSQL​(java.lang.StringBuilder builder,
                                                        int sqlFlags)
        Description copied from class: Expression
        Get the SQL statement of this expression. This may not always be the original SQL statement, especially after optimization. Enclosing '(' and ')' are never appended.
        Specified by:
        getUnenclosedSQL in class Expression
        Parameters:
        builder - string builder
        sqlFlags - formatting flags
        Returns:
        the specified string builder
      • isEverything

        public boolean isEverything​(ExpressionVisitor visitor)
        Description copied from class: Expression
        Check if this expression and all sub-expressions can fulfill a criteria. If any part returns false, the result is false.
        Overrides:
        isEverything in class DataAnalysisOperation
        Parameters:
        visitor - the visitor
        Returns:
        if the criteria can be fulfilled
      • getCost

        public int getCost()
        Description copied from class: Expression
        Estimate the cost to process the expression. Used when optimizing the query, to calculate the query plan with the lowest estimated cost.
        Specified by:
        getCost in class Expression
        Returns:
        the estimated cost
      • getSelect

        public Select getSelect()
        Returns the select statement.
        Returns:
        the select statement
      • isDistinct

        public boolean isDistinct()
        Returns if distinct is used.
        Returns:
        if distinct is used