You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2014/09/08 05:41:08 UTC
svn commit: r1623262 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
test/queries/clientpositive/show_tables.q
test/results/clientpositive/describe_table_json.q.out
test/results/clientpositive/show_tables.q.out
Author: xuefu
Date: Mon Sep 8 03:41:08 2014
New Revision: 1623262
URL: http://svn.apache.org/r1623262
Log:
HIVE-1363: 'SHOW TABLE EXTENDED LIKE' command does not strip single/double quotes (Chaoyu via Xuefu)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
hive/trunk/ql/src/test/queries/clientpositive/show_tables.q
hive/trunk/ql/src/test/results/clientpositive/describe_table_json.q.out
hive/trunk/ql/src/test/results/clientpositive/show_tables.q.out
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java?rev=1623262&r1=1623261&r2=1623262&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java Mon Sep 8 03:41:08 2014
@@ -289,7 +289,8 @@ public abstract class BaseSemanticAnalyz
}
public static String getUnescapedName(ASTNode tableOrColumnNode, String currentDatabase) {
- if (tableOrColumnNode.getToken().getType() == HiveParser.TOK_TABNAME) {
+ int tokenType = tableOrColumnNode.getToken().getType();
+ if (tokenType == HiveParser.TOK_TABNAME) {
// table node
if (tableOrColumnNode.getChildCount() == 2) {
String dbName = unescapeIdentifier(tableOrColumnNode.getChild(0).getText());
@@ -301,6 +302,8 @@ public abstract class BaseSemanticAnalyz
return currentDatabase + "." + tableName;
}
return tableName;
+ } else if (tokenType == HiveParser.StringLiteral) {
+ return unescapeSQLString(tableOrColumnNode.getText());
}
// column node
return unescapeIdentifier(tableOrColumnNode.getText());
Modified: hive/trunk/ql/src/test/queries/clientpositive/show_tables.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/show_tables.q?rev=1623262&r1=1623261&r2=1623262&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/show_tables.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/show_tables.q Mon Sep 8 03:41:08 2014
@@ -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`;
Modified: hive/trunk/ql/src/test/results/clientpositive/describe_table_json.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/describe_table_json.q.out?rev=1623262&r1=1623261&r2=1623262&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/describe_table_json.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/describe_table_json.q.out Mon Sep 8 03:41:08 2014
@@ -20,7 +20,7 @@ PREHOOK: query: SHOW TABLE EXTENDED LIKE
PREHOOK: type: SHOW_TABLESTATUS
POSTHOOK: query: SHOW TABLE EXTENDED LIKE 'json*'
POSTHOOK: type: SHOW_TABLESTATUS
-{"tables":[]}
+#### A masked pattern was here ####
PREHOOK: query: ALTER TABLE jsontable SET TBLPROPERTIES ('id' = 'jsontable')
PREHOOK: type: ALTERTABLE_PROPERTIES
PREHOOK: Input: default@jsontable
Modified: hive/trunk/ql/src/test/results/clientpositive/show_tables.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/show_tables.q.out?rev=1623262&r1=1623261&r2=1623262&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/show_tables.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/show_tables.q.out Mon Sep 8 03:41:08 2014
@@ -170,6 +170,166 @@ PREHOOK: query: SHOW TABLES IN test_db L
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