-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25412/
-----------------------------------------------------------

Review request for hive.


Repository: hive-git


Description
-------

'SHOW TABLE EXTENDED [IN|FROM database_name] LIKE identifier_with_wildcards' 
command does not strip single/double quotes around identifier_with_wildcards 
and returns empty results. It is because the identifier_with_wildcards in this 
query is a token type of HiveParser.StringLiteral and the method 
unescapeIdentifier used in BaseSemanticAnalyzer.getUnescapedName could not 
strip its quotes. The quotes become parts of the tablename regexp and therefore 
no matched tables are returned for this pattern.
For the token of HiveParser.StringLiteral from this kind of query, we can use 
unescapeSQLString to strip their quotes. The change in this patch is to use 
unescapeSQLString to remove the quotes around identifier_with_wildcards.


Diffs
-----

  ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java 
b5b2b609b2bda7180219ae95fbbe42ad07ed0d97 
  ql/src/test/queries/clientpositive/show_tables.q 
f33325dbb9e410a828b3bb8b1e5bdce234025d3b 
  ql/src/test/results/clientpositive/show_tables.q.out 
0d4aa5713e22bec90c8dd68ab08de4f8ff9d6eb8 

Diff: https://reviews.apache.org/r/25412/diff/


Testing
-------

1. Manual test: with the changes, all following cases are working just like the 
other command "SHOW TABLES..."
SHOW TABLE EXTENDED IN test_db LIKE 'ba*';
SHOW TABLE EXTENDED IN test_db LIKE "ba*";
SHOW TABLE EXTENDED IN test_db LIKE `ba*`;
2. six related unit tests are added to show_tables.q and they work as expected
3. submit this patch for pre-commit test to see if the changes will cause other 
regression.


Thanks,

Chaoyu Tang

Reply via email to