Class ColumnProcessors

java.lang.Object
org.apache.druid.segment.ColumnProcessors

public class ColumnProcessors extends Object
Creates "column processors", which are objects that wrap a single input column and provide some functionality on top of it.
See Also:
  • Field Details

    • NIL_COLUMN_CAPABILITIES

      public static final ColumnCapabilities 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 column
      processorFactory - the processor factory
      selectorFactory - the column selector factory
    • makeProcessor

      public static <T> T makeProcessor(DimensionSpec dimensionSpec, ColumnProcessorFactory<T> processorFactory, ColumnSelectorFactory selectorFactory)
      Make a processor for a particular DimensionSpec.
      Type Parameters:
      T - processor type
      Parameters:
      dimensionSpec - the dimension spec
      processorFactory - the processor factory
      selectorFactory - 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 to makeProcessor(String, ColumnProcessorFactory, ColumnSelectorFactory) and accesses the column directly. Otherwise, it uses an expression selector of type exprTypeHint.
      Type Parameters:
      T - processor type
      Parameters:
      expr - the parsed expression
      exprTypeHint - expression selector type to use for exprs that are not simple identifiers
      processorFactory - the processor factory
      selectorFactory - 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 column
      processorFactory - the processor factory
      selectorFactory - the column selector factory
    • makeVectorProcessor

      public static <T> T makeVectorProcessor(DimensionSpec dimensionSpec, VectorColumnProcessorFactory<T> processorFactory, VectorColumnSelectorFactory selectorFactory)
      Make a processor for a particular DimensionSpec.
      Type Parameters:
      T - processor type
      Parameters:
      dimensionSpec - the dimension spec
      processorFactory - the processor factory
      selectorFactory - the column selector factory
    • useDictionaryEncodedSelector

      public static boolean useDictionaryEncodedSelector(ColumnCapabilities capabilities)
      Checks the ColumnCapabilities to 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).