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());

Reply via email to