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())); }