From 6d1b6e6b2ec2974803b419000f93feb86b78b713 Mon Sep 17 00:00:00 2001 From: nareshpr Date: Thu, 19 Oct 2017 16:13:07 +0530 Subject: [PATCH] HIVE-17845: insert fails if target table columns are not lowercase --- .../apache/hadoop/hive/ql/parse/SemanticAnalyzer.java | 2 +- ql/src/test/queries/positive/insert_column_mixcase.q | 6 ++++++ .../results/clientpositive/insert_column_mixcase.q.out | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 ql/src/test/queries/positive/insert_column_mixcase.q create mode 100644 ql/src/test/results/clientpositive/insert_column_mixcase.q.out 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 df5c6aa..c6ca4c7 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 @@ -1798,7 +1798,7 @@ private void handleInsertStatementSpecPhase1(ASTNode ast, QBParseInfo qbp, Phase for(Node col : tabColName.getChildren()) { assert ((ASTNode)col).getType() == HiveParser.Identifier : "expected token " + HiveParser.Identifier + " found " + ((ASTNode)col).getType(); - targetColNames.add(((ASTNode)col).getText()); + targetColNames.add(((ASTNode)col).getText().toLowerCase()); } String fullTableName = getUnescapedName((ASTNode) ast.getChild(0).getChild(0), SessionState.get().getCurrentDatabase()); diff --git a/ql/src/test/queries/positive/insert_column_mixcase.q b/ql/src/test/queries/positive/insert_column_mixcase.q new file mode 100644 index 0000000..12671d2 --- /dev/null +++ b/ql/src/test/queries/positive/insert_column_mixcase.q @@ -0,0 +1,6 @@ +DROP TABLE IF EXISTS insert_camel_case; +CREATE TABLE insert_camel_case (key int, value string); + +INSERT INTO insert_camel_case(KeY, VALuE) SELECT * FROM src LIMIT 100; + +DROP TABLE IF EXISTS insert_camel_case; diff --git a/ql/src/test/results/clientpositive/insert_column_mixcase.q.out b/ql/src/test/results/clientpositive/insert_column_mixcase.q.out new file mode 100644 index 0000000..9395e89 --- /dev/null +++ b/ql/src/test/results/clientpositive/insert_column_mixcase.q.out @@ -0,0 +1,18 @@ +PREHOOK: query: DROP TABLE IF EXISTS insert_camel_case +PREHOOK: type: DROPTABLE +POSTHOOK: query: DROP TABLE IF EXISTS insert_camel_case +POSTHOOK: type: DROPTABLE +PREHOOK: query: CREATE TABLE insert_camel_case (key int, value string) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@insert_camel_case +POSTHOOK: query: CREATE TABLE insert_camel_case (key int, value string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@insert_camel_case +PREHOOK: query: INSERT INTO insert_camel_case(KeY, VALuE) SELECT * FROM src LIMIT 100 +PREHOOK: type: QUERY +PREHOOK: Output: default@insert_camel_case +POSTHOOK: query: INSERT INTO insert_camel_case(KeY, VALuE) SELECT * FROM src LIMIT 100 +POSTHOOK: type: QUERY +POSTHOOK: Output: default@insert_camel_case -- 2.10.1