Interface ColumnRegionObject<T,ATTR extends Attributes.Any>
- All Superinterfaces:
ChunkSource<ATTR>
,ColumnRegion<ATTR>
,FillContextMaker
,GetContextMaker
,Page<ATTR>
,PagingChunkSource<ATTR>
,Releasable
- All Known Implementing Classes:
ColumnRegionChunkDictionary
,ColumnRegionObject.Null
,ColumnRegionObject.StaticPageStore
,ColumnRegionObjectCached
,ColumnRegionObjectCodecFixed
,ColumnRegionObjectCodecVariable
,ColumnRegionObjectWithDictionary
,ColumnRegionStringSet
,DeferredColumnRegionObject
,ParquetColumnRegionObject
,ParquetColumnRegionSymbolTable
public interface ColumnRegionObject<T,ATTR extends Attributes.Any> extends ColumnRegion<ATTR>
Column region interface for regions that support fetching objects.
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
ColumnRegionObject.DictionaryKeysWrapper
static class
ColumnRegionObject.IntDictionaryKeysWrapper
static class
ColumnRegionObject.Null<T,ATTR extends Attributes.Any>
The null region returns null for all indices.static class
ColumnRegionObject.StaticPageStore<DATA_TYPE,ATTR extends Attributes.Any>
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.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 static ColumnRegionLong<Attributes.DictionaryKeys>
createDictionaryKeysWrapper(int regionIndex, ColumnRegionObject<?,?> sourceRegion)
static <T, ATTR extends Attributes.Any>
ColumnRegionObject.Null<T,ATTR>createNull()
default boolean
gatherDictionaryValuesRowSet(ReadOnlyIndex.SearchIterator keysToVisit, ReadOnlyIndex.Iterator knownKeys, Index.SequentialBuilder sequentialBuilder)
Optional method that should only be used on regions returned bygetDictionaryValuesRegion()
.default ColumnRegionLong<Attributes.DictionaryKeys>
getDictionaryKeysRegion()
Get a view of this region as long dictionary keys.default ColumnRegionInt<Attributes.DictionaryKeys>
getDictionaryKeysRegionInt()
Get a view of this region as int dictionary keys.default ChunkType
getDictionaryRegionType()
default ColumnRegionObject<T,ATTR>
getDictionaryValuesRegion()
Get a view of this region as dictionary values.Class<?>
getNativeType()
T
getObject(long elementIndex)
Get a single object from this region.default T
getObject(ChunkSource.FillContext context, long elementIndex)
Get a single object from this region.default ColumnRegionObject<T,ATTR>
skipCache()
Get a version of this region that skips all internal value caching.default RegionVisitResult
supportsDictionaryFormat(ReadOnlyIndex.SearchIterator keysToVisit)
Check if this region can expose an alternate form as paired regions oflong
keys andDATA_TYPE
values covering all of its row keys inkeysToVisit
.Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource
fillChunk, getChunk, getChunk, getChunkType
Methods inherited from interface com.illumon.iris.db.v2.sources.regioned.ColumnRegion
firstRowOffset, mask
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.FillContextMaker
makeFillContext, makeFillContext
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.GetContextMaker
makeGetContext, makeGetContext
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.page.Page
advanceToNextPage, advanceToNextPage, advanceToNextPageAndGetPositionDistance, firstRow, getRowOffset, lastRow, length
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.page.PagingChunkSource
fillChunkAppend, maxRow
-
Method Details
-
getObject
Get a single object from this region.- Parameters:
elementIndex
- Element (object) index in the table's address space- Returns:
- The object value at the specified element (object) index
-
getObject
Get a single object from this region.- Parameters:
context
- AColumnRegionFillContext
to enable resource caching where suitable, with current region index pointing to this regionelementIndex
- Element (object) index in the table's address space- Returns:
- The object value at the specified element (object) index
-
supportsDictionaryFormat
default RegionVisitResult supportsDictionaryFormat(@NotNull ReadOnlyIndex.SearchIterator keysToVisit)Check if this region can expose an alternate form as paired regions oflong
keys andDATA_TYPE
values covering all of its row keys inkeysToVisit
.Both alternate regions must use the same or smaller row key space as this one. Indices fetched from the keys region must represent valid element indices in the values region. Values regions must support
gatherDictionaryValuesRowSet(Index.SearchIterator, Index.Iterator, Index.SequentialBuilder)
.Use
getDictionaryKeysRegion()
to access the region of keys andgetDictionaryValuesRegion()
to access the region of values.- Parameters:
keysToVisit
- Iterator positioned at the first relevant row key belonging to this region. Will be advanced to after this region iftrue
is returned. No guarantee is made iffalse
is returned.- Returns:
- A
RegionVisitResult
specifyingFAILED
if this region cannot supply a dictionary,CONTINUE
if it can andkeysToVisit
is not exhausted, andCOMPLETE
if it can andkeysToVisit
is exhausted
-
gatherDictionaryValuesRowSet
default boolean gatherDictionaryValuesRowSet(@NotNull ReadOnlyIndex.SearchIterator keysToVisit, @NotNull ReadOnlyIndex.Iterator knownKeys, @NotNull Index.SequentialBuilder sequentialBuilder)Optional method that should only be used on regions returned bygetDictionaryValuesRegion()
. Gathers- Parameters:
keysToVisit
- A search iterator over the enclosing table address space (which must have the same regions at the same masks), positioned at a row key in this region. Used to identify regions to visit. Should be advanced to after this region as a side-effect.knownKeys
- An iterator over the previously-known row keys, positioned at the first known key in this region, or after the region's maximum key if no keys are known. Should be advanced to after this region as a side effect.sequentialBuilder
- Output builder; implementations should append ranges for row keys not found inknownKeys
- Returns:
- Whether
keysToVisit
has been exhausted - Throws:
UnsupportedOperationException
- If this region is incapable of gathering its dictionary values RowSet
-
getDictionaryRegionType
-
getDictionaryKeysRegion
Get a view of this region as long dictionary keys.- Returns:
- A dictionary keys region as specified by
supportsDictionaryFormat(Index.SearchIterator)
- Throws:
UnsupportedOperationException
- If this region does not support dictionary format- ImplNote:
- Implementations should cache the result
-
getDictionaryKeysRegionInt
Get a view of this region as int dictionary keys.- Returns:
- A dictionary keys region as specified by
supportsDictionaryFormat(Index.SearchIterator)
- Throws:
UnsupportedOperationException
- If this region does not support dictionary format- ImplNote:
- Implementations should cache the result
-
getDictionaryValuesRegion
Get a view of this region as dictionary values.- Returns:
- A dictionary values region as specified by
supportsDictionaryFormat(Index.SearchIterator)
- Throws:
UnsupportedOperationException
- If this region does not support dictionary format- ImplNote:
- Implementations should cache the result
-
skipCache
Get a version of this region that skips all internal value caching.- Returns:
- a view of this region that ignores any value caching.
-
getNativeType
Class<?> getNativeType()- Specified by:
getNativeType
in interfaceChunkSource<T>
-
createNull
-
createDictionaryKeysWrapper
static ColumnRegionLong<Attributes.DictionaryKeys> createDictionaryKeysWrapper(int regionIndex, @NotNull ColumnRegionObject<?,?> sourceRegion)
-