Index: ql/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java (revision 1173881) +++ ql/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java (working copy) @@ -25,6 +25,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.conf.HiveConf.ConfVars; +import org.apache.hadoop.hive.ql.QueryPlan; import org.apache.hadoop.hive.ql.session.SessionState; import org.apache.hadoop.util.ReflectionUtils; @@ -121,4 +122,13 @@ return duration; } + + /** + * Call this function at the end of processing a query (any time after the last call to PerfLogEnd + * for a given query) to run any cleanup/final steps that need to be run + * @param _log + */ + public void close(Log _log, QueryPlan queryPlan) { + + } } Index: ql/src/java/org/apache/hadoop/hive/ql/Driver.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/Driver.java (revision 1173881) +++ ql/src/java/org/apache/hadoop/hive/ql/Driver.java (working copy) @@ -952,6 +952,7 @@ //if needRequireLock is false, the release here will do nothing because there is no lock releaseLocks(ctx.getHiveLocks()); + PerfLogger.getPerfLogger().close(LOG, plan); return new CommandProcessorResponse(ret); }