@Override
  public final int read(byte[] buffer, int offset, int length)
      throws IOException {
    return in.read(buffer, offset, length);
  }
Read at most <code>length</code> bytes from this DataInputStream and stores
them in byte array <code>buffer</code> starting at <code>offset</code>.
Answer the number of bytes actually read or -1 if no bytes were read and
end of stream was encountered.

@param buffer
         the byte array in which to store the read bytes.
@param offset
         the offset in <code>buffer</code> to store the read bytes.
@param length
         the maximum number of bytes to store in <code>buffer</code>.
@return the number of bytes actually read or -1 if end of stream.

@throws IOException
          If a problem occurs reading from this DataInputStream.
ql/src/java/org/apache/hadoop/hive/ql/io/NonSyncDataInputBuffer.java