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 408c92e..f9086a2 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 @@ -139,6 +139,10 @@ */ private boolean isHiveServerQuery = false; + /** + * The flag to indicate if the session already started so we can skip the init + */ + private boolean isStarted = false; /* * HiveHistory Object */ @@ -537,6 +541,11 @@ public static void endStart(SessionState startSs) private static void start(SessionState startSs, boolean isAsync, LogHelper console) { setCurrentSessionState(startSs); + if (startSs.isStarted) { + return; + } + startSs.isStarted = true; + if (startSs.hiveHist == null){ if (startSs.getConf().getBoolVar(HiveConf.ConfVars.HIVE_SESSION_HISTORY_ENABLED)) { startSs.hiveHist = new HiveHistoryImpl(startSs);