Package org.apache.druid.segment
Class ColumnProcessors
java.lang.Object
org.apache.druid.segment.ColumnProcessors
Creates "column processors", which are objects that wrap a single input column and provide some functionality on
top of it.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ColumnCapabilitiesCapabilites that are used when we return a nil selector for a nonexistent column. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> TmakeProcessor(String column, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory) Make a processor for a particular named column.static <T> TmakeProcessor(Expr expr, ColumnType exprTypeHint, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory) Make a processor for a particular expression.static <T> TmakeProcessor(DimensionSpec dimensionSpec, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory) Make a processor for a particularDimensionSpec.static <T> TmakeVectorProcessor(String column, VectorColumnProcessorFactory<T> processorFactory, VectorColumnSelectorFactory selectorFactory) Make a processor for a particular named column.static <T> TmakeVectorProcessor(DimensionSpec dimensionSpec, VectorColumnProcessorFactory<T> processorFactory, VectorColumnSelectorFactory selectorFactory) Make a processor for a particularDimensionSpec.static booleanuseDictionaryEncodedSelector(ColumnCapabilities capabilities) Checks theColumnCapabilitiesto see if the column has a dictionary available (ColumnCapabilities.isDictionaryEncoded()is true), and there is a unique mapping of dictionary id to value (ColumnCapabilities.areDictionaryValuesUnique()is true).
-
Field Details
-
NIL_COLUMN_CAPABILITIES
Capabilites that are used when we return a nil selector for a nonexistent column.
-
-
Constructor Details
-
ColumnProcessors
public ColumnProcessors()
-
-
Method Details
-
makeProcessor
public static <T> T makeProcessor(String column, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory) Make a processor for a particular named column.- Type Parameters:
T- processor type- Parameters:
column- the columnprocessorFactory- the processor factoryselectorFactory- the column selector factory
-
makeProcessor
public static <T> T makeProcessor(DimensionSpec dimensionSpec, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory) Make a processor for a particularDimensionSpec.- Type Parameters:
T- processor type- Parameters:
dimensionSpec- the dimension specprocessorFactory- the processor factoryselectorFactory- the column selector factory
-
makeProcessor
public static <T> T makeProcessor(Expr expr, ColumnType exprTypeHint, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory) Make a processor for a particular expression. If the expression is a simple identifier, this behaves identically tomakeProcessor(String, ColumnProcessorFactory, ColumnSelectorFactory)and accesses the column directly. Otherwise, it uses an expression selector of typeexprTypeHint.- Type Parameters:
T- processor type- Parameters:
expr- the parsed expressionexprTypeHint- expression selector type to use for exprs that are not simple identifiersprocessorFactory- the processor factoryselectorFactory- the column selector factory
-
makeVectorProcessor
public static <T> T makeVectorProcessor(String column, VectorColumnProcessorFactory<T> processorFactory, VectorColumnSelectorFactory selectorFactory) Make a processor for a particular named column.- Type Parameters:
T- processor type- Parameters:
column- the columnprocessorFactory- the processor factoryselectorFactory- the column selector factory
-
makeVectorProcessor
public static <T> T makeVectorProcessor(DimensionSpec dimensionSpec, VectorColumnProcessorFactory<T> processorFactory, VectorColumnSelectorFactory selectorFactory) Make a processor for a particularDimensionSpec.- Type Parameters:
T- processor type- Parameters:
dimensionSpec- the dimension specprocessorFactory- the processor factoryselectorFactory- the column selector factory
-
useDictionaryEncodedSelector
Checks theColumnCapabilitiesto see if the column has a dictionary available (ColumnCapabilities.isDictionaryEncoded()is true), and there is a unique mapping of dictionary id to value (ColumnCapabilities.areDictionaryValuesUnique()is true).
-