Class FrameColumnSelectorFactory
java.lang.Object
org.apache.druid.frame.segment.row.FrameColumnSelectorFactory
- All Implemented Interfaces:
Expr.InputBindingInspector,ColumnInspector,ColumnSelectorFactory,RowIdSupplier
public class FrameColumnSelectorFactory
extends Object
implements ColumnSelectorFactory, RowIdSupplier
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringName of the virtual column that contains the type of frames from thisColumnSelectorFactory.static final StringName of the virtual column that containsMemoryRangefor direct access to row memory.static final StringName of the virtual column that contains theRowSignatureof frames from thisColumnSelectorFactory.Fields inherited from interface org.apache.druid.segment.RowIdSupplier
INIT -
Constructor Summary
ConstructorsConstructorDescriptionFrameColumnSelectorFactory(Frame frame, RowSignature frameSignature, List<FieldReader> fieldReaders, ReadableFrameRowPointer rowPointer) -
Method Summary
Modifier and TypeMethodDescriptiongetColumnCapabilities(String column) Returns capabilities of a particular column, if known.longgetRowId()Returns a number that uniquely identifies the current position of some underlying cursor.Returns aRowIdSupplierthat allows callers to detect whether the selectors returned by this factory have moved or not.makeColumnValueSelector(String columnName) Returns ColumnValueSelector corresponding to the given column name, orNilColumnValueSelectorif the column with such name is absent.makeDimensionSelector(DimensionSpec dimensionSpec) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.druid.segment.ColumnInspector
getTypeMethods inherited from interface org.apache.druid.math.expr.Expr.InputBindingInspector
areNumeric, areNumeric, areSameTypes, areSameTypes, areScalar, areScalar, canVectorize, canVectorize
-
Field Details
-
FRAME_TYPE_COLUMN
Name of the virtual column that contains the type of frames from thisColumnSelectorFactory. This is necessary because callers need it to verify thatROW_MEMORY_COLUMNis usable, but the interface does not provide a natural way to retrieve the underlying frame type. Guaranteed not to appear in the frame itself due toFrameWriterUtils.findDisallowedFieldNames(org.apache.druid.segment.column.RowSignature)checks.- See Also:
-
ROW_SIGNATURE_COLUMN
Name of the virtual column that contains theRowSignatureof frames from thisColumnSelectorFactory. This is necessary because callers need it to verify thatROW_MEMORY_COLUMNis usable, but the interface does not provide a natural way to retrieve the underlying signature. Guaranteed not to appear in the frame itself due toFrameWriterUtils.findDisallowedFieldNames(org.apache.druid.segment.column.RowSignature)checks.- See Also:
-
ROW_MEMORY_COLUMN
Name of the virtual column that containsMemoryRangefor direct access to row memory. Guaranteed not to appear in the frame itself due toFrameWriterUtils.findDisallowedFieldNames(org.apache.druid.segment.column.RowSignature)checks.- See Also:
-
-
Constructor Details
-
FrameColumnSelectorFactory
public FrameColumnSelectorFactory(Frame frame, RowSignature frameSignature, List<FieldReader> fieldReaders, ReadableFrameRowPointer rowPointer)
-
-
Method Details
-
makeDimensionSelector
- Specified by:
makeDimensionSelectorin interfaceColumnSelectorFactory
-
makeColumnValueSelector
Description copied from interface:ColumnSelectorFactoryReturns ColumnValueSelector corresponding to the given column name, orNilColumnValueSelectorif the column with such name is absent.- Specified by:
makeColumnValueSelectorin interfaceColumnSelectorFactory
-
getRowIdSupplier
Description copied from interface:ColumnSelectorFactoryReturns aRowIdSupplierthat allows callers to detect whether the selectors returned by this factory have moved or not. Useful for selectors that wrap other selectors, such as virtual columns, as it allows them to cache their outputs.- Specified by:
getRowIdSupplierin interfaceColumnSelectorFactory
-
getRowId
public long getRowId()Description copied from interface:RowIdSupplierReturns a number that uniquely identifies the current position of some underlying cursor. This is useful for caching: it is safe to assume nothing has changed in the selector as long as the row ID stays the same. Row IDs do not need to be contiguous or monotonic. They need not have any meaning. In particular: they may not be row *numbers* (row number 0 may have any arbitrary row ID). Valid row IDs are always nonnegative.- Specified by:
getRowIdin interfaceRowIdSupplier
-
getColumnCapabilities
Description copied from interface:ColumnSelectorFactoryReturns capabilities of a particular column, if known. May be null if the column doesn't exist, or if the column does exist but the capabilities are unknown. The latter is possible with dynamically discovered columns.- Specified by:
getColumnCapabilitiesin interfaceColumnInspector- Specified by:
getColumnCapabilitiesin interfaceColumnSelectorFactory- Parameters:
column- column name- Returns:
- capabilities, or null
-