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/07/14 17:55:47 UTC

[hive] branch master updated: HIVE-25282: Reject drop/alter tables in remote DBs (Dantong Dong via Naveen Gangam)

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


The following commit(s) were added to refs/heads/master by this push:
     new 7d4134e  HIVE-25282: Reject drop/alter tables in remote DBs (Dantong Dong via Naveen Gangam)
7d4134e is described below

commit 7d4134e7fe9bfb8b8aa3344a9ae72f4f36c98b2c
Author: Dantong Dong <da...@cloudera.com>
AuthorDate: Thu Jun 24 11:26:05 2021 -0700

    HIVE-25282: Reject drop/alter tables in remote DBs (Dantong Dong via Naveen Gangam)
---
 .../org/apache/hadoop/hive/metastore/HMSHandler.java     | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java
index c6b8a91..a6ffe51 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java
@@ -2939,9 +2939,11 @@ public class HMSHandler extends FacebookBase implements IHMSHandler {
     boolean isReplicated = false;
     try {
       ms.openTransaction();
+
+      // HIVE-25282: Drop/Alter table in REMOTE db should fail
       db = ms.getDatabase(catName, dbname);
       if (db.getType() == DatabaseType.REMOTE) {
-        return DataConnectorProviderFactory.getDataConnectorProvider(db).dropTable(name);
+        throw new MetaException("Drop table in REMOTE database " + db.getName() + " is not allowed");
       }
       isReplicated = isDbReplicationTarget(db);
 
@@ -5922,7 +5924,7 @@ public class HMSHandler extends FacebookBase implements IHMSHandler {
 
   private void alter_table_core(String catName, String dbname, String name, Table newTable,
                                 EnvironmentContext envContext, String validWriteIdList, List<String> processorCapabilities, String processorId)
-      throws InvalidOperationException, MetaException {
+          throws InvalidOperationException, MetaException {
     startFunction("alter_table", ": " + TableName.getQualified(catName, dbname, name)
         + " newtbl=" + newTable.getTableName());
     if (envContext == null) {
@@ -5932,6 +5934,16 @@ public class HMSHandler extends FacebookBase implements IHMSHandler {
       catName = MetaStoreUtils.getDefaultCatalog(conf);
     }
 
+    // HIVE-25282: Drop/Alter table in REMOTE db should fail
+    try {
+      Database db = get_database_core(catName, dbname);
+      if (db != null && db.getType().equals(DatabaseType.REMOTE)) {
+        throw new MetaException("Alter table in REMOTE database " + db.getName() + " is not allowed");
+      }
+    } catch (NoSuchObjectException e) {
+      throw new InvalidOperationException("Alter table in REMOTE database is not allowed");
+    }
+
     // Update the time if it hasn't been specified.
     if (newTable.getParameters() == null ||
         newTable.getParameters().get(hive_metastoreConstants.DDL_TIME) == null) {