Class GenericAggregator

java.lang.Object
org.apache.derby.impl.sql.execute.GenericAggregator

class GenericAggregator extends Object
Adaptor that sits between execution layer and aggregates.
  • Field Details

    • aggInfo

      private final AggregatorInfo aggInfo
    • aggregatorColumnId

      int aggregatorColumnId
    • inputColumnId

      private int inputColumnId
    • resultColumnId

      private int resultColumnId
    • cf

      private final ClassFactory cf
    • cachedAggregator

      private ExecAggregator cachedAggregator
  • Constructor Details

    • GenericAggregator

      GenericAggregator(AggregatorInfo aggInfo, ClassFactory cf)
      Constructor:
      Parameters:
      aggInfo - information about the user aggregate
      cf - the class factory.
  • Method Details

    • initialize

      void initialize(ExecRow row) throws StandardException
      Initialize the aggregator
      Parameters:
      row - the row with the aggregator to be initialized
      Throws:
      StandardException - on error
    • accumulate

      void accumulate(ExecRow inputRow, ExecRow accumulateRow) throws StandardException
      Accumulate the aggregate results. This is the guts of the aggregation. We will call the user aggregate on itself to do the aggregation.
      Parameters:
      inputRow - the row with the input colum
      accumulateRow - the row with the aggregator
      Throws:
      StandardException - on error
    • accumulate

      void accumulate(Object[] inputRow, Object[] accumulateRow) throws StandardException
      Accumulate the aggregate results. This is the guts of the aggregation. We will call the user aggregate on itself to do the aggregation.
      Parameters:
      inputRow - the row with the input colum
      accumulateRow - the row with the aggregator
      Throws:
      StandardException - on error
    • accumulate

      void accumulate(DataValueDescriptor inputColumn, DataValueDescriptor aggregatorColumn) throws StandardException
      Accumulate the aggregate results. This is the guts of the aggregation. We will call the user aggregate on itself to do the aggregation.
      Parameters:
      inputColumn -
      aggregatorColumn -
      Throws:
      StandardException - on error
    • merge

      void merge(ExecRow inputRow, ExecRow mergeRow) throws StandardException
      Merge the aggregate results. This is the guts of the aggregation. We will call the user aggregate on itself to do the aggregation.
      Parameters:
      inputRow - the row with the input colum
      mergeRow - the row with the aggregator
      Throws:
      StandardException - on error
    • merge

      void merge(Object[] inputRow, Object[] mergeRow) throws StandardException
      Merge the aggregate results. This is the guts of the aggregation. We will call the user aggregate on itself to do the aggregation.
      Parameters:
      inputRow - the row with the input colum
      mergeRow - the row with the aggregator
      Throws:
      StandardException - on error
    • finish

      boolean finish(ExecRow row) throws StandardException
      Get the results of the aggregation and put it in the result column.
      Parameters:
      row - the row with the result and the aggregator
      Throws:
      StandardException - on error
    • getAggregatorInstance

      ExecAggregator getAggregatorInstance() throws StandardException
      Get a new instance of the aggregator and initialize it.
      Returns:
      an exec aggregator
      Throws:
      StandardException - on error
    • getColumnId

      int getColumnId()
      Return the column id that is being aggregated
    • getInputColumnValue

      DataValueDescriptor getInputColumnValue(ExecRow row) throws StandardException
      Throws:
      StandardException
    • merge

      void merge(Storable aggregatorColumnIn, Storable aggregatorColumnOut) throws StandardException
      Merge two partial aggregations. This is how the sorter merges partial aggregates.
      Throws:
      StandardException - on error
    • getAggregatorInfo

      AggregatorInfo getAggregatorInfo()