diff --git ql/src/java/org/apache/hadoop/hive/ql/Driver.java ql/src/java/org/apache/hadoop/hive/ql/Driver.java index 5308e2c..55c76d4 100644 --- ql/src/java/org/apache/hadoop/hive/ql/Driver.java +++ ql/src/java/org/apache/hadoop/hive/ql/Driver.java @@ -1,3 +1,4 @@ + /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -137,6 +138,8 @@ private static final int SLEEP_TIME = 2000; protected int tryCount = Integer.MAX_VALUE; + private String userName; + private boolean checkLockManager() { boolean supportConcurrency = conf.getBoolVar(HiveConf.ConfVars.HIVE_SUPPORT_CONCURRENCY); if (!supportConcurrency) { @@ -326,6 +329,11 @@ public boolean hasReduceTasks(List> tasks) { public Driver(HiveConf conf) { this.conf = conf; } + + public Driver(HiveConf conf, String userName) { + this(conf); + this.userName = userName; + } public Driver() { if (SessionState.get() != null) { @@ -436,6 +444,7 @@ public int compile(String command, boolean resetTaskIds) { if (saHooks != null) { HiveSemanticAnalyzerHookContext hookCtx = new HiveSemanticAnalyzerHookContextImpl(); hookCtx.setConf(conf); + hookCtx.setUserName(userName); for (HiveSemanticAnalyzerHook hook : saHooks) { tree = hook.preAnalyze(hookCtx, tree); } diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContext.java ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContext.java index ae371f3..8694d07 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContext.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContext.java @@ -53,4 +53,8 @@ public Set getInputs(); public Set getOutputs(); + + public String getUserName(); + + public void setUserName(String userName); } diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContextImpl.java ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContextImpl.java index 9c3377e..4f6dad4 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContextImpl.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContextImpl.java @@ -32,6 +32,7 @@ Configuration conf; Set inputs = null; Set outputs = null; + private String userName; @Override public Hive getHive() throws HiveException { @@ -64,4 +65,12 @@ public void update(BaseSemanticAnalyzer sem) { public Set getOutputs() { return outputs; } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } } diff --git service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java index bb0f711..fc66ca7 100644 --- service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java +++ service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java @@ -91,7 +91,7 @@ private void runInternal() throws HiveSQLException { String SQLState = null; try { - driver = new Driver(getParentSession().getHiveConf()); + driver = new Driver(getParentSession().getHiveConf(), getParentSession().getUserName()); // In Hive server mode, we are not able to retry in the FetchTask // case, when calling fetch queries since execute() has returned. // For now, we disable the test attempts.