This is an automated email from the ASF dual-hosted git repository.
dengzh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 162da6d8618 HIVE-27346: Getting exception for wildcard search for
database and table name (#4326) (Hongdan Zhu, reviewed by Attila Turoczy,
Zhihua Deng)
162da6d8618 is described below
commit 162da6d861897761aa0255c43b4c1016e1bb9d1b
Author: Daniel (Hongdan) Zhu <[email protected]>
AuthorDate: Wed Oct 18 18:27:07 2023 -0700
HIVE-27346: Getting exception for wildcard search for database and table
name (#4326) (Hongdan Zhu, reviewed by Attila Turoczy, Zhihua Deng)
---
.../apache/hadoop/hive/metastore/ObjectStore.java | 2 +-
.../hive/metastore/client/TestTablesGetExists.java | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java
index e7df10673b5..e8996cb2498 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java
@@ -2163,7 +2163,7 @@ public class ObjectStore implements RawStore,
Configurable {
StringBuilder filterBuilder = new StringBuilder();
List<String> parameterVals = new ArrayList<>();
- appendSimpleCondition(filterBuilder, "database.name", new String[] {db},
parameterVals);
+ appendPatternCondition(filterBuilder, "database.name", new String[]
{db}, parameterVals);
appendSimpleCondition(filterBuilder, "database.catalogName", new
String[] {catName}, parameterVals);
if(tbl_names != null){
appendSimpleCondition(filterBuilder, "tableName",
lowered_tbl_names.toArray(new String[0]), parameterVals);
diff --git
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/TestTablesGetExists.java
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/TestTablesGetExists.java
index 273054c6dab..f2937bc8576 100644
---
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/TestTablesGetExists.java
+++
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/TestTablesGetExists.java
@@ -271,6 +271,27 @@ public class TestTablesGetExists extends
MetaStoreClientTest {
Assert.assertEquals("Found functions size", 1, tables.size());
Assert.assertTrue("Comparing tablenames",
tables.contains(testTables[6].getTableName()));
+ // Find tables by using the wildcard sign "*"
+ tables = client.getTables(DEFAULT_DATABASE, "*");
+ Assert.assertEquals("All tables size", 5, tables.size());
+ Assert.assertTrue("Comparing tablenames",
tables.contains(testTables[0].getTableName()));
+ Assert.assertTrue("Comparing tablenames",
tables.contains(testTables[1].getTableName()));
+ Assert.assertTrue("Comparing tablenames",
tables.contains(testTables[2].getTableName()));
+ Assert.assertTrue("Comparing tablenames",
tables.contains(testTables[3].getTableName()));
+ Assert.assertTrue("Comparing tablenames",
tables.contains(testTables[4].getTableName()));
+
+ tables = client.getTables(OTHER_DATABASE, "*");
+ Assert.assertEquals("All tables size", 2, tables.size());
+ Assert.assertTrue("Comparing tablenames",
tables.contains(testTables[5].getTableName()));
+ Assert.assertTrue("Comparing tablenames",
tables.contains(testTables[6].getTableName()));
+
+ tables = client.getTables("*", "*");
+ Assert.assertEquals("All tables size", 7, tables.size());
+ tables = client.getTables("d*", "*");
+ Assert.assertEquals("All tables size", 7, tables.size());
+ tables = client.getTables("def*", "*");
+ Assert.assertEquals("All tables size", 5, tables.size());
+
// Look for tables but do not find any
tables = client.getTables(DEFAULT_DATABASE, "*_not_such_function_*");
Assert.assertEquals("No such table size", 0, tables.size());