private void repositionInStreams(TreeReaderFactory.TreeReader[] columnReaders, EncodedColumnBatch<OrcBatchKey> batch, boolean sameStripe, ConsumerStripeMetadata stripeMetadata) throws IOException { PositionProvider[] pps = createPositionProviders( columnReaders, batch.getBatchKey(), stripeMetadata); if (LlapIoImpl.ORC_LOGGER.isTraceEnabled()) { LlapIoImpl.ORC_LOGGER.trace("Created pps {}", Arrays.toString(pps)); } if (pps == null) return; for (int i = 0; i < columnReaders.length; i++) { TreeReader reader = columnReaders[i]; if (reader == null) continue; // Note: we assume this never happens for SerDe reader - the batch would never have vectors. // That is always true now; but it wasn't some day, the below would throw in getColumnData. ((SettableTreeReader) reader).setBuffers(batch, sameStripe); // TODO: When hive moves to java8, make updateTimezone() as default method in // SettableTreeReader so that we can avoid this check. if (reader instanceof EncodedTreeReaderFactory.TimestampStreamReader && !sameStripe) { ((EncodedTreeReaderFactory.TimestampStreamReader) reader) .updateTimezone(stripeMetadata.getWriterTimezone()); } reader.seek(pps); } }
private void repositionInStreams(TreeReaderFactory.TreeReader[] columnReaders, EncodedColumnBatch<OrcBatchKey> batch, boolean sameStripe, ConsumerStripeMetadata stripeMetadata) throws IOException { PositionProvider[] pps = createPositionProviders( columnReaders, batch.getBatchKey(), stripeMetadata); if (LlapIoImpl.ORC_LOGGER.isTraceEnabled()) { LlapIoImpl.ORC_LOGGER.trace("Created pps {}", Arrays.toString(pps)); } if (pps == null) return; for (int i = 0; i < columnReaders.length; i++) { TreeReader reader = columnReaders[i]; if (reader == null) continue; // Note: we assume this never happens for SerDe reader - the batch would never have vectors. // That is always true now; but it wasn't some day, the below would throw in getColumnData. ((SettableTreeReader) reader).setBuffers(batch, sameStripe); // TODO: When hive moves to java8, make updateTimezone() as default method in // SettableTreeReader so that we can avoid this check. if (reader instanceof EncodedTreeReaderFactory.TimestampStreamReader && !sameStripe) { ((EncodedTreeReaderFactory.TimestampStreamReader) reader) .updateTimezone(stripeMetadata.getWriterTimezone()); } reader.seek(pps); } }
@Override public void setBuffers(EncodedColumnBatch<OrcBatchKey> batch, boolean sameStripe) throws IOException { ColumnStreamData[] streamsData = batch.getColumnData(columnId); if (_presentStream != null) { _presentStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.PRESENT_VALUE])); } if (_lengthStream != null) { _lengthStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.LENGTH_VALUE])); } if (keyReader != null) { ((SettableTreeReader) keyReader).setBuffers(batch, sameStripe); } if (valueReader != null) { ((SettableTreeReader) valueReader).setBuffers(batch, sameStripe); } }
@Override public void setBuffers(EncodedColumnBatch<OrcBatchKey> batch, boolean sameStripe) throws IOException { ColumnStreamData[] streamsData = batch.getColumnData(columnId); if (_presentStream != null) { _presentStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.PRESENT_VALUE])); } if (_dataStream != null) { _dataStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.DATA_VALUE])); } if (fields != null) { for (TreeReader child : fields) { ((SettableTreeReader) child).setBuffers(batch, sameStripe); } } }
@Override public void setBuffers(EncodedColumnBatch<OrcBatchKey> batch, boolean sameStripe) throws IOException { ColumnStreamData[] streamsData = batch.getColumnData(columnId); if (_presentStream != null) { _presentStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.PRESENT_VALUE])); } if (_lengthStream != null) { _lengthStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.LENGTH_VALUE])); } if (elementReader != null) { ((SettableTreeReader) elementReader).setBuffers(batch, sameStripe); } }
@Override public void setBuffers(EncodedColumnBatch<OrcBatchKey> batch, boolean sameStripe) throws IOException { ColumnStreamData[] streamsData = batch.getColumnData(columnId); if (_presentStream != null) { _presentStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.PRESENT_VALUE])); } if (_dataStream != null) { _dataStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.DATA_VALUE])); } if (fields != null) { for (TreeReader child : fields) { ((SettableTreeReader) child).setBuffers(batch, sameStripe); } } }
@Override public void setBuffers(EncodedColumnBatch<OrcBatchKey> batch, boolean sameStripe) throws IOException { ColumnStreamData[] streamsData = batch.getColumnData(columnId); if (_presentStream != null) { _presentStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.PRESENT_VALUE])); } if (_lengthStream != null) { _lengthStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.LENGTH_VALUE])); } if (keyReader != null) { ((SettableTreeReader) keyReader).setBuffers(batch, sameStripe); } if (valueReader != null) { ((SettableTreeReader) valueReader).setBuffers(batch, sameStripe); } }
@Override public void setBuffers(EncodedColumnBatch<OrcBatchKey> batch, boolean sameStripe) throws IOException { ColumnStreamData[] streamsData = batch.getColumnData(columnId); if (_presentStream != null) { _presentStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.PRESENT_VALUE])); } if (fields != null) { for (TreeReader child : fields) { ((SettableTreeReader) child).setBuffers(batch, sameStripe); } } }
@Override public void setBuffers(EncodedColumnBatch<OrcBatchKey> batch, boolean sameStripe) throws IOException { ColumnStreamData[] streamsData = batch.getColumnData(columnId); if (_presentStream != null) { _presentStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.PRESENT_VALUE])); } if (_lengthStream != null) { _lengthStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.LENGTH_VALUE])); } if (elementReader != null) { ((SettableTreeReader) elementReader).setBuffers(batch, sameStripe); } }
@Override public void setBuffers(EncodedColumnBatch<OrcBatchKey> batch, boolean sameStripe) throws IOException { ColumnStreamData[] streamsData = batch.getColumnData(columnId); if (_presentStream != null) { _presentStream.setBuffers( StreamUtils.createDiskRangeInfo(streamsData[OrcProto.Stream.Kind.PRESENT_VALUE])); } if (fields != null) { for (TreeReader child : fields) { if (child != null) { ((SettableTreeReader) child).setBuffers(batch, sameStripe); } } } }