Interface CursorFactory

All Superinterfaces:
ColumnInspector, Expr.InputBindingInspector
All Known Implementing Classes:
ColumnarFrameCursorFactory, FilteredCursorFactory, HashJoinSegmentCursorFactory, IncrementalIndexCursorFactory, QueryableIndexCursorFactory, RestrictedCursorFactory, RowBasedCursorFactory, RowFrameCursorFactory, UnnestCursorFactory

public interface CursorFactory extends ColumnInspector
  • Method Details

    • makeCursorHolder

      CursorHolder makeCursorHolder(CursorBuildSpec spec)
      Creates a CursorHolder for a given CursorBuildSpec which describes how the reader is going to scan, filter, transform, group and aggregate, and/or order the data.
    • getRowSignature

      RowSignature getRowSignature()
      Returns the RowSignature of the data available from this cursor factory. For mutable segments, even though the signature may evolve over time, any particular object returned by this method is an immutable snapshot.
    • getColumnCapabilities

      @Nullable ColumnCapabilities getColumnCapabilities(String column)
      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. Note that CursorFactory are representations of "real" segments, so they are not aware of any virtual columns that may be involved in a query. In general, query engines should instead use the method ColumnSelectorFactory.getColumnCapabilities(String), which returns capabilities for virtual columns as well.
      Specified by:
      getColumnCapabilities in interface ColumnInspector
      Parameters:
      column - column name
      Returns:
      capabilities, or null