public void readFields(DataInput @in) { //deserialize path, offset, length using FileSplit base.readFields(@in); byte flags = @in.readByte(); hasFooter = (FOOTER_FLAG & flags) != 0; isOriginal = (ORIGINAL_FLAG & flags) != 0; hasBase = (BASE_FLAG & flags) != 0; bool hasFileId = (HAS_FILEID_FLAG & flags) != 0; deltas.Clear(); int numDeltas = @in.readInt(); for (int i = 0; i < numDeltas; i++) { AcidInputFormat.DeltaMetaData dmd = new AcidInputFormat.DeltaMetaData(); dmd.readFields(@in); deltas.Add(dmd); } if (hasFooter) { // deserialize FileMetaInfo fields string compressionType = Text.readString(@in); int bufferSize = WritableUtils.readVInt(@in); int metadataSize = WritableUtils.readVInt(@in); // deserialize FileMetaInfo field footer int footerBuffSize = WritableUtils.readVInt(@in); ByteBuffer footerBuff = ByteBuffer.allocate(footerBuffSize); @in.readFully(footerBuff.array(), 0, footerBuffSize); OrcFile.WriterVersion writerVersion = ReaderImpl.getWriterVersion(WritableUtils.readVInt(@in)); fileMetaInfo = new FileMetaInfo(compressionType, bufferSize, metadataSize, footerBuff, writerVersion); } if (hasFileId) { fileId = @in.readLong(); } }
public void readFields(DataInput @in) { //deserialize path, offset, length using FileSplit base.readFields(@in); byte flags = @in.readByte(); _hasFooter = (OrcSplit.FOOTER_FLAG & flags) != 0; _isOriginal = (OrcSplit.ORIGINAL_FLAG & flags) != 0; _hasBase = (OrcSplit.BASE_FLAG & flags) != 0; deltas.Clear(); int numDeltas = @in.readInt(); for (int i = 0; i < numDeltas; i++) { AcidInputFormat.DeltaMetaData dmd = new AcidInputFormat.DeltaMetaData(); dmd.readFields(@in); deltas.Add(dmd); } if (_hasFooter) { // deserialize FileMetaInfo fields string compressionType = Text.readString(@in); int bufferSize = WritableUtils.readVInt(@in); int metadataSize = WritableUtils.readVInt(@in); // deserialize FileMetaInfo field footer int footerBuffSize = WritableUtils.readVInt(@in); ByteBuffer footerBuff = ByteBuffer.allocate(footerBuffSize); @in.readFully(footerBuff.array(), 0, footerBuffSize); OrcFile.WriterVersion writerVersion = ReaderImpl.getWriterVersion(WritableUtils.readVInt(@in)); fileMetaInfo = new FileMetaInfo(compressionType, bufferSize, metadataSize, footerBuff, writerVersion); } }