From 42753e0f23b300910c5eb7fbf195d6480021172c Mon Sep 17 00:00:00 2001 From: Alexander Kolbasov Date: Wed, 15 Aug 2018 12:33:18 -0700 Subject: [PATCH 1/1] HIVE-19253: HMS ignores tableType property for external tables --- .../org/apache/hadoop/hive/metastore/ObjectStore.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) 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 8e2f94eb69..efa53e24c9 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 @@ -1954,19 +1954,13 @@ private MTable convertToMTable(Table tbl) throws InvalidObjectException, DatabaseName.getQualified(catName, tbl.getDbName()) + " doesn't exist."); } - // If the table has property EXTERNAL set, update table type - // accordingly + + // If the table type is set as MANAGED, but the table has property + // EXTERNAL, change the table type to EXTERNAL as well. String tableType = tbl.getTableType(); - boolean isExternal = Boolean.parseBoolean(tbl.getParameters().get("EXTERNAL")); - if (TableType.MANAGED_TABLE.toString().equals(tableType)) { - if (isExternal) { + if (TableType.MANAGED_TABLE.toString().equals(tableType) && + Boolean.parseBoolean(tbl.getParameters().get("EXTERNAL"))) { tableType = TableType.EXTERNAL_TABLE.toString(); - } - } - if (TableType.EXTERNAL_TABLE.toString().equals(tableType)) { - if (!isExternal) { - tableType = TableType.MANAGED_TABLE.toString(); - } } PrincipalType ownerPrincipalType = tbl.getOwnerType(); -- 2.16.3