You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jx...@apache.org on 2015/11/06 18:33:35 UTC
[53/55] [abbrv] hive git commit: HIVE-12346:Internally used variables
in HiveConf should not be settable via command (Chaoyu Tang,
reviewed by Xuefu Zhang)
HIVE-12346:Internally used variables in HiveConf should not be settable via command (Chaoyu Tang, reviewed by Xuefu Zhang)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/eef89a21
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/eef89a21
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/eef89a21
Branch: refs/heads/master-fixed
Commit: eef89a2105a6ec401d18f9f1de2912a89c8eb4ac
Parents: 3bf280f
Author: ctang <ct...@gmail.com>
Authored: Fri Nov 6 08:51:41 2015 -0500
Committer: ctang <ct...@gmail.com>
Committed: Fri Nov 6 08:51:53 2015 -0500
----------------------------------------------------------------------
.../java/org/apache/hadoop/hive/conf/HiveConf.java | 15 ++++++++++++++-
.../clientnegative/set_hiveconf_internal_variable0.q | 4 ++++
.../clientnegative/set_hiveconf_internal_variable1.q | 4 ++++
.../set_hiveconf_internal_variable0.q.out | 11 +++++++++++
.../set_hiveconf_internal_variable1.q.out | 11 +++++++++++
5 files changed, 44 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/eef89a21/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 98f9206..12276bf 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -2104,6 +2104,10 @@ public class HiveConf extends Configuration {
METASTOREPWD.varname + "," + HIVE_SERVER2_SSL_KEYSTORE_PASSWORD.varname,
"Comma separated list of configuration options which should not be read by normal user like passwords"),
+ HIVE_CONF_INTERNAL_VARIABLE_LIST("hive.conf.internal.variable.list",
+ "hive.added.files.path,hive.added.jars.path,hive.added.archives.path",
+ "Comma separated list of variables which are used internally and should not be configurable."),
+
// If this is set all move tasks at the end of a multi-insert query will only begin once all
// outputs are ready
HIVE_MULTI_INSERT_MOVE_TASKS_SHARE_DEPENDENCIES(
@@ -2634,7 +2638,7 @@ public class HiveConf extends Configuration {
}
if (restrictList.contains(name)) {
throw new IllegalArgumentException("Cannot modify " + name + " at runtime. It is in the list"
- + "of parameters that can't be modified at runtime");
+ + " of parameters that can't be modified at runtime");
}
String oldValue = name != null ? get(name) : null;
if (name == null || value == null || !value.equals(oldValue)) {
@@ -3329,9 +3333,18 @@ public class HiveConf extends Configuration {
restrictList.add(entry.trim());
}
}
+
+ String internalVariableListStr = this.getVar(ConfVars.HIVE_CONF_INTERNAL_VARIABLE_LIST);
+ if (internalVariableListStr != null) {
+ for (String entry : internalVariableListStr.split(",")) {
+ restrictList.add(entry.trim());
+ }
+ }
+
restrictList.add(ConfVars.HIVE_IN_TEST.varname);
restrictList.add(ConfVars.HIVE_CONF_RESTRICTED_LIST.varname);
restrictList.add(ConfVars.HIVE_CONF_HIDDEN_LIST.varname);
+ restrictList.add(ConfVars.HIVE_CONF_INTERNAL_VARIABLE_LIST.varname);
}
private void setupHiddenSet() {
http://git-wip-us.apache.org/repos/asf/hive/blob/eef89a21/ql/src/test/queries/clientnegative/set_hiveconf_internal_variable0.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/set_hiveconf_internal_variable0.q b/ql/src/test/queries/clientnegative/set_hiveconf_internal_variable0.q
new file mode 100644
index 0000000..b6393e4
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/set_hiveconf_internal_variable0.q
@@ -0,0 +1,4 @@
+-- should fail: for some internal variables which should not be settable via set command
+desc src;
+
+set hive.added.jars.path=file://rootdir/test/added/a.jar;
http://git-wip-us.apache.org/repos/asf/hive/blob/eef89a21/ql/src/test/queries/clientnegative/set_hiveconf_internal_variable1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/set_hiveconf_internal_variable1.q b/ql/src/test/queries/clientnegative/set_hiveconf_internal_variable1.q
new file mode 100644
index 0000000..0038f36
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/set_hiveconf_internal_variable1.q
@@ -0,0 +1,4 @@
+-- should fail: hive.conf.internal.variable.list is in restricted list
+desc src;
+
+set hive.conf.internal.variable.list=;
http://git-wip-us.apache.org/repos/asf/hive/blob/eef89a21/ql/src/test/results/clientnegative/set_hiveconf_internal_variable0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/set_hiveconf_internal_variable0.q.out b/ql/src/test/results/clientnegative/set_hiveconf_internal_variable0.q.out
new file mode 100644
index 0000000..61dafb4
--- /dev/null
+++ b/ql/src/test/results/clientnegative/set_hiveconf_internal_variable0.q.out
@@ -0,0 +1,11 @@
+PREHOOK: query: -- should fail: for some internal variables which should not be settable via set command
+desc src
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@src
+POSTHOOK: query: -- should fail: for some internal variables which should not be settable via set command
+desc src
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@src
+key string default
+value string default
+Query returned non-zero code: 1, cause: Cannot modify hive.added.jars.path at runtime. It is in the list of parameters that can't be modified at runtime
http://git-wip-us.apache.org/repos/asf/hive/blob/eef89a21/ql/src/test/results/clientnegative/set_hiveconf_internal_variable1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/set_hiveconf_internal_variable1.q.out b/ql/src/test/results/clientnegative/set_hiveconf_internal_variable1.q.out
new file mode 100644
index 0000000..ae2dafb
--- /dev/null
+++ b/ql/src/test/results/clientnegative/set_hiveconf_internal_variable1.q.out
@@ -0,0 +1,11 @@
+PREHOOK: query: -- should fail: hive.conf.internal.variable.list is in restricted list
+desc src
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@src
+POSTHOOK: query: -- should fail: hive.conf.internal.variable.list is in restricted list
+desc src
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@src
+key string default
+value string default
+Query returned non-zero code: 1, cause: Cannot modify hive.conf.internal.variable.list at runtime. It is in the list of parameters that can't be modified at runtime