You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by th...@apache.org on 2013/11/01 21:30:29 UTC

svn commit: r1538052 - in /hive/trunk: ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java

Author: thejas
Date: Fri Nov  1 20:30:29 2013
New Revision: 1538052

URL: http://svn.apache.org/r1538052
Log:
HIVE-5715 : HS2 should not "start" a session for every command (Gunther Hagleitner via Thejas Nair)

Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
    hive/trunk/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
    hive/trunk/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java?rev=1538052&r1=1538051&r2=1538052&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java Fri Nov  1 20:30:29 2013
@@ -249,6 +249,13 @@ public class SessionState {
   }
 
   /**
+   * Sets the given session state in the thread local var for sessions.
+   */
+  public static void setCurrentSessionState(SessionState session) {
+    tss.set(session);
+  }
+
+  /**
    * set current session to existing session object if a thread is running
    * multiple sessions - it must call this method with the new session object
    * when switching from one session to another.
@@ -256,7 +263,7 @@ public class SessionState {
    */
   public static SessionState start(SessionState startSs) {
 
-    tss.set(startSs);
+    setCurrentSessionState(startSs);
 
     if(startSs.hiveHist == null){
       if (startSs.getConf().getBoolVar(HiveConf.ConfVars.HIVE_SESSION_HISTORY_ENABLED)) {

Modified: hive/trunk/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
URL: http://svn.apache.org/viewvc/hive/trunk/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java?rev=1538052&r1=1538051&r2=1538052&view=diff
==============================================================================
--- hive/trunk/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java (original)
+++ hive/trunk/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java Fri Nov  1 20:30:29 2013
@@ -149,7 +149,7 @@ public class SQLOperation extends Execut
         SessionState ss = SessionState.get();
         @Override
         public void run() {
-          SessionState.start(ss);
+          SessionState.setCurrentSessionState(ss);
           try {
             runInternal(getConfigForOperation());
           } catch (HiveSQLException e) {

Modified: hive/trunk/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
URL: http://svn.apache.org/viewvc/hive/trunk/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java?rev=1538052&r1=1538051&r2=1538052&view=diff
==============================================================================
--- hive/trunk/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java (original)
+++ hive/trunk/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java Fri Nov  1 20:30:29 2013
@@ -89,6 +89,7 @@ public class HiveSessionImpl implements 
     hiveConf.set(ConfVars.HIVESESSIONID.varname,
         sessionHandle.getHandleIdentifier().toString());
     sessionState = new SessionState(hiveConf);
+    SessionState.start(sessionState);
   }
 
   public SessionManager getSessionManager() {
@@ -108,7 +109,9 @@ public class HiveSessionImpl implements 
   }
 
   protected synchronized void acquire() throws HiveSQLException {
-    SessionState.start(sessionState);
+    // need to make sure that the this connections session state is
+    // stored in the thread local for sessions.
+    SessionState.setCurrentSessionState(sessionState);
   }
 
   protected synchronized void release() {
@@ -312,7 +315,7 @@ public class HiveSessionImpl implements 
     opHandleSet.add(opHandle);
     return opHandle;
     } catch (HiveSQLException e) {
-      operationManager.closeOperation(opHandle); 
+      operationManager.closeOperation(opHandle);
       throw e;
     } finally {
       release();