Class ColumnRegionObjectCodecVariable<T,ATTR extends Values>
- Type Parameters:
T- The realized type of the encoded objects within this regionATTR- The Chunk attribute for this region
- All Implemented Interfaces:
Page<ATTR>,Page.WithDefaults<ATTR>,PagingChunkSource<ATTR>,ChunkSource<ATTR>,FillContextMaker,GetContextMaker,DefaultChunkSource<ATTR>,PushdownFilterMatcher,ColumnRegion<ATTR>,ColumnRegionObject<T,,ATTR> RegionedPushdownFilterMatcher,Releasable,ColumnRegionObjectWithLength<T,ATTR>
ColumnRegion for non-primitive types that have a variable size. Objects are stored within two underlying
files.
The Offset file contains the byte offsets within the binary file for each index within the region. When reading from the binary file, we use offset at the previous index as the starting offset for the object and the offset at the current index as the ending offset within the binary file for the object.
The binary file contains the raw bytes of each object as encoded by the ObjectDecoder, which is typically
defined as the codec at the schema level for a table.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.deephaven.engine.table.ChunkSource
ChunkSource.FillContext, ChunkSource.GetContextNested classes/interfaces inherited from interface io.deephaven.engine.table.impl.sources.regioned.ColumnRegion
ColumnRegion.Null<ATTR extends Any>Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.sources.regioned.ColumnRegionObject
ColumnRegionObject.Constant<DATA_TYPE extends Object,ATTR extends Any>, ColumnRegionObject.DictionaryKeysWrapper, ColumnRegionObject.Null<DATA_TYPE extends Object, ATTR extends Any>, ColumnRegionObject.SelfDictionaryRegion<DATA_TYPE extends Object, ATTR extends Any>, ColumnRegionObject.StaticPageStore<DATA_TYPE extends Object, ATTR extends Any> Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.DefaultChunkSource
DefaultChunkSource.SupportsContiguousGet<ATTR extends Any>, DefaultChunkSource.WithPrev<ATTR extends Any>Nested classes/interfaces inherited from interface io.deephaven.engine.page.Page
Page.WithDefaults<ATTR extends Any>, Page.WithDefaultsForRepeatingValues<ATTR extends Any> -
Field Summary
Fields inherited from interface io.deephaven.engine.table.ChunkSource
DEFAULT_FILL_INSTANCE, ZERO_LENGTH_CHUNK_SOURCE_ARRAY -
Constructor Summary
ConstructorsConstructorDescriptionColumnRegionObjectCodecVariable(@NotNull ObjectDecoder<T> decoder, @NotNull ColumnRegionLongWithLength<Indices> offsetData, @NotNull ColumnRegionByteWithLength<EncodedObjects> binaryData, @NotNull ColumnLocation columnLocation) -
Method Summary
Modifier and TypeMethodDescriptionlongestimatePushdownAction(RegionedPushdownAction action, WhereFilter filter, RowSet selection, boolean usePrev, PushdownFilterContext filterContext, RegionedPushdownAction.EstimateContext estimateContext) voidfillChunkAppend(ChunkSource.FillContext fillContext, @NotNull WritableChunk<? super ATTR> destination, @NotNull RowSequence orderedKeys) booleangatherDictionaryValuesRowSet(RowSet.SearchIterator keysToVisit, RowSequence.Iterator knownKeys, @NotNull RowSetBuilderSequential sequentialBuilder) getObject(long elementIndex) getObject(ChunkSource.FillContext context, long elementIndex) Get the number of objects that can be read from this region, if it is known.makeFillContext(int chunkCapacity, SharedContext sharedContext) longmask()performPushdownAction(RegionedPushdownAction action, WhereFilter filter, RowSet selection, PushdownResult input, boolean usePrev, PushdownFilterContext filterContext, RegionedPushdownAction.ActionContext actionContext) voidMethods inherited from class io.deephaven.enterprise.sources.regioned.impl.InvalidatableRegion
invalidate, throwIfInvalidatedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.deephaven.engine.table.impl.sources.regioned.ColumnRegion
estimatePushdownFilterCost, firstRowOffset, invalidate, pushdownFilterMethods inherited from interface io.deephaven.engine.table.impl.sources.regioned.ColumnRegionObject
getChunkType, getDictionaryKeysRegion, getDictionaryValuesRegion, supportsDictionaryFormatMethods inherited from interface io.deephaven.engine.table.impl.DefaultChunkSource
getChunk, getChunk, getChunkByFilling, makeGetContextMethods inherited from interface io.deephaven.engine.table.FillContextMaker
makeFillContextMethods inherited from interface io.deephaven.engine.table.GetContextMaker
makeGetContextMethods inherited from interface io.deephaven.engine.page.Page
advanceToNextPage, advanceToNextPage, advanceToNextPageAndGetPositionDistance, firstRow, getRowOffsetMethods inherited from interface io.deephaven.engine.page.Page.WithDefaults
fillChunk, fillChunkAppendMethods inherited from interface io.deephaven.engine.page.PagingChunkSource
maxRowMethods inherited from interface io.deephaven.engine.table.impl.PushdownFilterMatcher
makePushdownFilterContextMethods inherited from interface io.deephaven.engine.table.impl.sources.regioned.RegionedPushdownFilterMatcher
makeActionContext, makeEstimateContext
-
Constructor Details
-
ColumnRegionObjectCodecVariable
public ColumnRegionObjectCodecVariable(@NotNull @NotNull ObjectDecoder<T> decoder, @NotNull @NotNull ColumnRegionLongWithLength<Indices> offsetData, @NotNull @NotNull ColumnRegionByteWithLength<EncodedObjects> binaryData, @NotNull @NotNull ColumnLocation columnLocation)
-
-
Method Details
-
getColumnLocation
- Specified by:
getColumnLocationin interfaceColumnRegion<T>
-
getObject
- Specified by:
getObjectin interfaceColumnRegionObject<T,ATTR extends Values>
-
getObject
- Specified by:
getObjectin interfaceColumnRegionObject<T,ATTR extends Values>
-
fillChunkAppend
public void fillChunkAppend(@NotNull ChunkSource.FillContext fillContext, @NotNull @NotNull WritableChunk<? super ATTR> destination, @NotNull @NotNull RowSequence orderedKeys) - Specified by:
fillChunkAppendin interfacePage.WithDefaults<T>
-
releaseCachedResources
@OverridingMethodsMustInvokeSuper public void releaseCachedResources()- Specified by:
releaseCachedResourcesin interfaceReleasable
-
mask
public long mask()- Specified by:
maskin interfacePagingChunkSource<T>
-
gatherDictionaryValuesRowSet
public boolean gatherDictionaryValuesRowSet(@NotNull RowSet.SearchIterator keysToVisit, @NotNull RowSequence.Iterator knownKeys, @NotNull @NotNull RowSetBuilderSequential sequentialBuilder) - Specified by:
gatherDictionaryValuesRowSetin interfaceColumnRegionObject<T,ATTR extends Values>
-
lengthItems
Description copied from interface:ColumnRegionObjectWithLengthGet the number of objects that can be read from this region, if it is known. Otherwise, return an empty optional.The returned length is safe to use as a read extent: every object it covers is guaranteed to be dereferenceable. Implementations backed by more than one file must not report objects whose bytes are not yet visible, even if some other file claims they exist -- see DH-23322.
- Specified by:
lengthItemsin interfaceColumnRegionObjectWithLength<T,ATTR extends Values>
-
supportedActions
- Specified by:
supportedActionsin interfaceRegionedPushdownFilterMatcher
-
estimatePushdownAction
public long estimatePushdownAction(RegionedPushdownAction action, WhereFilter filter, RowSet selection, boolean usePrev, PushdownFilterContext filterContext, RegionedPushdownAction.EstimateContext estimateContext) - Specified by:
estimatePushdownActionin interfaceRegionedPushdownFilterMatcher
-
performPushdownAction
public PushdownResult performPushdownAction(RegionedPushdownAction action, WhereFilter filter, RowSet selection, PushdownResult input, boolean usePrev, PushdownFilterContext filterContext, RegionedPushdownAction.ActionContext actionContext) - Specified by:
performPushdownActionin interfaceRegionedPushdownFilterMatcher
-