public abstract class NullableNumericAggregatorFactory<T extends BaseNullableColumnValueSelector> extends AggregatorFactory
Aggregator, BufferAggregator, VectorAggregator, and
AggregateCombiner to support nullable aggregations. The result of this aggregator will be null if all the
values to be aggregated are null values, or if no values are aggregated at all. If any of the values are non-null,
the result will be the aggregated value of the non-null values.
This superclass should only be extended by aggregators that read primitive numbers. It implements logic that is
not valid for non-numeric selector methods such as BaseObjectColumnValueSelector.getObject().| Constructor and Description |
|---|
NullableNumericAggregatorFactory() |
| Modifier and Type | Method and Description |
|---|---|
Aggregator |
factorize(ColumnSelectorFactory columnSelectorFactory) |
protected abstract Aggregator |
factorize(ColumnSelectorFactory columnSelectorFactory,
T selector)
Creates an
Aggregator to aggregate values from several rows, by using the provided selector. |
BufferAggregator |
factorizeBuffered(ColumnSelectorFactory columnSelectorFactory) |
protected abstract BufferAggregator |
factorizeBuffered(ColumnSelectorFactory columnSelectorFactory,
T selector)
Creates an
BufferAggregator to aggregate values from several rows into a ByteBuffer. |
VectorAggregator |
factorizeVector(VectorColumnSelectorFactory columnSelectorFactory)
Create a VectorAggregator based on the provided column selector factory.
|
protected VectorAggregator |
factorizeVector(VectorColumnSelectorFactory columnSelectorFactory,
VectorValueSelector selector)
Creates a
VectorAggregator to aggregate values from several rows into a ByteBuffer. |
int |
getMaxIntermediateSizeWithNulls()
Returns the maximum size that this aggregator will require in bytes for intermediate storage of results.
|
ColumnType |
getResultType()
Get the
ColumnType for the final form of this aggregator, i.e. |
AggregateCombiner |
makeNullableAggregateCombiner()
Creates an
AggregateCombiner which supports nullability. |
protected abstract T |
selector(ColumnSelectorFactory columnSelectorFactory)
Creates a
ColumnValueSelector for the aggregated column. |
protected VectorValueSelector |
vectorSelector(VectorColumnSelectorFactory columnSelectorFactory)
Creates a
VectorValueSelector for the aggregated column. |
canVectorize, combine, deserialize, factorizeWithSize, finalizeComputation, getCombiningFactory, getComparator, getComplexTypeName, getFinalizedType, getIntermediateType, getMaxIntermediateSize, getMergingFactory, getName, getRequiredColumns, getType, guessAggregatorHeapFootprint, makeAggregateCombiner, mergeAggregators, optimizeForSegment, requiredFields, withNameclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetCacheKeypublic final Aggregator factorize(ColumnSelectorFactory columnSelectorFactory)
factorize in class AggregatorFactorypublic final BufferAggregator factorizeBuffered(ColumnSelectorFactory columnSelectorFactory)
factorizeBuffered in class AggregatorFactorypublic final VectorAggregator factorizeVector(VectorColumnSelectorFactory columnSelectorFactory)
AggregatorFactoryfactorizeVector in class AggregatorFactorypublic final AggregateCombiner makeNullableAggregateCombiner()
AggregatorFactoryAggregateCombiner which supports nullability.
Implementations of AggregatorFactory which need to Support Nullable Aggregations are encouraged
to extend NullableNumericAggregatorFactory instead of overriding this method.
Default implementation calls AggregatorFactory.makeAggregateCombiner() for backwards compatibility.makeNullableAggregateCombiner in class AggregatorFactoryAggregateCombiner,
NullableNumericAggregatorFactorypublic final int getMaxIntermediateSizeWithNulls()
AggregatorFactoryAggregatorFactory which need to Support Nullable Aggregations are encouraged
to extend NullableNumericAggregatorFactory instead of overriding this method.
Default implementation calls AggregatorFactory.makeAggregateCombiner() for backwards compatibility.getMaxIntermediateSizeWithNulls in class AggregatorFactoryprotected abstract T selector(ColumnSelectorFactory columnSelectorFactory)
ColumnValueSelector for the aggregated column.ColumnValueSelectorprotected VectorValueSelector vectorSelector(VectorColumnSelectorFactory columnSelectorFactory)
VectorValueSelector for the aggregated column.VectorValueSelectorprotected abstract Aggregator factorize(ColumnSelectorFactory columnSelectorFactory, T selector)
Aggregator to aggregate values from several rows, by using the provided selector.columnSelectorFactory - metricFactoryselector - ColumnValueSelector for the column to aggregate.Aggregatorprotected abstract BufferAggregator factorizeBuffered(ColumnSelectorFactory columnSelectorFactory, T selector)
BufferAggregator to aggregate values from several rows into a ByteBuffer.columnSelectorFactory - columnSelectorFactory in case any other columns are needed.selector - ColumnValueSelector for the column to aggregate.BufferAggregatorprotected VectorAggregator factorizeVector(VectorColumnSelectorFactory columnSelectorFactory, VectorValueSelector selector)
VectorAggregator to aggregate values from several rows into a ByteBuffer.columnSelectorFactory - columnSelectorFactory in case any other columns are needed.selector - VectorValueSelector for the column to aggregate.BufferAggregatorpublic ColumnType getResultType()
AggregatorFactoryColumnType for the final form of this aggregator, i.e. the type of the value returned by
AggregatorFactory.finalizeComputation(java.lang.Object). This may be the same as or different than the types expected in AggregatorFactory.deserialize(java.lang.Object)
and AggregatorFactory.combine(java.lang.Object, java.lang.Object).
Refer to the ColumnType javadocs for details on the implications of choosing a type.getResultType in class AggregatorFactoryCopyright © 2011–2023 The Apache Software Foundation. All rights reserved.