public interface VectorColumnSelectorFactory extends ColumnInspector
VectorCursor.getColumnSelectorFactory() and is used to create vector selectors.
If you need to write code that adapts to different input types, you should write a
VectorColumnProcessorFactory and use one of the
ColumnProcessors.makeVectorProcessor(java.lang.String, org.apache.druid.segment.VectorColumnProcessorFactory<T>, org.apache.druid.segment.vector.VectorColumnSelectorFactory) functions instead of using this class.the non-vectorized version.| Modifier and Type | Method and Description |
|---|---|
ColumnCapabilities |
getColumnCapabilities(String column)
Returns capabilities of a particular column, or null if the column doesn't exist.
|
default int |
getMaxVectorSize()
Returns the maximum vector size for the
VectorCursor that generated this object. |
ReadableVectorInspector |
getReadableVectorInspector()
Returns a
ReadableVectorInspector for the VectorCursor that generated this object. |
MultiValueDimensionVectorSelector |
makeMultiValueDimensionSelector(DimensionSpec dimensionSpec)
Returns a dictionary encoded, string-typed, multi-value-per-row column selector.
|
VectorObjectSelector |
makeObjectSelector(String column)
Returns an object selector.
|
SingleValueDimensionVectorSelector |
makeSingleValueDimensionSelector(DimensionSpec dimensionSpec)
Returns a dictionary encoded, string-typed, single-value-per-row column selector.
|
VectorValueSelector |
makeValueSelector(String column)
Returns a primitive column selector.
|
getTypeareNumeric, areNumeric, areScalar, areScalar, canVectorize, canVectorizeReadableVectorInspector getReadableVectorInspector()
ReadableVectorInspector for the VectorCursor that generated this object.default int getMaxVectorSize()
VectorCursor that generated this object.VectorSizeInspector.getMaxVectorSize()SingleValueDimensionVectorSelector makeSingleValueDimensionSelector(DimensionSpec dimensionSpec)
getColumnCapabilities(java.lang.String) indicates they return STRING, or on nonexistent columns. Since the selector
created with this method operates directly on the dictionary encoded input, STRING values must be translated from
the dictionary id for a given row value using DimensionDictionarySelector.lookupName(int), but
this selector can prove optimal for operations which can be done directly on the underlying dictionary ids, such
as grouping within a segment.
If you need to write code that adapts to different input types, you should write a
VectorColumnProcessorFactory and use one of the
ColumnProcessors.makeVectorProcessor(java.lang.String, org.apache.druid.segment.VectorColumnProcessorFactory<T>, org.apache.druid.segment.vector.VectorColumnSelectorFactory) functions instead of using this method.MultiValueDimensionVectorSelector makeMultiValueDimensionSelector(DimensionSpec dimensionSpec)
getColumnCapabilities(java.lang.String) indicates they return STRING. Unlike
makeSingleValueDimensionSelector(org.apache.druid.query.dimension.DimensionSpec), this should not be called on nonexistent columns.
If you need to write code that adapts to different input types, you should write a
VectorColumnProcessorFactory and use one of the
ColumnProcessors.makeVectorProcessor(java.lang.String, org.apache.druid.segment.VectorColumnProcessorFactory<T>, org.apache.druid.segment.vector.VectorColumnSelectorFactory) functions instead of using this method.VectorValueSelector makeValueSelector(String column)
getColumnCapabilities(java.lang.String)
indicates they return DOUBLE, FLOAT, or LONG, or on nonexistent columns.
If you need to write code that adapts to different input types, you should write a
VectorColumnProcessorFactory and use one of the
ColumnProcessors.makeVectorProcessor(java.lang.String, org.apache.druid.segment.VectorColumnProcessorFactory<T>, org.apache.druid.segment.vector.VectorColumnSelectorFactory) functions instead of using this method.VectorObjectSelector makeObjectSelector(String column)
getColumnCapabilities(java.lang.String) indicates that
they return STRING or COMPLEX, or on nonexistent columns.
For STRING, this is needed if values are not dictionary encoded, such as computed virtual columns, or can
optionally be used in place of SingleValueDimensionVectorSelector when using the dictionary isn't helpful.
Currently, this should only be called on single valued STRING inputs (multi-value STRING vector object selector
is not yet implemented).
If you need to write code that adapts to different input types, you should write a
VectorColumnProcessorFactory and use one of the
ColumnProcessors.makeVectorProcessor(java.lang.String, org.apache.druid.segment.VectorColumnProcessorFactory<T>, org.apache.druid.segment.vector.VectorColumnSelectorFactory) functions instead of using this method.@Nullable ColumnCapabilities getColumnCapabilities(String column)
getColumnCapabilities in interface ColumnInspectorcolumn - column nameCopyright © 2011–2021 The Apache Software Foundation. All rights reserved.