Class NullableNumericAggregator

  • All Implemented Interfaces:
    Closeable, AutoCloseable, Aggregator

    public final class NullableNumericAggregator
    extends Object
    implements Aggregator
    Null-aware numeric Aggregator. The result of this aggregator will be null if all the values to be aggregated are null values or no values are aggregated at all. If any of the values are non-null, the result will be the aggregated value of the delegate aggregator. When wrapped by this class, the underlying aggregator's required storage space is increased by one byte. The extra byte is a boolean that stores whether or not any non-null values have been seen. The extra byte is placed before the underlying aggregator's normal state. (Buffer layout = [nullability byte] [delegate storage bytes]) Used by NullableNumericAggregatorFactory.factorize(ColumnSelectorFactory) to wrap non-null aware aggregators. This class is only used when SQL compatible null handling is enabled.
    See Also:
    NullableNumericAggregatorFactory.factorize(ColumnSelectorFactory)
    • Method Detail

      • aggregate

        public void aggregate()
        Description copied from interface: Aggregator
        Performs aggregation.
        Specified by:
        aggregate in interface Aggregator
      • getDouble

        public double getDouble()
        Description copied from interface: Aggregator
        The default implementation casts Aggregator.getFloat() to double. This default method is added to enable smooth backward compatibility, please re-implement it if your aggregators work with numeric double columns.
        Specified by:
        getDouble in interface Aggregator
      • isNull

        public boolean isNull()
        Description copied from interface: Aggregator
        returns true if aggregator's output type is primitive long/double/float and aggregated value is null, but when aggregated output type is Object, this method always returns false, and users are advised to check nullability for the object returned by Aggregator.get() method. The default implementation always return false to enable smooth backward compatibility, re-implement if your aggregator is nullable.
        Specified by:
        isNull in interface Aggregator