@Override public void seek(PositionProvider index) throws IOException { if (vectors != null) return; if (present != null) { if (_isFileCompressed) { index.getNext(); } present.seek(index); } // data stream could be empty stream or already reached end of stream before present stream. // This can happen if all values in stream are nulls or last row group values are all null. skipCompressedIndex(_isFileCompressed, index); if (_dataStream.available() > 0) { stream.seek(index); } }
public UnionStreamReader(final int columnIndex, final SettableUncompressedStream present, final SettableUncompressedStream dataStream, final OrcProto.ColumnEncoding columnEncoding, final boolean isFileCompressed, final TreeReader[] childReaders, TreeReaderFactory.Context context) throws IOException { super(columnIndex, present, context, columnEncoding, childReaders); this._isFileCompressed = isFileCompressed; this._presentStream = present; this._dataStream = dataStream; // Note: other parent readers init everything in ctor, but union does it in startStripe. this.tags = new RunLengthByteReader(dataStream); }
@Override public String toString() { return "Hive " + super.toString(); } }
@Override public void seek(PositionProvider index) throws IOException { if (vectors != null) return; if (present != null) { if (isFileCompressed) { index.getNext(); } present.seek(index); } // data stream could be empty stream or already reached end of stream before present stream. // This can happen if all values in stream are nulls or last row group values are all null. if (_dataStream.available() > 0) { if (isFileCompressed) { index.getNext(); } reader.seek(index); } }
@Override public void seek(PositionProvider index) throws IOException { if (vectors != null) return; if (present != null) { if (_isFileCompressed) { index.getNext(); } present.seek(index); } // data stream could be empty stream or already reached end of stream before present stream. // This can happen if all values in stream are nulls or last row group values are all null. if (_dataStream.available() > 0) { if (_isFileCompressed) { index.getNext(); } reader.seek(index); } }
@Override public void seek(PositionProvider[] index) throws IOException { PositionProvider ownIndex = index[columnId]; if (present != null) { if (_isFileCompressed) { ownIndex.getNext(); } present.seek(ownIndex); } if (fields != null) { for (TreeReader child : fields) { if (child != null) { child.seek(index); } } } }
@Override public void seek(PositionProvider index) throws IOException { if (vectors != null) return; if (present != null) { if (_isFileCompressed) { index.getNext(); } present.seek(index); } // data stream could be empty stream or already reached end of stream before present stream. // This can happen if all values in stream are nulls or last row group values are all null. skipCompressedIndex(_isFileCompressed, index); if (_valueStream.available() > 0) { valueReader.seek(index); } else { skipSeek(index); } }
@Override public void seek(PositionProvider index) throws IOException { if (vectors != null) return; if (present != null) { if (_isFileCompressed) { index.getNext(); } present.seek(index); } // data stream could be empty stream or already reached end of stream before present stream. // This can happen if all values in stream are nulls or last row group values are all null. if (_dataStream.available() > 0) { if (_isFileCompressed) { index.getNext(); } reader.seek(index); } }
/** * If the current batch is empty, get a new one. * @return true if we have rows available. * @throws IOException */ boolean ensureBatch() throws IOException { if (rowInBatch >= batch.size) { baseRow = super.getRowNumber(); rowInBatch = 0; return super.nextBatch(batch); } return true; }
private static void skipSeek(PositionProvider index) { // Must be consistent with uncompressed stream seek in ORC. See call site comments. index.getNext(); }
@Override public void close() throws IOException { super.close(); // free the memory for the column vectors batch.cols = null; }
@Override public ByteBuffer getSerializedFileFooter() { return tail.getSerializedTail(); }
private boolean isNeeded(StreamName name) { return doesSourceHaveIncludes || writerIncludes[name.getColumn()]; }
@Override public void seek(PositionProvider[] index) throws IOException { PositionProvider ownIndex = index[columnId]; if (present != null) { if (_isFileCompressed) { ownIndex.getNext(); } present.seek(ownIndex); } // lengths stream could be empty stream or already reached end of stream before present stream. // This can happen if all values in stream are nulls or last row group values are all null. if (_lengthStream.available() > 0) { if (_isFileCompressed) { ownIndex.getNext(); } lengths.seek(ownIndex); elementReader.seek(index); } }
@Override public void seek(PositionProvider index) throws IOException { if (vectors != null) return; if (present != null) { if (_isFileCompressed) { index.getNext(); } present.seek(index); } // data stream could be empty stream or already reached end of stream before present stream. // This can happen if all values in stream are nulls or last row group values are all null. skipCompressedIndex(_isFileCompressed, index); if (_dataStream.available() > 0) { stream.seek(index); } }
private static void skipCompressedIndex(boolean isCompressed, PositionProvider index) { if (!isCompressed) return; index.getNext(); }
@Override public void seek(PositionProvider index) throws IOException { if (vectors != null) return; if (present != null) { if (isFileCompressed) { index.getNext(); } present.seek(index); } // data stream could be empty stream or already reached end of stream before present stream. // This can happen if all values in stream are nulls or last row group values are all null. if (_dataStream.available() > 0) { if (isFileCompressed) { index.getNext(); } reader.seek(index); } }
@Override public void seek(PositionProvider index) throws IOException { if (vectors != null) return; if (present != null) { if (_isFileCompressed) { index.getNext(); } present.seek(index); } // data stream could be empty stream or already reached end of stream before present stream. // This can happen if all values in stream are nulls or last row group values are all null. if (_dataStream.available() > 0) { if (_isFileCompressed) { index.getNext(); } reader.seek(index); } }
@Override public void seek(PositionProvider index) throws IOException { if (vectors != null) return; if (present != null) { if (_isFileCompressed) { index.getNext(); } present.seek(index); } // data stream could be empty stream or already reached end of stream before present stream. // This can happen if all values in stream are nulls or last row group values are all null. if (_dataStream.available() > 0) { if (_isFileCompressed) { index.getNext(); } reader.seek(index); } }