Index: ql/src/java/org/apache/hadoop/hive/ql/Driver.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/Driver.java (revision 1591200) +++ ql/src/java/org/apache/hadoop/hive/ql/Driver.java (working copy) @@ -909,11 +909,15 @@ public CommandProcessorResponse run(String command, boolean alreadyCompiled) throws CommandNeedRetryException { + + SessionState ss = SessionState.get(); + if (ss != null) { + SessionState.get().checkHistory(ss); + } CommandProcessorResponse cpr = runInternal(command, alreadyCompiled); if(cpr.getResponseCode() == 0) { return cpr; } - SessionState ss = SessionState.get(); if(ss == null) { return cpr; } Index: ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java (revision 1591200) +++ ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java (working copy) @@ -1036,6 +1036,19 @@ } + public void checkHistory(SessionState ss) { + if (ss.getConf().getBoolVar(HiveConf.ConfVars.HIVE_SESSION_HISTORY_ENABLED)) { + // Uses a no-op proxy + if (ss.hiveHist.getHistFileName() == null) { + ss.hiveHist = new HiveHistoryImpl(ss); + } + } else { + if (ss.hiveHist.getHistFileName() != null) { + ss.hiveHist = HiveHistoryProxyHandler.getNoOpHiveHistoryProxy(); + } + } + } + public boolean hasAddedResource() { return addedResource; }