Interface ColumnValueSelector<T>

All Superinterfaces:
BaseDoubleColumnValueSelector, BaseFloatColumnValueSelector, BaseLongColumnValueSelector, BaseNullableColumnValueSelector, BaseObjectColumnValueSelector<T>, HotLoopCallee
All Known Subinterfaces:
AggregateCombiner<T>, DimensionSelector, DoubleColumnSelector, FloatColumnSelector, HistoricalColumnSelector<T>, HistoricalDimensionSelector, LongColumnSelector, SettableColumnValueSelector<T>, SingleValueHistoricalDimensionSelector
All Known Implementing Classes:
AbstractDimensionSelector, BaseExpressionColumnValueSelector, BaseSingleValueDimensionSelector, ConstantDimensionSelector, ConstantExprEvalSelector, ConstantMultiValueDimensionSelector, DoubleAggregateCombiner, DoubleWrappingDimensionSelector, ExpressionColumnValueSelector, ExpressionMultiValueDimensionSelector, FloatWrappingDimensionSelector, GenericFirstAggregateCombiner, GenericLastAggregateCombiner, HyperLogLogCollectorAggregateCombiner, IncrementalIndexRowHolder, IndexedTableColumnValueSelector, IndexedTableDimensionSelector, LongAggregateCombiner, LongSumAggregateCombiner, LongWrappingDimensionSelector, NestedFieldVirtualColumn.FieldDimensionSelector, NilColumnValueSelector, NullableNumericAggregateCombiner, NumericArrayFieldSelector, ObjectAggregateCombiner, ObjectBasedColumnSelector, ObjectColumnSelector, ObjectToArrayColumnValueSelector, ObjectToNumberColumnValueSelector, PossiblyNullColumnValueSelector, PossiblyNullDimensionSelector, RowBasedExpressionColumnValueSelector, SettableDimensionValueSelector, SettableDoubleColumnValueSelector, SettableFloatColumnValueSelector, SettableLongColumnValueSelector, SettableObjectColumnValueSelector, ShimMultiValueDimensionSelector, ShimNumericColumnValueSelector, ShimObjectColumnValueSelector, ShimSingleValueDimensionSelector, ShimVectorObjectDimSelector, SingleLongInputCachingExpressionColumnValueSelector, SingleScanTimeDimensionSelector, SingleStringInputCachingExpressionColumnValueSelector, SingleStringInputDeferredEvaluationExpressionDimensionSelector

Base type for interfaces that manage column value selection, e.g. DimensionSelector, LongColumnSelector. This interface has methods to get the value in all primitive types, that have corresponding basic aggregators in Druid: Sum, Min, Max, etc: BaseFloatColumnValueSelector.getFloat(), BaseDoubleColumnValueSelector.getDouble() and BaseLongColumnValueSelector.getLong() to support "polymorphic" rollup aggregation during index merging. "Absent" column, i. e. that always returns zero from BaseLongColumnValueSelector.getLong(), BaseFloatColumnValueSelector.getFloat() and BaseDoubleColumnValueSelector.getDouble() methods and null from BaseObjectColumnValueSelector.getObject(), should always be an instance of NilColumnValueSelector. `selector instanceof NilColumnValueSelector` is the recommended way to check for this condition.