diff --git itests/hive-unit/src/test/java/org/apache/hive/service/cli/session/TestHiveSessionImpl.java itests/hive-unit/src/test/java/org/apache/hive/service/cli/session/TestHiveSessionImpl.java index 4b23385..4d763d2 100644 --- itests/hive-unit/src/test/java/org/apache/hive/service/cli/session/TestHiveSessionImpl.java +++ itests/hive-unit/src/test/java/org/apache/hive/service/cli/session/TestHiveSessionImpl.java @@ -27,6 +27,7 @@ import org.junit.Assert; import org.junit.Test; import org.mockito.Mockito; +import static org.mockito.Matchers.*; import java.util.HashMap; import java.util.Map; @@ -68,8 +69,8 @@ protected synchronized void release(boolean userAccess) { Mockito.when(operation.getHandle()).thenReturn(opHandle); Map confOverlay = new HashMap(); String hql = "drop table if exists table_not_exists"; - Mockito.when(operationManager.newExecuteStatementOperation(session, hql, confOverlay, - true)).thenReturn(operation); + Mockito.when(operationManager.newExecuteStatementOperation(same(session), eq(hql), + (Map)Mockito.any(), eq(true))).thenReturn(operation); try { diff --git ql/src/java/org/apache/hadoop/hive/ql/Driver.java ql/src/java/org/apache/hadoop/hive/ql/Driver.java index 7327a42..fc10242 100644 --- ql/src/java/org/apache/hadoop/hive/ql/Driver.java +++ ql/src/java/org/apache/hadoop/hive/ql/Driver.java @@ -402,14 +402,9 @@ public int compile(String command, boolean resetTaskIds) { TaskFactory.resetId(); } saveSession(queryState); + String queryId = QueryPlan.makeQueryId(); - // Generate new query id if it's not set for CLI case. If it's session based, - // query id is passed in from the client or initialized when the session starts. - String queryId = conf.getVar(HiveConf.ConfVars.HIVEQUERYID); - if (queryId == null || queryId.isEmpty()) { - queryId = QueryPlan.makeQueryId(); - conf.setVar(HiveConf.ConfVars.HIVEQUERYID, queryId); - } + conf.setVar(HiveConf.ConfVars.HIVEQUERYID, queryId); //save some info for webUI for use after plan is freed this.queryDisplay.setQueryStr(queryStr); diff --git service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java index 8baecdf..80a1844 100644 --- service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java +++ service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java @@ -438,16 +438,15 @@ private OperationHandle executeStatementInternal(String statement, Map(); + } else { + Map conf = new HashMap(); + conf.putAll(confOverlay); + confOverlay = conf; } - String queryId = confOverlay.get(HiveConf.ConfVars.HIVEQUERYID.varname); - if (queryId == null || queryId.isEmpty()) { - queryId = QueryPlan.makeQueryId(); - confOverlay.put(HiveConf.ConfVars.HIVEQUERYID.varname, queryId); - } + confOverlay.put(HiveConf.ConfVars.HIVEQUERYID.varname, QueryPlan.makeQueryId()); OperationManager operationManager = getOperationManager(); ExecuteStatementOperation operation = operationManager