Class MaxValueAccumulator
- java.lang.Object
-
- org.apache.iotdb.db.mpp.aggregation.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 intaddInput(org.apache.iotdb.tsfile.read.common.block.column.Column[] column, org.apache.iotdb.tsfile.read.common.TimeRange timeRange)Column should be like: | Time | Value |voidaddIntermediate(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.voidaddStatistics(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.TSDataTypegetFinalType()org.apache.iotdb.tsfile.file.metadata.enums.TSDataType[]getIntermediateType()booleanhasFinalResult()This method can only be used in seriesAggregateScanOperator.voidoutputFinal(org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder columnBuilder)Final result is single column for any aggregation function.voidoutputIntermediate(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.voidreset()voidsetFinal(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.
-
-
-
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:AccumulatorColumn should be like: | Time | Value |Return the last read row index of current timeColumn
- Specified by:
addInputin interfaceAccumulator
-
addIntermediate
public void addIntermediate(org.apache.iotdb.tsfile.read.common.block.column.Column[] partialResult)
Description copied from interface:AccumulatorFor aggregation function like COUNT, SUM, partialResult should be single; But for AVG, last_value, it should be double column with dictionary order.- Specified by:
addIntermediatein interfaceAccumulator
-
addStatistics
public void addStatistics(org.apache.iotdb.tsfile.file.metadata.statistics.Statistics statistics)
Description copied from interface:AccumulatorThis method can only be used in seriesAggregateScanOperator, it will use different statistics based on the type of Accumulator.- Specified by:
addStatisticsin interfaceAccumulator
-
setFinal
public void setFinal(org.apache.iotdb.tsfile.read.common.block.column.Column finalResult)
Description copied from interface:AccumulatorAttention: setFinal should be invoked only once, and addInput() and addIntermediate() are not allowed again.- Specified by:
setFinalin interfaceAccumulator
-
outputIntermediate
public void outputIntermediate(org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder[] columnBuilders)
Description copied from interface:AccumulatorFor 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:
outputIntermediatein interfaceAccumulator
-
outputFinal
public void outputFinal(org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder columnBuilder)
Description copied from interface:AccumulatorFinal result is single column for any aggregation function.- Specified by:
outputFinalin interfaceAccumulator
-
reset
public void reset()
- Specified by:
resetin interfaceAccumulator
-
hasFinalResult
public boolean hasFinalResult()
Description copied from interface:AccumulatorThis 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:
hasFinalResultin interfaceAccumulator
-
getIntermediateType
public org.apache.iotdb.tsfile.file.metadata.enums.TSDataType[] getIntermediateType()
- Specified by:
getIntermediateTypein interfaceAccumulator
-
getFinalType
public org.apache.iotdb.tsfile.file.metadata.enums.TSDataType getFinalType()
- Specified by:
getFinalTypein interfaceAccumulator
-
-