Repository: hive Updated Branches: refs/heads/master bb157fb87 -> 34e050b53
HIVE-6991 History not able to disable/enable after session started (Chinna via Jimmy) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/d4e34e81 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/d4e34e81 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/d4e34e81 Branch: refs/heads/master Commit: d4e34e812745b71e7379623d54c00a0216b767da Parents: bb157fb Author: Jimmy Xiang <jxi...@cloudera.com> Authored: Tue Jun 9 12:52:37 2015 -0700 Committer: Jimmy Xiang <jxi...@cloudera.com> Committed: Tue Jun 9 12:54:58 2015 -0700 ---------------------------------------------------------------------- .../hadoop/hive/ql/processors/SetProcessor.java | 3 +++ .../hadoop/hive/ql/session/SessionState.java | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/d4e34e81/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java index bc9254c..d271d6d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java @@ -134,6 +134,9 @@ public class SetProcessor implements CommandProcessor { hive.setMetaConf(propName, new VariableSubstitution().substitute(ss.getConf(), varvalue)); } else { setConf(varname, varname, varvalue, true); + if (varname.equals(HiveConf.ConfVars.HIVE_SESSION_HISTORY_ENABLED.toString())) { + SessionState.get().updateHistory(Boolean.parseBoolean(varvalue), ss); + } } return 0; } http://git-wip-us.apache.org/repos/asf/hive/blob/d4e34e81/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java index 7930298..5067f06 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java @@ -855,6 +855,25 @@ public class SessionState { } /** + * Update the history if set hive.session.history.enabled + * + * @param historyEnabled + * @param ss + */ + public void updateHistory(boolean historyEnabled, SessionState ss) { + if (historyEnabled) { + // 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(); + } + } + } + + /** * Create a session ID. Looks like: * $user_$pid@$host_$date * @return the unique string