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:
  • 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 interface RegionedColumnSource<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 interface ChunkSource<DATA_TYPE>
      Specified by:
      fillChunk in interface PageStore<DATA_TYPE,ATTR extends Attributes.Values,REGION_TYPE extends ColumnRegion<ATTR>>
      Overrides:
      fillChunk in class AbstractColumnSource<DATA_TYPE>
      Parameters:
      context - A context containing all mutable/state related data used in retrieving the Chunk.
      destination - The chunk to be populated according to orderedKeys. 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 - An OrderedKeys 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 interface ChunkSource.WithPrev<DATA_TYPE>
      Overrides:
      fillPrevChunk in class AbstractColumnSource<DATA_TYPE>
      Parameters:
      context - A context containing all mutable/state related data used in retrieving the Chunk.
      destination - The chunk to be populated according to orderedKeys. 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 - An OrderedKeys 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 interface ColumnSource<DATA_TYPE>
      Overrides:
      match in class AbstractColumnSource<DATA_TYPE>
      Parameters:
      invertMatch - If the match should be inverted
      usePrev - if previous values should be used
      caseInsensitive - if the match should be case insensitive
      startingIndex - the index of rows to match
      keys - 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)