void addKey(int op, long transaction, int bucket, long rowId) {
   switch (op) {
     case INSERT_OPERATION:
       acidStats.inserts += 1;
       break;
     case UPDATE_OPERATION:
       acidStats.updates += 1;
       break;
     case DELETE_OPERATION:
       acidStats.deletes += 1;
       break;
     default:
       throw new IllegalArgumentException("Unknown operation " + op);
   }
   lastTransaction = transaction;
   lastBucket = bucket;
   lastRowId = rowId;
 }
 @Override
 public void preFooterWrite(OrcFile.WriterContext context) throws IOException {
   context.getWriter().addUserMetadata(ACID_KEY_INDEX_NAME, UTF8.encode(lastKey.toString()));
   context.getWriter().addUserMetadata(ACID_STATS, UTF8.encode(acidStats.serialize()));
 }