You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by st...@apache.org on 2017/12/07 06:45:43 UTC

hive git commit: HIVE-18166: Result of hive.query.string is encoded. (Janaki Lahorani, reviewed by Sahil Takiar)

Repository: hive
Updated Branches:
  refs/heads/master b23c3299f -> 7ddd915bf


HIVE-18166: Result of hive.query.string is encoded. (Janaki Lahorani, reviewed by Sahil Takiar)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/7ddd915b
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/7ddd915b
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/7ddd915b

Branch: refs/heads/master
Commit: 7ddd915bf82a68c8ab73b0c4ca409f1a6d43d227
Parents: b23c329
Author: Janaki Lahorani <ja...@cloudera.com>
Authored: Wed Dec 6 22:45:06 2017 -0800
Committer: Sahil Takiar <st...@cloudera.com>
Committed: Wed Dec 6 22:45:06 2017 -0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hive/conf/HiveConf.java   | 17 +++++++++++++
 .../hadoop/hive/ql/processors/SetProcessor.java |  7 +++++-
 .../queries/clientpositive/testSetQueryString.q |  4 +++
 .../clientpositive/testSetQueryString.q.out     | 26 ++++++++++++++++++++
 4 files changed, 53 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/7ddd915b/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 75b7707..8b2b333 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -329,6 +329,13 @@ public class HiveConf extends Configuration {
   };
 
   /**
+   * encoded parameter values are ;-) encoded.  Use decoder to get ;-) decoded string
+   */
+  public static final HiveConf.ConfVars[] ENCODED_CONF = {
+      ConfVars.HIVEQUERYSTRING
+  };
+
+  /**
    * Variables used by LLAP daemons.
    * TODO: Eventually auto-populate this based on prefixes. The conf variables
    * will need to be renamed for this.
@@ -3933,6 +3940,16 @@ public class HiveConf extends Configuration {
     return Iterables.any(hiddenSet, hiddenVar -> name.startsWith(hiddenVar));
   }
 
+  public static boolean isEncodedPar(String name) {
+    for (ConfVars confVar : HiveConf.ENCODED_CONF) {
+      ConfVars confVar1 = confVar;
+      if (confVar1.varname.equals(name)) {
+        return true;
+      }
+    }
+    return false;
+  }
+
   /**
    * check whether spark related property is updated, which includes spark configurations,
    * RSC configurations and yarn configuration in Spark on YARN mode.

http://git-wip-us.apache.org/repos/asf/hive/blob/7ddd915b/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
index b9ca938..64c4711 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
@@ -143,7 +143,12 @@ public class SetProcessor implements CommandProcessor {
     if (ss.getConf().isHiddenConfig(s)) {
       ss.out.println(s + " is a hidden config");
     } else if (ss.getConf().get(s) != null) {
-      ss.out.println(s + "=" + ss.getConf().get(s));
+      if (ss.getConf().isEncodedPar(s)) {
+        ss.out.println(s + "=" + HiveConf.EncoderDecoderFactory.URL_ENCODER_DECODER
+            .decode(ss.getConf().get(s)));
+      } else {
+        ss.out.println(s + "=" + ss.getConf().get(s));
+      }
     } else if (ss.getHiveVariables().containsKey(s)) {
       ss.out.println(s + "=" + ss.getHiveVariables().get(s));
     } else {

http://git-wip-us.apache.org/repos/asf/hive/blob/7ddd915b/ql/src/test/queries/clientpositive/testSetQueryString.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/testSetQueryString.q b/ql/src/test/queries/clientpositive/testSetQueryString.q
new file mode 100644
index 0000000..f11afb2
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/testSetQueryString.q
@@ -0,0 +1,4 @@
+create table t1 (c1 int);
+insert into t1 values (1);
+select * from t1;
+set hive.query.string;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hive/blob/7ddd915b/ql/src/test/results/clientpositive/testSetQueryString.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/testSetQueryString.q.out b/ql/src/test/results/clientpositive/testSetQueryString.q.out
new file mode 100644
index 0000000..0bf1919
--- /dev/null
+++ b/ql/src/test/results/clientpositive/testSetQueryString.q.out
@@ -0,0 +1,26 @@
+PREHOOK: query: create table t1 (c1 int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@t1
+POSTHOOK: query: create table t1 (c1 int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@t1
+PREHOOK: query: insert into t1 values (1)
+PREHOOK: type: QUERY
+PREHOOK: Output: default@t1
+POSTHOOK: query: insert into t1 values (1)
+POSTHOOK: type: QUERY
+POSTHOOK: Output: default@t1
+POSTHOOK: Lineage: t1.c1 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from t1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from t1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t1
+#### A masked pattern was here ####
+1
+hive.query.string=
+select * from t1