Interface Page<ATTR extends Any>

All Superinterfaces:
ChunkSource<ATTR>, DefaultChunkSource<ATTR>, FillContextMaker, GetContextMaker, PagingChunkSource<ATTR>
All Known Subinterfaces:
ChunkPage<ATTR>, ColumnRegion<ATTR>, ColumnRegionByte<ATTR>, ColumnRegionChar<ATTR>, ColumnRegionDouble<ATTR>, ColumnRegionFloat<ATTR>, ColumnRegionInt<ATTR>, ColumnRegionLong<ATTR>, ColumnRegionObject<DATA_TYPE,ATTR>, ColumnRegionObject.SelfDictionaryRegion<DATA_TYPE,ATTR>, ColumnRegionReferencing<ATTR,REFERENCED_COLUMN_REGION>, ColumnRegionShort<ATTR>, Page.WithDefaults<ATTR>, Page.WithDefaultsForRepeatingValues<ATTR>
All Known Implementing Classes:
AppendOnlyFixedSizePageRegionByte, AppendOnlyFixedSizePageRegionChar, AppendOnlyFixedSizePageRegionDouble, AppendOnlyFixedSizePageRegionFloat, AppendOnlyFixedSizePageRegionInt, AppendOnlyFixedSizePageRegionLong, AppendOnlyFixedSizePageRegionObject, AppendOnlyFixedSizePageRegionShort, BooleanChunkPage, ByteChunkPage, CharChunkPage, ChunkHolderPageBoolean, ChunkHolderPageByte, ChunkHolderPageChar, ChunkHolderPageDouble, ChunkHolderPageFloat, ChunkHolderPageInt, ChunkHolderPageLong, ChunkHolderPageObject, ChunkHolderPageShort, ColumnChunkPageStore, ColumnRegion.Null, ColumnRegionByte.Constant, ColumnRegionByte.Null, ColumnRegionByte.StaticPageStore, ColumnRegionChar.Constant, ColumnRegionChar.Null, ColumnRegionChar.StaticPageStore, ColumnRegionChunkDictionary, ColumnRegionDouble.Constant, ColumnRegionDouble.Null, ColumnRegionDouble.StaticPageStore, ColumnRegionFloat.Constant, ColumnRegionFloat.Null, ColumnRegionFloat.StaticPageStore, ColumnRegionInt.Constant, ColumnRegionInt.Null, ColumnRegionInt.StaticPageStore, ColumnRegionLong.Constant, ColumnRegionLong.Null, ColumnRegionLong.StaticPageStore, ColumnRegionObject.Constant, ColumnRegionObject.DictionaryKeysWrapper, ColumnRegionObject.Null, ColumnRegionObject.StaticPageStore, ColumnRegionReferencing.Null, ColumnRegionReferencingImpl, ColumnRegionShort.Constant, ColumnRegionShort.Null, ColumnRegionShort.StaticPageStore, DeferredColumnRegionBase, DeferredColumnRegionChar, DeferredColumnRegionDouble, DeferredColumnRegionFloat, DeferredColumnRegionInt, DeferredColumnRegionLong, DeferredColumnRegionObject, DeferredColumnRegionReferencing, DeferredColumnRegionShort, DoubleChunkPage, FloatChunkPage, GenericColumnRegionBase, IntChunkPage, LongChunkPage, ObjectChunkPage, ParquetColumnRegionBase, ParquetColumnRegionByte, ParquetColumnRegionChar, ParquetColumnRegionDouble, ParquetColumnRegionFloat, ParquetColumnRegionInt, ParquetColumnRegionLong, ParquetColumnRegionObject, ParquetColumnRegionShort, ShortChunkPage

public interface Page<ATTR extends Any> extends PagingChunkSource<ATTR>
Pages are PagingChunkSources that can supply values from a subset of a contiguous block of row key space beginning at firstRowOffset() and continuing to firstRowOffset() + PagingChunkSource.maxRow(long). Not all row keys within the range may be valid; that is, pages may be sparse.

Pages may be held within one or more PageStore instances. The PageStore is responsible for determining which row keys in absolute space are mapped to a particular Page. Pages need only concern themselves with lower order bits of the row keys they are asked for, after applying their PagingChunkSource.mask().

  • Method Details

    • firstRowOffset

      long firstRowOffset()
      Returns:
      the first row of this page, after applying the PagingChunkSource.mask(), which refers to the first row of this page.
    • firstRow

      @FinalDefault default long firstRow(long rowKey)
      Parameters:
      rowKey - Any row key contained on this page
      Returns:
      The first row key of this page, located in the same way as rowKey
    • getRowOffset

      @FinalDefault default long getRowOffset(long rowKey)
      Returns:
      The offset for the given row key in this page, in [0, maxRow(rowKey)].
    • advanceToNextPage

      @FinalDefault default void advanceToNextPage(@NotNull RowSequence.Iterator rowSequenceIterator)
      Assuming rowSequenceIterator is position at its first row key on this page, consume all keys on this page.
      Parameters:
      rowSequenceIterator - The iterator to advance
    • advanceToNextPageAndGetPositionDistance

      @FinalDefault default long advanceToNextPageAndGetPositionDistance(@NotNull RowSequence.Iterator rowSequenceIterator)
      Assuming rowSequenceIterator is position at its first row key on this page, consume all keys on this page and return the number of keys consumed.
      Parameters:
      rowSequenceIterator - The iterator to advance
    • advanceToNextPage

      @FinalDefault default boolean advanceToNextPage(@NotNull RowSet.SearchIterator searchIterator)
      Assuming searchIterator is position at its first row key on this page, consume all keys on this page.
      Parameters:
      searchIterator - The iterator to advance
      Returns:
      The result of RowSet.SearchIterator.advance(long)