Interface Page<ATTR extends Any>
- All Superinterfaces:
ChunkSource<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
ChunkSource interface to a contiguous block of data beginning at firstRowOffset()
and continuing to some row less than or equal to firstRowOffset() + PagingChunkSource.maxRow(long).
Non overlapping pages can be collected together in a PageStore, which provides the ChunkSource
interface to the collection of all of its Pages.
There are two distinct use cases/types of pages. The first use case are Pages which always have a length()
> 0. These store length() values, which can be assessed via the ChunkSource methods. Valid
RowSequence passed to those methods will have their offset in the range [firstRowOffset(), firstRowOffset() +
length()). Passing OrderKeys with offsets outside of this range will have undefined results.
The second use case will always have length() == 0 and firstRowOffset() == 0. These represent "Null" regions which
return a fixed value, typically a null value, for every RowSequence passed into the ChunkSource
methods. In order to have this use case, override length and override lastRow as maxRow.
Though the ChunkSource methods ignore the non-offset portion of the rows in the RowSequence, they can
assume they are identical for all the passed in elements of the RowSequence. For instance, they can use the
simple difference between the complete row value to determine a length.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfacePage.WithDefaults<ATTR extends Any>Helper defaults for general pages.static interfacePage.WithDefaultsForRepeatingValues<ATTR extends Any>Helper defaults for pages that represent a repeating value, e.g.Nested classes/interfaces inherited from interface io.deephaven.engine.table.ChunkSource
ChunkSource.FillContext, ChunkSource.GetContext, ChunkSource.WithPrev<ATTR extends Any> -
Field Summary
Fields inherited from interface io.deephaven.engine.table.ChunkSource
DEFAULT_FILL_INSTANCE, ZERO_LENGTH_CHUNK_SOURCE_ARRAY -
Method Summary
Modifier and TypeMethodDescriptiondefault voidadvanceToNextPage(RowSequence.Iterator rowSequenceIterator) AssumingrowSequenceIteratoris position at its first row key on this page, consume all keys on this page.default booleanadvanceToNextPage(RowSet.SearchIterator searchIterator) AssumingsearchIteratoris position at its first row key on this page, consume all keys on this page.default longadvanceToNextPageAndGetPositionDistance(RowSequence.Iterator rowSequenceIterator) AssumingrowSequenceIteratoris position at its first row key on this page, consume all keys on this page and return the number of keys consumed.default longfirstRow(long row) longdefault longgetRowOffset(long row) Methods inherited from interface io.deephaven.engine.table.ChunkSource
fillChunk, getChunk, getChunk, getChunkTypeMethods inherited from interface io.deephaven.engine.table.FillContextMaker
makeFillContext, makeFillContextMethods inherited from interface io.deephaven.engine.table.GetContextMaker
makeGetContext, makeGetContextMethods inherited from interface io.deephaven.engine.page.PagingChunkSource
fillChunkAppend, mask, maxRow
-
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
- Parameters:
row- Any row contained on this page.- Returns:
- the first row of this page, located in the same way as row.
-
getRowOffset
- Returns:
- the offset for the given row in this page, in [0,
maxRow(row)].
-
advanceToNextPage
AssumingrowSequenceIteratoris 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) AssumingrowSequenceIteratoris 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
AssumingsearchIteratoris 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)
-