Example #1
0
    MetaInfoObjExtractor(String codecStr, int bufferSize, int metadataSize, ByteBuffer footerBuffer)
        throws IOException {

      this.compressionKind = CompressionKind.valueOf(codecStr);
      this.bufferSize = bufferSize;
      this.codec = WriterImpl.createCodec(compressionKind);
      this.metadataSize = metadataSize;

      int position = footerBuffer.position();
      int footerBufferSize = footerBuffer.limit() - footerBuffer.position() - metadataSize;
      footerBuffer.limit(position + metadataSize);

      InputStream instream =
          InStream.create(
              "metadata",
              Lists.<DiskRange>newArrayList(new BufferChunk(footerBuffer, 0)),
              metadataSize,
              codec,
              bufferSize);
      this.metadata = OrcProto.Metadata.parseFrom(instream);

      footerBuffer.position(position + metadataSize);
      footerBuffer.limit(position + metadataSize + footerBufferSize);
      instream =
          InStream.create(
              "footer",
              Lists.<DiskRange>newArrayList(new BufferChunk(footerBuffer, 0)),
              footerBufferSize,
              codec,
              bufferSize);
      this.footer = OrcProto.Footer.parseFrom(instream);

      footerBuffer.position(position);
      this.inspector = OrcStruct.createObjectInspector(0, footer.getTypesList());
    }
Example #2
0
 List<OrcProto.StripeStatistics> getOrcProtoStripeStatistics() {
   return metadata.getStripeStatsList();
 }