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) {