Class AggregateSortObserver

java.lang.Object
org.apache.derby.impl.sql.execute.BasicSortObserver
org.apache.derby.impl.sql.execute.AggregateSortObserver
All Implemented Interfaces:
SortObserver

class AggregateSortObserver extends BasicSortObserver
This sort observer performs aggregation.
  • Field Details

    • aggsToProcess

      private final GenericAggregator[] aggsToProcess
    • aggsToInitialize

      private final GenericAggregator[] aggsToInitialize
    • firstAggregatorColumn

      private int firstAggregatorColumn
  • Constructor Details

    • AggregateSortObserver

      public AggregateSortObserver(boolean doClone, GenericAggregator[] aggsToProcess, GenericAggregator[] aggsToInitialize, ExecRow execRow)
      Simple constructor
      Parameters:
      doClone - If true, then rows that are retained by the sorter will be cloned. This is needed if language is reusing row wrappers.
      aggsToProcess - the array of aggregates that need to be accumulated/merged in the sorter.
      aggsToInitialize - the array of aggregates that need to be iniitialized as they are inserted into the sorter. This may be different than aggsToProcess in the case where some distinct aggregates are dropped in the initial pass of a two phase aggregation for scalar or vector distinct aggregation. The initialization process consists of replacing an empty UserValue with a new, initialized aggregate of the appropriate type. Note that for each row, only the first aggregate in this list is checked to see whether initialization is needed. If so, ALL aggregates are initialized; otherwise, NO aggregates are initialized.
      execRow - ExecRow to use as source of clone for store.
  • Method Details