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 750449185cc8cff874d9ba70897b9a702c30726e Author: Naveen Gangam <ngan...@cloudera.com> AuthorDate: Fri Nov 20 20:32:53 2020 -0500 HIVE-24396: Fix for drop database for remote databases --- .../org/apache/hadoop/hive/metastore/HiveMetaStore.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) 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 696b89d..2eeb60a 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 @@ -1713,6 +1713,10 @@ public class HiveMetaStore extends ThriftHiveMetastore { try { ms.openTransaction(); db = ms.getDatabase(catName, name); + if (db.getType() == DatabaseType.REMOTE) { + success = drop_remote_database_core(ms, db); + return; + } isReplicated = isDbReplicationTarget(db); if (!isInTest && ReplChangeManager.isSourceOfReplication(db)) { @@ -1899,6 +1903,16 @@ public class HiveMetaStore extends ThriftHiveMetastore { } } + private boolean drop_remote_database_core(RawStore ms, final Database db) throws MetaException, NoSuchObjectException { + boolean success = false; + firePreEvent(new PreDropDatabaseEvent(db, this)); + + if (ms.dropDatabase(db.getCatalogName(), db.getName())) { + success = ms.commitTransaction(); + } + return success; + } + @Override public void drop_database(final String dbName, final boolean deleteData, final boolean cascade) throws NoSuchObjectException, InvalidOperationException, MetaException { @@ -1983,14 +1997,12 @@ public class HiveMetaStore extends ThriftHiveMetastore { } } - // Assumes that the catalog has already been set. private void create_dataconnector_core(RawStore ms, final DataConnector connector) throws AlreadyExistsException, InvalidObjectException, MetaException { if (!MetaStoreUtils.validateName(connector.getName(), conf)) { throw new InvalidObjectException(connector.getName() + " is not a valid dataconnector name"); } - // connector.setLocationUri(dbPath.toString()); if (connector.getOwnerName() == null){ try { connector.setOwnerName(SecurityUtils.getUGI().getShortUserName()); @@ -2001,7 +2013,6 @@ public class HiveMetaStore extends ThriftHiveMetastore { long time = System.currentTimeMillis()/1000; connector.setCreateTime((int) time); boolean success = false; - boolean madeDir = false; Map<String, String> transactionalListenersResponses = Collections.emptyMap(); try { firePreEvent(new PreCreateDataConnectorEvent(connector, this));