Class RegionedColumnSourceBase<DATA_TYPE,ATTR extends Attributes.Values,REGION_TYPE extends ColumnRegion<ATTR>>
java.lang.Object
com.illumon.iris.db.v2.sources.AbstractColumnSource<DATA_TYPE>
com.illumon.iris.db.v2.sources.regioned.RegionedColumnSourceBase<DATA_TYPE,ATTR,REGION_TYPE>
- All Implemented Interfaces:
LongSizedDataStructure
,ChunkSource<Attributes.Values>
,ChunkSource.WithPrev<Attributes.Values>
,DefaultChunkSource<Attributes.Values>
,DefaultChunkSource.SupportsContiguousGet<Attributes.Values>
,DefaultChunkSource.WithPrev<Attributes.Values>
,FillContextMaker
,GetContextMaker
,PageStore<Attributes.Values,
,ATTR, REGION_TYPE> PagingChunkSource<Attributes.Values>
,ColumnSource<DATA_TYPE>
,ElementSource<DATA_TYPE>
,ImmutableColumnSource<DATA_TYPE>
,RegionedColumnSource<DATA_TYPE>
,RegionedPageStore<Attributes.Values,
,ATTR, REGION_TYPE> Releasable
,SizedColumnSource<DATA_TYPE>
,TupleExporter<DATA_TYPE>
,TupleSource<DATA_TYPE>
,Serializable
- Direct Known Subclasses:
RegionedColumnSourceObject
,RegionedColumnSourcePartitioning
public abstract class RegionedColumnSourceBase<DATA_TYPE,ATTR extends Attributes.Values,REGION_TYPE extends ColumnRegion<ATTR>>
extends AbstractColumnSource<DATA_TYPE>
implements RegionedPageStore<Attributes.Values,ATTR,REGION_TYPE>, RegionedColumnSource<DATA_TYPE>
Partial implementation of
RegionedColumnSource
for array-backed and delegating implementations to extend.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.illumon.iris.db.v2.sources.AbstractColumnSource
AbstractColumnSource.DefaultedImmutable<DATA_TYPE>, AbstractColumnSource.DefaultedMutable<DATA_TYPE>, AbstractColumnSource.IsSerializable
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>
Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.sources.regioned.RegionedPageStore
RegionedPageStore.Helper, RegionedPageStore.Static<ATTR extends Attributes.Values,
INNER_ATTR extends ATTR, REGION_TYPE extends ColumnRegion<INNER_ATTR>> -
Field Summary
FieldsFields inherited from class com.illumon.iris.db.v2.sources.AbstractColumnSource
componentType, type
Fields inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource
DEFAULT_FILL_INSTANCE, ZERO_LENGTH_CHUNK_SOURCE_ARRAY
Fields inherited from interface com.illumon.iris.db.v2.sources.chunk.ChunkSource.WithPrev
ZERO_LENGTH_CHUNK_SOURCE_WITH_PREV_ARRAY
Fields inherited from interface com.illumon.iris.db.v2.sources.ColumnSource
ZERO_LENGTH_COLUMN_SOURCE_ARRAY
Fields inherited from interface com.illumon.iris.db.v2.sources.regioned.RegionedColumnSource
ELEMENT_INDEX_TO_SUB_REGION_ELEMENT_INDEX_MASK, MAXIMUM_REGION_COUNT, REGION_CAPACITY_IN_ELEMENTS, REGION_INDEX_ADDRESS_BITS, SUB_REGION_ELEMENT_INDEX_ADDRESS_BITS
Fields inherited from interface com.illumon.iris.db.v2.sources.regioned.RegionedPageStore
REGION_MASK, REGION_MASK_NUM_BITS
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Disable the use of grouping for any operation of this source.protected Index
doMatchWithGrouping
(long regionFirstKey, boolean caseInsensitive, boolean invertMatch, Object[] keys, ColumnLocation location, Table dataIndex) void
fillChunk
(ChunkSource.FillContext context, WritableChunk<? super Attributes.Values> destination, OrderedKeys orderedKeys) Use the more efficient fill chunk implementation, rather than the default which uses get().void
fillPrevChunk
(ChunkSource.FillContext context, WritableChunk<? super Attributes.Values> destination, OrderedKeys orderedKeys) We are immutable, so stick with the efficient fill chunk even when getting prev.match
(boolean invertMatch, boolean usePrev, boolean caseInsensitive, ReadOnlyIndex startingIndex, Object... keys) Produce an index of rows derived from the 'startingIndex' index that match the input set of keys (taking into account invert, and case sensitivity).Methods inherited from class com.illumon.iris.db.v2.sources.AbstractColumnSource
allowsReinterpret, canUseGrouping, defaultFillChunk, doReinterpret, getComponentType, getGroupingBuilder, getGroupingProvider, getNativeType, getType, hasGrouping, hasGrouping, isSerializable, matchWithGrouping, reinterpret, setGroupingProvider
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.ChunkSource
getChunkType
Methods inherited from interface com.illumon.iris.db.v2.sources.ColumnSource
allowsReinterpret, cast, createPreviousTuple, createTuple, createTupleFromValues, exportElement, exportElement, exportToExternalKey, getColumnSources, getComponentType, getGroupingBuilder, getGroupingProvider, getNativeType, getPrevSource, getType, hasGrouping, hasGrouping, reinterpret, releaseCachedResources, setGroupingProvider, startTrackingPrevValues
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.DefaultChunkSource
getChunkByFilling, makeGetContext
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.DefaultChunkSource.WithPrev
getPrevChunk, getPrevChunk, getPrevChunkByFilling
Methods inherited from interface com.illumon.iris.db.v2.sources.ElementSource
get, getBoolean, getByte, getChar, getDouble, getFloat, getInt, getLong, getShort
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.ImmutableColumnSource
getPrev, getPrevBoolean, getPrevByte, getPrevChar, getPrevDouble, getPrevFloat, getPrevInt, getPrevLong, getPrevShort, isImmutable
Methods inherited from interface com.illumon.iris.db.util.LongSizedDataStructure
intSize, intSize
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.page.PageStore
doFillChunkAppend, fillChunkAppend, getChunk, getChunk
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.page.PagingChunkSource
maxRow
Methods inherited from interface com.illumon.iris.db.v2.sources.regioned.RegionedColumnSource
addRegion
Methods inherited from interface com.illumon.iris.db.v2.sources.regioned.RegionedPageStore
getPageContaining, getRegion, getRegionCount, lookupRegion, makeFillContext, mask, size
Methods inherited from interface com.illumon.iris.db.v2.tuples.TupleExporter
exportElementReinterpreted
Methods inherited from interface com.illumon.iris.db.v2.tuples.TupleSource
createTupleFromReinterpretedValues
-
Field Details
-
USE_PARALLEL
public static boolean USE_PARALLEL -
USE_PUSHDOWN
public static boolean USE_PUSHDOWN
-
-
Method Details
-
disableGrouping
public void disableGrouping()Description copied from interface:RegionedColumnSource
Disable the use of grouping for any operation of this source.- Specified by:
disableGrouping
in interfaceRegionedColumnSource<DATA_TYPE>
-
fillChunk
public void fillChunk(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super Attributes.Values> destination, @NotNull OrderedKeys orderedKeys) Use the more efficient fill chunk implementation, rather than the default which uses get().- Specified by:
fillChunk
in interfaceChunkSource<DATA_TYPE>
- Specified by:
fillChunk
in interfacePageStore<DATA_TYPE,
ATTR extends Attributes.Values, REGION_TYPE extends ColumnRegion<ATTR>> - Overrides:
fillChunk
in classAbstractColumnSource<DATA_TYPE>
- 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
-
fillPrevChunk
public void fillPrevChunk(@NotNull ChunkSource.FillContext context, @NotNull WritableChunk<? super Attributes.Values> destination, @NotNull OrderedKeys orderedKeys) We are immutable, so stick with the efficient fill chunk even when getting prev.- Specified by:
fillPrevChunk
in interfaceChunkSource.WithPrev<DATA_TYPE>
- Overrides:
fillPrevChunk
in classAbstractColumnSource<DATA_TYPE>
- 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
-
match
@NotNull public Index match(boolean invertMatch, boolean usePrev, boolean caseInsensitive, @NotNull ReadOnlyIndex startingIndex, Object... keys) Description copied from interface:ColumnSource
Produce an index of rows derived from the 'startingIndex' index that match the input set of keys (taking into account invert, and case sensitivity).- Specified by:
match
in interfaceColumnSource<DATA_TYPE>
- Overrides:
match
in classAbstractColumnSource<DATA_TYPE>
- Parameters:
invertMatch
- If the match should be invertedusePrev
- if previous values should be usedcaseInsensitive
- if the match should be case insensitivestartingIndex
- the index of rows to matchkeys
- the keys to match- Returns:
- an index which is the subset of rows from 'startingIndex' that match the input set of keys
-
doMatchWithGrouping
protected Index doMatchWithGrouping(long regionFirstKey, boolean caseInsensitive, boolean invertMatch, @NotNull Object[] keys, @NotNull ColumnLocation location, @NotNull Table dataIndex)
-