Class ParquetColumnRegionBase<ATTR extends Attributes.Any>
- All Implemented Interfaces:
ChunkSource<ATTR>
,FillContextMaker
,GetContextMaker
,Page<ATTR>
,PagingChunkSource<ATTR>
,ColumnRegion<ATTR>
,Releasable
- Direct Known Subclasses:
ParquetColumnRegionByte
,ParquetColumnRegionChar
,ParquetColumnRegionDouble
,ParquetColumnRegionFloat
,ParquetColumnRegionInt
,ParquetColumnRegionLong
,ParquetColumnRegionObject
,ParquetColumnRegionShort
public class ParquetColumnRegionBase<ATTR extends Attributes.Any> extends Object
-
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.regioned.ColumnRegion
ColumnRegion.Null<ATTR extends Attributes.Any>
Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.sources.chunk.page.Page
Page.WithDefaults<ATTR extends Attributes.Any>, Page.WithDefaultsForRepeatingValues<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 Type Method Description void
fillChunk(ChunkSource.FillContext context, WritableChunk<? super ATTR> destination, OrderedKeys orderedKeys)
Populates the given destination chunk with data corresponding to the keys from the givenOrderedKeys
.void
fillChunkAppend(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.long
firstRowOffset()
Chunk<? extends ATTR>
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
.Chunk<? extends ATTR>
getChunk(ChunkSource.GetContext context, OrderedKeys orderedKeys)
Returns a chunk of data corresponding to the keys from the givenOrderedKeys
.ChunkPage<ATTR>
getChunkPageContaining(long elementIndex)
Class<?>
getNativeType()
long
length()
ChunkSource.FillContext
makeFillContext(int chunkCapacity, SharedContext sharedContext)
Allocate a newChunkSource.FillContext
for filling chunks from thisFillContextMaker
, typically aChunkSource
.ChunkSource.GetContext
makeGetContext(int chunkCapacity, SharedContext sharedContext)
Allocate a newChunkSource.GetContext
for retrieving chunks from thisGetContextMaker
, typically aChunkSource
.long
maxRow(long row)
ThemaxRow
is the greatest possible row which may reference this ChunkSource.void
releaseCachedResources()
Release any resources held for caching purposes.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.FillContextMaker
makeFillContext
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.GetContextMaker
makeGetContext
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.page.Page
advanceToNextPage, advanceToNextPage, advanceToNextPageAndGetPositionDistance, firstRow, getRowOffset, lastRow
-
Method Details
-
firstRowOffset
public long firstRowOffset()- Specified by:
firstRowOffset
in interfaceColumnRegion<ATTR extends Attributes.Any>
- Specified by:
firstRowOffset
in interfacePage<ATTR extends Attributes.Any>
- Returns:
- the first row of this page, after applying the
PagingChunkSource.mask()
, which refers to the first row of this page.
-
maxRow
public long maxRow(long row)Description copied from interface:PagingChunkSource
The
maxRow
is the greatest possible row which may reference this ChunkSource. This method is used byPagingChunkSource.fillChunkAppend(FillContext, WritableChunk, OrderedKeys.Iterator)
to determine which of itsOrderedKeys
are referencing thisPagingChunkSource
.The default implementation assumes that only one
PagingChunkSource
exits for each page reference. That is, there is only onePagingChunkSource
forOrderedKey
s with the same bits outside ofPagingChunkSource.mask()
.It is also possible to pack multiple, non-overlapping
PagingChunkSource
s into the same page reference. In this case, one typically will want to overridemaxRow
. An example such implementation isChunkPage
.- Specified by:
maxRow
in interfacePagingChunkSource<ATTR extends Attributes.Any>
- Parameters:
row
- Any row contained on this page.- Returns:
- the maximum last row of this page, located in the same way as row.
-
length
public final long length()- Specified by:
length
in interfacePage<ATTR extends Attributes.Any>
- Returns:
- the length of this page.
-
getNativeType
- Specified by:
getNativeType
in interfaceChunkSource<ATTR extends Attributes.Any>
-
getChunk
public Chunk<? extends ATTR> getChunk(@NotNull ChunkSource.GetContext context, @NotNull OrderedKeys orderedKeys)Description copied from interface:ChunkSource
Returns a chunk of data corresponding to the keys from the givenOrderedKeys
.- Specified by:
getChunk
in interfaceChunkSource<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
- AnOrderedKeys
representing the keys to be fetched- Returns:
- A chunk of data corresponding to the keys from the given
OrderedKeys
-
getChunk
public Chunk<? extends ATTR> getChunk(@NotNull ChunkSource.GetContext context, long firstKey, long lastKey)Description copied from interface:ChunkSource
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
. 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 intermediaryOrderedKeys
object.- Specified by:
getChunk
in interfaceChunkSource<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
public void fillChunk(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super ATTR> destination, @NotNull OrderedKeys orderedKeys)Description copied from interface:ChunkSource
Populates the given destination chunk with data corresponding to the keys from the givenOrderedKeys
.- Specified by:
fillChunk
in 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
- AnOrderedKeys
representing the keys to be fetched
-
fillChunkAppend
public void fillChunkAppend(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super ATTR> destination, @NotNull OrderedKeys.Iterator orderedKeysIterator)Description copied from interface:PagingChunkSource
Similar 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
destination
are 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:
fillChunkAppend
in 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.
-
getChunkPageContaining
-
releaseCachedResources
@OverridingMethodsMustInvokeSuper public void releaseCachedResources()Description copied from interface:Releasable
Release any resources held for caching purposes. Implementations need not guarantee that they are safe for normal use concurrently with invocations of this method.- Specified by:
releaseCachedResources
in interfaceReleasable
-
makeFillContext
Description copied from interface:FillContextMaker
Allocate a newChunkSource.FillContext
for filling chunks from thisFillContextMaker
, typically aChunkSource
.- Specified by:
makeFillContext
in interfaceFillContextMaker
- Parameters:
chunkCapacity
- The maximum size of anyWritableChunk
that will be filled with this contextsharedContext
- Shared store of intermediate results.- Returns:
- A context for use with fill operations
-
makeGetContext
Description copied from interface:GetContextMaker
Allocate a newChunkSource.GetContext
for retrieving chunks from thisGetContextMaker
, typically aChunkSource
.- Specified by:
makeGetContext
in interfaceGetContextMaker
- Parameters:
chunkCapacity
- The maximum size required for anyWritableChunk
allocated as part of the result.sharedContext
- Shared store of intermediate results.- Returns:
- A context for use with get operations
-