Package org.apache.druid.segment.virtual
Class ExpressionVectorObjectSelector
- java.lang.Object
-
- org.apache.druid.segment.virtual.ExpressionVectorObjectSelector
-
- All Implemented Interfaces:
VectorObjectSelector
,VectorSizeInspector
public class ExpressionVectorObjectSelector extends Object implements VectorObjectSelector
-
-
Constructor Summary
Constructors Constructor Description ExpressionVectorObjectSelector(ExprVectorProcessor<?> processor, Expr.VectorInputBinding bindings)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getCurrentVectorSize()
Returns the current vector size for this cursor.int
getMaxVectorSize()
Returns the maximum vector size for this cursor.Object[]
getObjectVector()
Get the current vector.
-
-
-
Constructor Detail
-
ExpressionVectorObjectSelector
public ExpressionVectorObjectSelector(ExprVectorProcessor<?> processor, Expr.VectorInputBinding bindings)
-
-
Method Detail
-
getObjectVector
public Object[] getObjectVector()
Description copied from interface:VectorObjectSelector
Get the current vector. The type of objects in the array depends on the type of the selector. Callers can determine this by callingVectorColumnSelectorFactory.getColumnCapabilities(String)
if creating selectors directly. Alternatively, callers usingVectorColumnProcessorFactory
will receive capabilities as part of the callback toVectorColumnProcessorFactory.makeObjectProcessor(ColumnCapabilities, VectorObjectSelector)
. String selectors, where type isColumnType.STRING
, must use objects compatible with the spec ofDimensionSelector.rowToObject(IndexedInts, DimensionDictionarySelector)
. Array selectors, whereTypeSignature.isArray()
, must useObject[]
. The array may contain null elements, and the array itself may also be null. Complex selectors may use any type of object. No other type of selector is possible. Vector object selectors are only used for strings, arrays, and complex types.- Specified by:
getObjectVector
in interfaceVectorObjectSelector
-
getMaxVectorSize
public int getMaxVectorSize()
Description copied from interface:VectorSizeInspector
Returns the maximum vector size for this cursor. It will not change for the lifetime of this cursor, and is generally used to allocate scratch arrays for later processing. Will always be greater than zero.- Specified by:
getMaxVectorSize
in interfaceVectorSizeInspector
-
getCurrentVectorSize
public int getCurrentVectorSize()
Description copied from interface:VectorSizeInspector
Returns the current vector size for this cursor. Will never be larger than the max size returned byVectorSizeInspector.getMaxVectorSize()
.- Specified by:
getCurrentVectorSize
in interfaceVectorSizeInspector
-
-