Class MaxValueAccumulator

  • All Implemented Interfaces:
    Accumulator

    public class MaxValueAccumulator
    extends java.lang.Object
    implements Accumulator
    • Constructor Summary

      Constructors 
      Constructor Description
      MaxValueAccumulator​(org.apache.iotdb.tsfile.file.metadata.enums.TSDataType seriesDataType)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int addInput​(org.apache.iotdb.tsfile.read.common.block.column.Column[] column, org.apache.iotdb.tsfile.read.common.TimeRange timeRange)
      Column should be like: | Time | Value |
      void addIntermediate​(org.apache.iotdb.tsfile.read.common.block.column.Column[] partialResult)
      For aggregation function like COUNT, SUM, partialResult should be single; But for AVG, last_value, it should be double column with dictionary order.
      void addStatistics​(org.apache.iotdb.tsfile.file.metadata.statistics.Statistics statistics)
      This method can only be used in seriesAggregateScanOperator, it will use different statistics based on the type of Accumulator.
      org.apache.iotdb.tsfile.file.metadata.enums.TSDataType getFinalType()  
      org.apache.iotdb.tsfile.file.metadata.enums.TSDataType[] getIntermediateType()  
      boolean hasFinalResult()
      This method can only be used in seriesAggregateScanOperator.
      void outputFinal​(org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder columnBuilder)
      Final result is single column for any aggregation function.
      void outputIntermediate​(org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder[] columnBuilders)
      For aggregation function like COUNT, SUM, partialResult should be single, so its output column is single too; But for AVG(COUNT and SUM), LAST_VALUE(LAST_VALUE and MAX_TIME), the output columns should be double in dictionary order.
      void reset()  
      void setFinal​(org.apache.iotdb.tsfile.read.common.block.column.Column finalResult)
      Attention: setFinal should be invoked only once, and addInput() and addIntermediate() are not allowed again.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MaxValueAccumulator

        public MaxValueAccumulator​(org.apache.iotdb.tsfile.file.metadata.enums.TSDataType seriesDataType)
    • Method Detail

      • addInput

        public int addInput​(org.apache.iotdb.tsfile.read.common.block.column.Column[] column,
                            org.apache.iotdb.tsfile.read.common.TimeRange timeRange)
        Description copied from interface: Accumulator
        Column should be like: | Time | Value |

        Return the last read row index of current timeColumn

        Specified by:
        addInput in interface Accumulator
      • addIntermediate

        public void addIntermediate​(org.apache.iotdb.tsfile.read.common.block.column.Column[] partialResult)
        Description copied from interface: Accumulator
        For aggregation function like COUNT, SUM, partialResult should be single; But for AVG, last_value, it should be double column with dictionary order.
        Specified by:
        addIntermediate in interface Accumulator
      • addStatistics

        public void addStatistics​(org.apache.iotdb.tsfile.file.metadata.statistics.Statistics statistics)
        Description copied from interface: Accumulator
        This method can only be used in seriesAggregateScanOperator, it will use different statistics based on the type of Accumulator.
        Specified by:
        addStatistics in interface Accumulator
      • setFinal

        public void setFinal​(org.apache.iotdb.tsfile.read.common.block.column.Column finalResult)
        Description copied from interface: Accumulator
        Attention: setFinal should be invoked only once, and addInput() and addIntermediate() are not allowed again.
        Specified by:
        setFinal in interface Accumulator
      • outputIntermediate

        public void outputIntermediate​(org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder[] columnBuilders)
        Description copied from interface: Accumulator
        For aggregation function like COUNT, SUM, partialResult should be single, so its output column is single too; But for AVG(COUNT and SUM), LAST_VALUE(LAST_VALUE and MAX_TIME), the output columns should be double in dictionary order.
        Specified by:
        outputIntermediate in interface Accumulator
      • outputFinal

        public void outputFinal​(org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder columnBuilder)
        Description copied from interface: Accumulator
        Final result is single column for any aggregation function.
        Specified by:
        outputFinal in interface Accumulator
      • hasFinalResult

        public boolean hasFinalResult()
        Description copied from interface: Accumulator
        This method can only be used in seriesAggregateScanOperator. For first_value or last_value in decreasing order, we can get final result by the first record.
        Specified by:
        hasFinalResult in interface Accumulator
      • getIntermediateType

        public org.apache.iotdb.tsfile.file.metadata.enums.TSDataType[] getIntermediateType()
        Specified by:
        getIntermediateType in interface Accumulator
      • getFinalType

        public org.apache.iotdb.tsfile.file.metadata.enums.TSDataType getFinalType()
        Specified by:
        getFinalType in interface Accumulator