You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2015/09/28 21:10:43 UTC

[41/43] hive git commit: HIVE-11723 : Incorrect string literal escaping (Yongzhi Chen via Szehon)

HIVE-11723 : Incorrect string literal escaping (Yongzhi Chen via Szehon)


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

Branch: refs/heads/llap
Commit: 1cf7e25c089a1880e9c6ca3ee9f7be0e388dd609
Parents: ea05d3d
Author: Szehon Ho <sz...@cloudera.com>
Authored: Mon Sep 28 11:58:25 2015 -0700
Committer: Szehon Ho <sz...@cloudera.com>
Committed: Mon Sep 28 11:58:25 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |  2 +-
 .../clientpositive/insertvalues_espchars.q      |  5 ++++
 .../clientpositive/insertvalues_espchars.q.out  | 30 ++++++++++++++++++++
 3 files changed, 36 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/1cf7e25c/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
index c5f39d3..dda28b0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
@@ -862,7 +862,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
         return expr.getText();
 
       case HiveParser.StringLiteral:
-        return PlanUtils.stripQuotes(expr.getText());
+        return BaseSemanticAnalyzer.unescapeSQLString(expr.getText());
 
       case HiveParser.KW_FALSE:
         // UDFToBoolean casts any non-empty string to true, so set this to false

http://git-wip-us.apache.org/repos/asf/hive/blob/1cf7e25c/ql/src/test/queries/clientpositive/insertvalues_espchars.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/insertvalues_espchars.q b/ql/src/test/queries/clientpositive/insertvalues_espchars.q
new file mode 100644
index 0000000..675786b
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/insertvalues_espchars.q
@@ -0,0 +1,5 @@
+drop table if exists escstr;
+create table escstr(val string);
+insert into escstr values('It\'s a simple test');
+select * from escstr;
+

http://git-wip-us.apache.org/repos/asf/hive/blob/1cf7e25c/ql/src/test/results/clientpositive/insertvalues_espchars.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/insertvalues_espchars.q.out b/ql/src/test/results/clientpositive/insertvalues_espchars.q.out
new file mode 100644
index 0000000..caa35d6
--- /dev/null
+++ b/ql/src/test/results/clientpositive/insertvalues_espchars.q.out
@@ -0,0 +1,30 @@
+PREHOOK: query: drop table if exists escstr
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table if exists escstr
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table escstr(val string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@escstr
+POSTHOOK: query: create table escstr(val string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@escstr
+PREHOOK: query: insert into escstr values('It\'s a simple test')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@escstr
+POSTHOOK: query: insert into escstr values('It\'s a simple test')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@escstr
+POSTHOOK: Lineage: escstr.val SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from escstr
+PREHOOK: type: QUERY
+PREHOOK: Input: default@escstr
+#### A masked pattern was here ####
+POSTHOOK: query: select * from escstr
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@escstr
+#### A masked pattern was here ####
+It's a simple test