Class DictionaryChunkReader
java.lang.Object
io.deephaven.extensions.barrage.chunk.BaseChunkReader<WritableChunk<Values>>
io.deephaven.extensions.barrage.chunk.DictionaryChunkReader
- All Implemented Interfaces:
ChunkReader<WritableChunk<Values>>
Reads an Arrow Dictionary-Encoded column from the wire into a flat Deephaven chunk.
The RecordBatch column contains an integer-index array (Int16/Int32/Int64) mapping each row to a position in the
dictionary. The dictionary values were received in earlier DictionaryBatch messages
and are tracked in the DictionaryReaderRegistry.
This reader consumes one ChunkWriter.FieldNodeInfo (the index column's node) and the corresponding buffers
(validity + index values), then expands the indices to the logical value type using the registry.
-
Nested Class Summary
Nested classes/interfaces inherited from class io.deephaven.extensions.barrage.chunk.BaseChunkReader
BaseChunkReader.ChunkTransformer<READ_CHUNK_TYPE extends Chunk<Values>,DEST_CHUNK_TYPE extends WritableChunk<Values>> Nested classes/interfaces inherited from interface io.deephaven.extensions.barrage.chunk.ChunkReader
ChunkReader.Factory -
Field Summary
Fields inherited from class io.deephaven.extensions.barrage.chunk.BaseChunkReader
BULK_READ_BUFFER_BYTES -
Constructor Summary
ConstructorsConstructorDescriptionDictionaryChunkReader(long dictId, @NotNull ChunkReader<? extends WritableChunk<Values>> indexReader, @NotNull ChunkType valuesChunkType, @NotNull DictionaryReaderRegistry registry) -
Method Summary
Modifier and TypeMethodDescriptionreadChunk(@NotNull Iterator<ChunkWriter.FieldNodeInfo> fieldNodeIter, PrimitiveIterator.OfLong bufferInfoIter, @NotNull DataInput is, @Nullable WritableChunk<Values> outChunk, int outOffset, int totalRows) Reads the given DataInput to extract the next Arrow buffer as a Deephaven Chunk.Methods inherited from class io.deephaven.extensions.barrage.chunk.BaseChunkReader
castOrCreateChunk, getChunkTypeFor, readIntBuffer, readValidityBufferMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.deephaven.extensions.barrage.chunk.ChunkReader
readChunk
-
Constructor Details
-
DictionaryChunkReader
public DictionaryChunkReader(long dictId, @NotNull @NotNull ChunkReader<? extends WritableChunk<Values>> indexReader, @NotNull @NotNull ChunkType valuesChunkType, @NotNull @NotNull DictionaryReaderRegistry registry)
-
-
Method Details
-
readChunk
public WritableChunk<Values> readChunk(@NotNull @NotNull Iterator<ChunkWriter.FieldNodeInfo> fieldNodeIter, @NotNull PrimitiveIterator.OfLong bufferInfoIter, @NotNull @NotNull DataInput is, @Nullable @Nullable WritableChunk<Values> outChunk, int outOffset, int totalRows) throws IOException Description copied from interface:ChunkReaderReads the given DataInput to extract the next Arrow buffer as a Deephaven Chunk.- Parameters:
fieldNodeIter- iterator to read fields from the streambufferInfoIter- iterator to read buffers from the streamis- input stream containing buffers to be readoutChunk- chunk to write tooutOffset- offset within the outChunk to begin writingtotalRows- total rows to write to the outChunk- Returns:
- a Chunk containing the data from the stream
- Throws:
IOException- if an error occurred while reading the stream
-