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
Fields Modifier and Type Field Description static String
ROW_MEMORY_COLUMN
Name of the virtual column that containsMemoryRange
for direct access to row memory.static String
ROW_SIGNATURE_COLUMN
Name of the virtual column that contains theRowSignature
of frames from thisColumnSelectorFactory
.-
Fields inherited from interface org.apache.druid.segment.RowIdSupplier
INIT
-
-
Constructor Summary
Constructors Constructor Description FrameColumnSelectorFactory(Frame frame, RowSignature frameSignature, List<FieldReader> fieldReaders, ReadableFrameRowPointer rowPointer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ColumnCapabilities
getColumnCapabilities(String column)
Returns capabilities of a particular column, if known.long
getRowId()
Returns a number that uniquely identifies the current position of some underlying cursor.RowIdSupplier
getRowIdSupplier()
Returns aRowIdSupplier
that allows callers to detect whether the selectors returned by this factory have moved or not.ColumnValueSelector
makeColumnValueSelector(String columnName)
Returns ColumnValueSelector corresponding to the given column name, orNilColumnValueSelector
if the column with such name is absent.DimensionSelector
makeDimensionSelector(DimensionSpec dimensionSpec)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.druid.segment.ColumnInspector
getColumnCapabilitiesWithDefault, getType
-
Methods inherited from interface org.apache.druid.math.expr.Expr.InputBindingInspector
areNumeric, areNumeric, areSameTypes, areSameTypes, areScalar, areScalar, canVectorize, canVectorize
-
-
-
-
Field Detail
-
ROW_SIGNATURE_COLUMN
public static final String ROW_SIGNATURE_COLUMN
Name of the virtual column that contains theRowSignature
of frames from thisColumnSelectorFactory
. This is necessary because callers need it to verify thatROW_MEMORY_COLUMN
is 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:
- Constant Field Values
-
ROW_MEMORY_COLUMN
public static final String ROW_MEMORY_COLUMN
Name of the virtual column that containsMemoryRange
for 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:
- Constant Field Values
-
-
Constructor Detail
-
FrameColumnSelectorFactory
public FrameColumnSelectorFactory(Frame frame, RowSignature frameSignature, List<FieldReader> fieldReaders, ReadableFrameRowPointer rowPointer)
-
-
Method Detail
-
makeDimensionSelector
public DimensionSelector makeDimensionSelector(DimensionSpec dimensionSpec)
- Specified by:
makeDimensionSelector
in interfaceColumnSelectorFactory
-
makeColumnValueSelector
public ColumnValueSelector makeColumnValueSelector(String columnName)
Description copied from interface:ColumnSelectorFactory
Returns ColumnValueSelector corresponding to the given column name, orNilColumnValueSelector
if the column with such name is absent.- Specified by:
makeColumnValueSelector
in interfaceColumnSelectorFactory
-
getRowIdSupplier
@Nullable public RowIdSupplier getRowIdSupplier()
Description copied from interface:ColumnSelectorFactory
Returns aRowIdSupplier
that 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:
getRowIdSupplier
in interfaceColumnSelectorFactory
-
getRowId
public long getRowId()
Description copied from interface:RowIdSupplier
Returns 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:
getRowId
in interfaceRowIdSupplier
-
getColumnCapabilities
@Nullable public ColumnCapabilities getColumnCapabilities(String column)
Description copied from interface:ColumnSelectorFactory
Returns 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:
getColumnCapabilities
in interfaceColumnInspector
- Specified by:
getColumnCapabilities
in interfaceColumnSelectorFactory
- Parameters:
column
- column name- Returns:
- capabilities, or null
-
-