HIVE-16646: Alias in transform ... as clause shouldn't be case sensitive (Yibing Shi, reviewed by Yongzhi Chen)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/cf64bb9d Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/cf64bb9d Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/cf64bb9d Branch: refs/heads/branch-2.3 Commit: cf64bb9d4b280b433db82a93ceace1a6091a0506 Parents: a4e3e35 Author: Yongzhi Chen <ych...@apache.org> Authored: Thu May 11 14:53:57 2017 -0400 Committer: Sahil Takiar <stak...@cloudera.com> Committed: Tue Nov 7 08:15:47 2017 -0800 ---------------------------------------------------------------------- .../hadoop/hive/ql/parse/SemanticAnalyzer.java | 4 +-- ql/src/test/queries/clientpositive/transform3.q | 6 +++++ .../results/clientpositive/transform3.q.out | 28 ++++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/cf64bb9d/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 d49708c..2a62062 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 @@ -3770,7 +3770,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { if (outputColNames) { for (int i = 0; i < ccount; ++i) { String colAlias = unescapeIdentifier(((ASTNode) collist.getChild(i)) - .getText()); + .getText()).toLowerCase(); failIfColAliasExists(colAliasNamesDuplicateCheck, colAlias); String intName = getColumnInternalName(i); ColumnInfo colInfo = new ColumnInfo(intName, @@ -3783,7 +3783,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { ASTNode child = (ASTNode) collist.getChild(i); assert child.getType() == HiveParser.TOK_TABCOL; String colAlias = unescapeIdentifier(((ASTNode) child.getChild(0)) - .getText()); + .getText()).toLowerCase(); failIfColAliasExists(colAliasNamesDuplicateCheck, colAlias); String intName = getColumnInternalName(i); ColumnInfo colInfo = new ColumnInfo(intName, TypeInfoUtils http://git-wip-us.apache.org/repos/asf/hive/blob/cf64bb9d/ql/src/test/queries/clientpositive/transform3.q ---------------------------------------------------------------------- diff --git a/ql/src/test/queries/clientpositive/transform3.q b/ql/src/test/queries/clientpositive/transform3.q new file mode 100644 index 0000000..4a2a368 --- /dev/null +++ b/ql/src/test/queries/clientpositive/transform3.q @@ -0,0 +1,6 @@ +CREATE TABLE transform3_t1 (col string); +INSERT OVERWRITE TABLE transform3_t1 VALUES('aaaa'); + +SELECT t.newCol FROM ( + SELECT TRANSFORM(col) USING 'cat' AS (NewCol string) FROM transform3_t1 +) t; http://git-wip-us.apache.org/repos/asf/hive/blob/cf64bb9d/ql/src/test/results/clientpositive/transform3.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/transform3.q.out b/ql/src/test/results/clientpositive/transform3.q.out new file mode 100644 index 0000000..5f93ed8 --- /dev/null +++ b/ql/src/test/results/clientpositive/transform3.q.out @@ -0,0 +1,28 @@ +PREHOOK: query: CREATE TABLE transform3_t1 (col string) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@transform3_t1 +POSTHOOK: query: CREATE TABLE transform3_t1 (col string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@transform3_t1 +PREHOOK: query: INSERT OVERWRITE TABLE transform3_t1 VALUES('aaaa') +PREHOOK: type: QUERY +PREHOOK: Output: default@transform3_t1 +POSTHOOK: query: INSERT OVERWRITE TABLE transform3_t1 VALUES('aaaa') +POSTHOOK: type: QUERY +POSTHOOK: Output: default@transform3_t1 +POSTHOOK: Lineage: transform3_t1.col SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ] +PREHOOK: query: SELECT t.newCol FROM ( + SELECT TRANSFORM(col) USING 'cat' AS (NewCol string) FROM transform3_t1 +) t +PREHOOK: type: QUERY +PREHOOK: Input: default@transform3_t1 +#### A masked pattern was here #### +POSTHOOK: query: SELECT t.newCol FROM ( + SELECT TRANSFORM(col) USING 'cat' AS (NewCol string) FROM transform3_t1 +) t +POSTHOOK: type: QUERY +POSTHOOK: Input: default@transform3_t1 +#### A masked pattern was here #### +aaaa