diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java index b5b2b609b2bda7180219ae95fbbe42ad07ed0d97..a0130b369e35fcd8a3b17c04fad58aef5dbab927 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java @@ -301,6 +301,8 @@ public static String getUnescapedName(ASTNode tableOrColumnNode, String currentD return currentDatabase + "." + tableName; } return tableName; + } else if (tableOrColumnNode.getToken().getType() == HiveParser.StringLiteral) { + return unescapeSQLString(tableOrColumnNode.getText()); } // column node return unescapeIdentifier(tableOrColumnNode.getText()); diff --git a/ql/src/test/queries/clientpositive/show_tables.q b/ql/src/test/queries/clientpositive/show_tables.q index f33325dbb9e410a828b3bb8b1e5bdce234025d3b..447f9a84e3353741fad9c381107499274d12b161 100644 --- a/ql/src/test/queries/clientpositive/show_tables.q +++ b/ql/src/test/queries/clientpositive/show_tables.q @@ -27,6 +27,15 @@ SHOW TABLES IN default; SHOW TABLES IN test_db "test*"; SHOW TABLES IN test_db LIKE "nomatch"; +-- SHOW TABLE EXTENDED basic syntax tests and wildcard +SHOW TABLE EXTENDED IN test_db LIKE foo; +SHOW TABLE EXTENDED IN test_db LIKE "foo"; +SHOW TABLE EXTENDED IN test_db LIKE 'foo'; +SHOW TABLE EXTENDED IN test_db LIKE `foo`; +SHOW TABLE EXTENDED IN test_db LIKE 'ba*'; +SHOW TABLE EXTENDED IN test_db LIKE "ba*"; +SHOW TABLE EXTENDED IN test_db LIKE `ba*`; + -- SHOW TABLES from a database with a name that requires escaping CREATE DATABASE `database`; USE `database`; diff --git a/ql/src/test/results/clientpositive/show_tables.q.out b/ql/src/test/results/clientpositive/show_tables.q.out index 0d4aa5713e22bec90c8dd68ab08de4f8ff9d6eb8..0a208f7858e442125aaf1ec042c88b5ff701f05c 100644 --- a/ql/src/test/results/clientpositive/show_tables.q.out +++ b/ql/src/test/results/clientpositive/show_tables.q.out @@ -170,6 +170,166 @@ PREHOOK: query: SHOW TABLES IN test_db LIKE "nomatch" PREHOOK: type: SHOWTABLES POSTHOOK: query: SHOW TABLES IN test_db LIKE "nomatch" POSTHOOK: type: SHOWTABLES +PREHOOK: query: -- SHOW TABLE EXTENDED basic syntax tests and wildcard +SHOW TABLE EXTENDED IN test_db LIKE foo +PREHOOK: type: SHOW_TABLESTATUS +POSTHOOK: query: -- SHOW TABLE EXTENDED basic syntax tests and wildcard +SHOW TABLE EXTENDED IN test_db LIKE foo +POSTHOOK: type: SHOW_TABLESTATUS +tableName:foo +#### A masked pattern was here #### +inputformat:org.apache.hadoop.mapred.TextInputFormat +outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +columns:struct columns { i32 a} +partitioned:false +partitionColumns: +totalNumberFiles:0 +totalFileSize:0 +maxFileSize:0 +minFileSize:0 +#### A masked pattern was here #### + +PREHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE "foo" +PREHOOK: type: SHOW_TABLESTATUS +POSTHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE "foo" +POSTHOOK: type: SHOW_TABLESTATUS +tableName:foo +#### A masked pattern was here #### +inputformat:org.apache.hadoop.mapred.TextInputFormat +outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +columns:struct columns { i32 a} +partitioned:false +partitionColumns: +totalNumberFiles:0 +totalFileSize:0 +maxFileSize:0 +minFileSize:0 +#### A masked pattern was here #### + +PREHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE 'foo' +PREHOOK: type: SHOW_TABLESTATUS +POSTHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE 'foo' +POSTHOOK: type: SHOW_TABLESTATUS +tableName:foo +#### A masked pattern was here #### +inputformat:org.apache.hadoop.mapred.TextInputFormat +outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +columns:struct columns { i32 a} +partitioned:false +partitionColumns: +totalNumberFiles:0 +totalFileSize:0 +maxFileSize:0 +minFileSize:0 +#### A masked pattern was here #### + +PREHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE `foo` +PREHOOK: type: SHOW_TABLESTATUS +POSTHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE `foo` +POSTHOOK: type: SHOW_TABLESTATUS +tableName:foo +#### A masked pattern was here #### +inputformat:org.apache.hadoop.mapred.TextInputFormat +outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +columns:struct columns { i32 a} +partitioned:false +partitionColumns: +totalNumberFiles:0 +totalFileSize:0 +maxFileSize:0 +minFileSize:0 +#### A masked pattern was here #### + +PREHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE 'ba*' +PREHOOK: type: SHOW_TABLESTATUS +POSTHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE 'ba*' +POSTHOOK: type: SHOW_TABLESTATUS +tableName:bar +#### A masked pattern was here #### +inputformat:org.apache.hadoop.mapred.TextInputFormat +outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +columns:struct columns { i32 a} +partitioned:false +partitionColumns: +totalNumberFiles:0 +totalFileSize:0 +maxFileSize:0 +minFileSize:0 +#### A masked pattern was here #### + +tableName:baz +#### A masked pattern was here #### +inputformat:org.apache.hadoop.mapred.TextInputFormat +outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +columns:struct columns { i32 a} +partitioned:false +partitionColumns: +totalNumberFiles:0 +totalFileSize:0 +maxFileSize:0 +minFileSize:0 +#### A masked pattern was here #### + +PREHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE "ba*" +PREHOOK: type: SHOW_TABLESTATUS +POSTHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE "ba*" +POSTHOOK: type: SHOW_TABLESTATUS +tableName:bar +#### A masked pattern was here #### +inputformat:org.apache.hadoop.mapred.TextInputFormat +outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +columns:struct columns { i32 a} +partitioned:false +partitionColumns: +totalNumberFiles:0 +totalFileSize:0 +maxFileSize:0 +minFileSize:0 +#### A masked pattern was here #### + +tableName:baz +#### A masked pattern was here #### +inputformat:org.apache.hadoop.mapred.TextInputFormat +outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +columns:struct columns { i32 a} +partitioned:false +partitionColumns: +totalNumberFiles:0 +totalFileSize:0 +maxFileSize:0 +minFileSize:0 +#### A masked pattern was here #### + +PREHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE `ba*` +PREHOOK: type: SHOW_TABLESTATUS +POSTHOOK: query: SHOW TABLE EXTENDED IN test_db LIKE `ba*` +POSTHOOK: type: SHOW_TABLESTATUS +tableName:bar +#### A masked pattern was here #### +inputformat:org.apache.hadoop.mapred.TextInputFormat +outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +columns:struct columns { i32 a} +partitioned:false +partitionColumns: +totalNumberFiles:0 +totalFileSize:0 +maxFileSize:0 +minFileSize:0 +#### A masked pattern was here #### + +tableName:baz +#### A masked pattern was here #### +inputformat:org.apache.hadoop.mapred.TextInputFormat +outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +columns:struct columns { i32 a} +partitioned:false +partitionColumns: +totalNumberFiles:0 +totalFileSize:0 +maxFileSize:0 +minFileSize:0 +#### A masked pattern was here #### + PREHOOK: query: -- SHOW TABLES from a database with a name that requires escaping CREATE DATABASE `database` PREHOOK: type: CREATEDATABASE