@Override
  public void write(DataOutput out) throws IOException {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    DataOutputStream dos = new DataOutputStream(bos);
    // serialize path, offset, length using FileSplit
    super.write(dos);
    int required = bos.size();

    // write addition payload required for orc
    writeAdditionalPayload(dos);
    int additional = bos.size() - required;

    out.write(bos.toByteArray());
    if (LOG.isTraceEnabled()) {
      LOG.trace("Writing additional {} bytes to OrcSplit as payload. Required {} bytes.",
          additional, required);
    }
  }
For every split we only want to keep the delete deltas, that contains files for that bucket.
If we filter out files, we might need to filter out statementIds from multistatement transactions.
@param dmd
@param bucketId
@return
ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSplit.java