Interface PageStore<ATTR extends Attributes.Any,INNER_ATTR extends ATTR,PAGE extends Page<INNER_ATTR>>
- All Superinterfaces:
ChunkSource<ATTR>,DefaultChunkSource<ATTR>,DefaultChunkSource.SupportsContiguousGet<ATTR>,FillContextMaker,GetContextMaker,PagingChunkSource<ATTR>
- All Known Subinterfaces:
BufferedColumnRegion<ATTR>,RegionedPageStore<ATTR,INNER_ATTR, REGION_TYPE>
- All Known Implementing Classes:
BufferedColumnRegionBase,BufferedColumnRegionByte,BufferedColumnRegionChar,BufferedColumnRegionDouble,BufferedColumnRegionFloat,BufferedColumnRegionInt,BufferedColumnRegionLong,BufferedColumnRegionShort,ColumnChunkPageStore,ParquetColumnRegionByte.StaticPageStore,ParquetColumnRegionChar.StaticPageStore,ParquetColumnRegionDouble.StaticPageStore,ParquetColumnRegionFloat.StaticPageStore,ParquetColumnRegionInt.StaticPageStore,ParquetColumnRegionLong.StaticPageStore,ParquetColumnRegionObject.StaticPageStore,ParquetColumnRegionShort.StaticPageStore,RegionedColumnSourceBase,RegionedColumnSourceObject,RegionedColumnSourceObject.AsValues,RegionedColumnSourceObjectWithDictionary,RegionedColumnSourcePartitioning,RegionedPageStore.Static
public interface PageStore<ATTR extends Attributes.Any,INNER_ATTR extends ATTR,PAGE extends Page<INNER_ATTR>>
extends PagingChunkSource<ATTR>, DefaultChunkSource.SupportsContiguousGet<ATTR>
PageStores are a collection of non-overlapping pages, which provides a single
ChunkSource interface across all the pages.-
Nested Class Summary
Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource
ChunkSource.FillContext, ChunkSource.GetContext, ChunkSource.WithPrev<ATTR extends Attributes.Any>Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.sources.chunk.DefaultChunkSource
DefaultChunkSource.SupportsContiguousGet<ATTR extends Attributes.Any>, DefaultChunkSource.WithPrev<ATTR extends Attributes.Any> -
Field Summary
Fields inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource
DEFAULT_FILL_INSTANCE, ZERO_LENGTH_CHUNK_SOURCE_ARRAY -
Method Summary
Modifier and TypeMethodDescriptiondefault voiddoFillChunkAppend(ChunkSource.FillContext context, WritableChunk<? super ATTR> destination, OrderedKeys orderedKeys, Page<INNER_ATTR> page) This is a helper which is the same as a call tofillChunkAppend(com.illumon.iris.db.v2.sources.chunk.ChunkSource.FillContext, com.illumon.iris.db.v2.sources.chunk.WritableChunk<? super ATTR>, com.illumon.iris.db.v2.utils.OrderedKeys.Iterator), except that some of the initial work has already been done for the first call toPagingChunkSource.fillChunkAppend(FillContext, WritableChunk, OrderedKeys.Iterator)which we don't want to repeat.default voidfillChunk(ChunkSource.FillContext context, WritableChunk<? super ATTR> destination, OrderedKeys orderedKeys) Populates the given destination chunk with data corresponding to the keys from the givenOrderedKeys.default voidfillChunkAppend(ChunkSource.FillContext context, WritableChunk<? super ATTR> destination, OrderedKeys.Iterator orderedKeysIterator) Similar toChunkSource.fillChunk(FillContext, WritableChunk, OrderedKeys), except that the values from the ChunkSource are appended todestination, rather than placed at the beginning.getChunk(ChunkSource.GetContext context, long firstKey, long lastKey) Same asChunkSource.getChunk(GetContext, OrderedKeys), except that you pass in the begin and last keys representing the begin and last (inclusive) keys of a single range rather than anOrderedKeys.getChunk(ChunkSource.GetContext context, OrderedKeys orderedKeys) Returns a chunk of data corresponding to the keys from the givenOrderedKeys.getPageContaining(ChunkSource.FillContext fillContext, long row) Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource
getChunkType, getNativeTypeMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.DefaultChunkSource
getChunkByFilling, makeFillContext, makeGetContextMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.FillContextMaker
makeFillContextMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.GetContextMaker
makeGetContextMethods inherited from interface com.illumon.iris.db.v2.sources.chunk.page.PagingChunkSource
mask, maxRow
-
Method Details
-
getPageContaining
- Returns:
- The page containing row, after applying
PagingChunkSource.mask().
-
getChunk
default Chunk<? extends ATTR> getChunk(@NotNull ChunkSource.GetContext context, @NotNull OrderedKeys orderedKeys) Description copied from interface:ChunkSourceReturns a chunk of data corresponding to the keys from the givenOrderedKeys.- Specified by:
getChunkin interfaceChunkSource<ATTR extends Attributes.Any>- Specified by:
getChunkin interfaceDefaultChunkSource<ATTR extends Attributes.Any>- Specified by:
getChunkin interfaceDefaultChunkSource.SupportsContiguousGet<ATTR extends Attributes.Any>- Parameters:
context- A context containing all mutable/state related data used in retrieving the Chunk. In particular, the Context may be used to provide a Chunk data poolorderedKeys- AnOrderedKeysrepresenting the keys to be fetched- Returns:
- A chunk of data corresponding to the keys from the given
OrderedKeys
-
getChunk
@NotNull default Chunk<? extends ATTR> getChunk(@NotNull ChunkSource.GetContext context, long firstKey, long lastKey) Description copied from interface:ChunkSourceSame asChunkSource.getChunk(GetContext, OrderedKeys), except that you pass in the begin and last keys representing the begin and last (inclusive) keys of a single range rather than anOrderedKeys. Typically you want to call this only if you don't have anOrderedKeys, such as during anOrderedKeys.forAllLongRanges(LongRangeConsumer)call. In this case, it allows you to avoid creating an intermediaryOrderedKeysobject.- Specified by:
getChunkin interfaceChunkSource<ATTR extends Attributes.Any>- Specified by:
getChunkin interfaceDefaultChunkSource<ATTR extends Attributes.Any>- Specified by:
getChunkin interfaceDefaultChunkSource.SupportsContiguousGet<ATTR extends Attributes.Any>- Parameters:
context- A context containing all mutable/state related data used in retrieving the Chunk. In particular, the Context may be used to provide a Chunk data poolfirstKey- The beginning key (inclusive) of the range to fetch in the chunklastKey- The last key (inclusive) of the range to fetch in the chunk- Returns:
- A chunk of data corresponding to the keys from the given range.
-
fillChunk
default void fillChunk(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super ATTR> destination, @NotNull OrderedKeys orderedKeys) Description copied from interface:ChunkSourcePopulates the given destination chunk with data corresponding to the keys from the givenOrderedKeys.- Specified by:
fillChunkin interfaceChunkSource<ATTR extends Attributes.Any>- Parameters:
context- A context containing all mutable/state related data used in retrieving the Chunk.destination- The chunk to be populated according toorderedKeys. No assumptions shall be made about the size of the chunk shall be made. The chunk will be populated from position [0,orderedKeys.size()).orderedKeys- AnOrderedKeysrepresenting the keys to be fetched
-
fillChunkAppend
default void fillChunkAppend(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super ATTR> destination, @NotNull OrderedKeys.Iterator orderedKeysIterator) Description copied from interface:PagingChunkSourceSimilar to
ChunkSource.fillChunk(FillContext, WritableChunk, OrderedKeys), except that the values from the ChunkSource are appended todestination, rather than placed at the beginning.The values to fill into
destinationare specified byorderedKeysIterator, whoseOrderedKeys.firstKey()must exist, and must be represented by thisPagingChunkSource(modulo {#link @mask}), otherwise results are undefined.No more than the elements in
orderedKeysIterator, which are on the same page asOrderedKeys.firstKey(), have their values appended todestination, and consumed fromorderedKeysIterator. Keys are on the same page when the bits outside ofPagingChunkSource.mask()are identical.- Specified by:
fillChunkAppendin interfacePagingChunkSource<ATTR extends Attributes.Any>- Parameters:
context- A context containing all mutable/state related data used in retrieving the Chunk. In particular, the Context may be used to provide a Chunk data pooldestination- The chunk to append the results to.orderedKeysIterator- The iterator to the ordered keys, which contain at least the keys to extract from thisChunkSource. The keys to extract will be at the beginning of iteration order.
-
doFillChunkAppend
@FinalDefault default void doFillChunkAppend(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super ATTR> destination, OrderedKeys orderedKeys, @NotNull Page<INNER_ATTR> page) This is a helper which is the same as a call tofillChunkAppend(com.illumon.iris.db.v2.sources.chunk.ChunkSource.FillContext, com.illumon.iris.db.v2.sources.chunk.WritableChunk<? super ATTR>, com.illumon.iris.db.v2.utils.OrderedKeys.Iterator), except that some of the initial work has already been done for the first call toPagingChunkSource.fillChunkAppend(FillContext, WritableChunk, OrderedKeys.Iterator)which we don't want to repeat.
-