@Override
  public void readFields(DataInput hin) throws IOException {
    byte[] bytes = readArray(hin);
    DataInputStream in = new DataInputStream(new GZIPInputStream(new ByteArrayInputStream(bytes)));
    super.readFields(in);
    this.end = in.readLong();
    if (in.readBoolean()) {
      this.rowGroupOffsets = new long[in.readInt()];
      for (int i = 0; i < rowGroupOffsets.length; i++) {
        rowGroupOffsets[i] = in.readLong();
      }
    }
    in.close();
  }
@Override
  public void readFields(DataInput hin) throws IOException {
    byte[] bytes = readArray(hin);
    DataInputStream in = new DataInputStream(new GZIPInputStream(new ByteArrayInputStream(bytes)));
    super.readFields(in);
    this.end = in.readLong();
    if (in.readBoolean()) {
      this.rowGroupOffsets = new long[in.readInt()];
      for (int i = 0; i < rowGroupOffsets.length; i++) {
        rowGroupOffsets[i] = in.readLong();
      }
    }
    in.close();
  }
@ Override public void readFields ( DataInput hin ) throws IOException { byte [ ] bytes = readArray ( hin ) ; DataInputStream in = new DataInputStream ( new GZIPInputStream ( new ByteArrayInputStream ( bytes ) ) ) ; super . readFields ( in ) ; this . end = in . readLong ( ) ; if ( in . readBoolean ( ) ) { this . rowGroupOffsets = new long [ in . readInt ( ) ] ; for ( int i = 0 ; i < rowGroupOffsets . length ; i ++ ) { rowGroupOffsets [ i ] = in . readLong ( ) ; } } in . close ( ) ; }
{@inheritDoc}
{