You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ng...@apache.org on 2021/04/06 15:39:54 UTC
[hive] 10/38: HIVE-24396: getTable/getTables API not expected to
throw NoSuchObjectException
This is an automated email from the ASF dual-hosted git repository.
ngangam pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
commit 1523cd47d0c81d5e2bb9f0b88d96efd847a67751
Author: Naveen Gangam <ng...@cloudera.com>
AuthorDate: Thu Nov 19 00:00:02 2020 -0500
HIVE-24396: getTable/getTables API not expected to throw NoSuchObjectException
---
.../apache/hadoop/hive/metastore/HiveMetaStoreClient.java | 10 +++++-----
.../org/apache/hadoop/hive/metastore/HiveMetaStore.java | 13 ++++++-------
.../hive/metastore/client/builder/DatabaseBuilder.java | 10 ++++++++++
.../apache/hadoop/hive/metastore/cache/TestCachedStore.java | 1 +
4 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
index 8700bed..9dbaacc 100644
--- a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
+++ b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
@@ -1097,7 +1097,7 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable {
/**
* Create a new Database
*
- * @param connector
+ * @param db
* @throws AlreadyExistsException
* @throws InvalidObjectException
* @throws MetaException
@@ -1105,12 +1105,12 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable {
* @see org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Iface#create_database(Database)
*/
@Override
- public void createDatabase(Database connector)
+ public void createDatabase(Database db)
throws AlreadyExistsException, InvalidObjectException, MetaException, TException {
- if (!connector.isSetCatalogName()) {
- connector.setCatalogName(getDefaultCatalog(conf));
+ if (!db.isSetCatalogName()) {
+ db.setCatalogName(getDefaultCatalog(conf));
}
- client.create_database(connector);
+ client.create_database(db);
}
/**
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
index ec0fa00..696b89d 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
@@ -3733,9 +3733,7 @@ public class HiveMetaStore extends ThriftHiveMetastore {
return DataConnectorProviderFactory.getDataConnectorProvider(db).getTable(name);
}
}
- } catch (NoSuchObjectException notExists) {
- throw new MetaException("Database could not be found:" + dbname);
- }
+ } catch (Exception e) { /* appears exception is not thrown currently if db doesnt exist */ }
try {
t = getMS().getTable(catName, dbname, name, writeIdList);
@@ -6003,9 +6001,7 @@ public class HiveMetaStore extends ThriftHiveMetastore {
return DataConnectorProviderFactory.getDataConnectorProvider(db).getTableNames();
}
}
- } catch (NoSuchObjectException notExists) {
- throw new MetaException("Database could not be found:" + dbname);
- }
+ } catch (Exception e) { /* appears we return empty set instead of throwing an exception */ }
try {
ret = getMS().getTables(parsedDbName[CAT_NAME], parsedDbName[DB_NAME], pattern);
@@ -6065,10 +6061,13 @@ public class HiveMetaStore extends ThriftHiveMetastore {
try {
db = get_database_core(catName, dbname);
if (db != null) {
- if(db.getType().equals(DatabaseType.REMOTE)) {
+ if (db.getType().equals(DatabaseType.REMOTE)) {
return DataConnectorProviderFactory.getDataConnectorProvider(db).getTableNames();
}
}
+ } catch (Exception e) { /* ignore */ }
+
+ try {
ret = getMS().getTables(catName, dbname, pattern, TableType.valueOf(tableType), -1);
} catch (MetaException e) {
ex = e;
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/client/builder/DatabaseBuilder.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/client/builder/DatabaseBuilder.java
index 21e3a9f..806bf0f 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/client/builder/DatabaseBuilder.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/client/builder/DatabaseBuilder.java
@@ -22,6 +22,7 @@ import org.apache.hadoop.hive.metastore.IMetaStoreClient;
import org.apache.hadoop.hive.metastore.Warehouse;
import org.apache.hadoop.hive.metastore.api.Catalog;
import org.apache.hadoop.hive.metastore.api.Database;
+import org.apache.hadoop.hive.metastore.api.DatabaseType;
import org.apache.hadoop.hive.metastore.api.MetaException;
import org.apache.hadoop.hive.metastore.api.PrincipalType;
import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils;
@@ -42,6 +43,7 @@ public class DatabaseBuilder {
private String ownerName;
private PrincipalType ownerType;
private int createTime;
+ private DatabaseType type;
public DatabaseBuilder() {
}
@@ -101,6 +103,12 @@ public class DatabaseBuilder {
return this;
}
+ public DatabaseBuilder setType(DatabaseType type) {
+ if (type != null)
+ this.type = type;
+ return this;
+ }
+
public Database build(Configuration conf) throws MetaException {
if (name == null) throw new MetaException("You must name the database");
if (catalogName == null) catalogName = MetaStoreUtils.getDefaultCatalog(conf);
@@ -114,6 +122,8 @@ public class DatabaseBuilder {
db.setOwnerName(ownerName);
if (ownerType == null) ownerType = PrincipalType.USER;
db.setOwnerType(ownerType);
+ if (type == null) type = DatabaseType.NATIVE;
+ db.setType(type);
return db;
} catch (IOException e) {
throw MetaStoreUtils.newMetaException(e);
diff --git a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/cache/TestCachedStore.java b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/cache/TestCachedStore.java
index d285f3d..c71c459 100644
--- a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/cache/TestCachedStore.java
+++ b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/cache/TestCachedStore.java
@@ -2053,6 +2053,7 @@ import static org.apache.hadoop.hive.metastore.Warehouse.DEFAULT_CATALOG_NAME;
db.setOwnerType(PrincipalType.USER);
db.setCatalogName(DEFAULT_CATALOG_NAME);
db.setCreateTime((int) (System.currentTimeMillis() / 1000));
+ db.setType(DatabaseType.NATIVE);
return db;
}