Interface AggregateCombiner<T>

All Superinterfaces:
BaseDoubleColumnValueSelector, BaseFloatColumnValueSelector, BaseLongColumnValueSelector, BaseNullableColumnValueSelector, BaseObjectColumnValueSelector<T>, ColumnValueSelector<T>, HotLoopCallee
All Known Implementing Classes:
DoubleAggregateCombiner, GenericFirstAggregateCombiner, GenericLastAggregateCombiner, HyperLogLogCollectorAggregateCombiner, LongAggregateCombiner, LongSumAggregateCombiner, NullableNumericAggregateCombiner, ObjectAggregateCombiner

public interface AggregateCombiner<T> extends ColumnValueSelector<T>
AggregateCombiner is used to fold rollup aggregation results from serveral "rows" of different indexes during index merging (see IndexMerger). The state of the implementations of this interface is an aggregation value (either a primitive or an object), that could be queried via ColumnValueSelector's methods. Before reset(org.apache.druid.segment.ColumnValueSelector) is ever called on an AggregateCombiner, it's state is undefined and ColumnValueSelector's methods could return something random, or null, or throw an exception. This interface would probably better be called "AggregateFolder", but somebody may confuse it with "folder" as "directory" synonym.
See Also: