Repository: hive Updated Branches: refs/heads/branch-2 c332103ef -> 3fb4649fa
HIVE-17747 : HMS DropTableMessage should include the full table object (Dan Burkert, reviewed by Vihang Karajgaonkar) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/3fb4649f Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/3fb4649f Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/3fb4649f Branch: refs/heads/branch-2 Commit: 3fb4649fa847cfec33f701f6c884f12087680cf0 Parents: c332103 Author: Vihang Karajgaonkar <vih...@cloudera.com> Authored: Thu Oct 12 08:08:28 2017 -0700 Committer: Vihang Karajgaonkar <vih...@cloudera.com> Committed: Thu Oct 12 11:07:31 2017 -0700 ---------------------------------------------------------------------- .../listener/TestDbNotificationListener.java | 6 ++++++ .../metastore/messaging/DropTableMessage.java | 4 ++++ .../messaging/json/JSONDropTableMessage.java | 21 +++++++++++++++++++- .../messaging/json/JSONMessageFactory.java | 3 +-- 4 files changed, 31 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/3fb4649f/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java ---------------------------------------------------------------------- diff --git a/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java b/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java index 8de66b3..9f406cd 100644 --- a/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java +++ b/itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java @@ -500,6 +500,12 @@ public class TestDbNotificationListener { assertEquals(defaultDbName, dropTblMsg.getDB()); assertEquals(tblName, dropTblMsg.getTable()); assertEquals(TableType.MANAGED_TABLE.toString(), dropTblMsg.getTableType()); + Table tableObj = dropTblMsg.getTableObj(); + assertEquals(table.getDbName(), tableObj.getDbName()); + assertEquals(table.getTableName(), tableObj.getTableName()); + assertEquals(table.getOwner(), tableObj.getOwner()); + assertEquals(table.getParameters(), tableObj.getParameters()); + assertEquals(TableType.MANAGED_TABLE.toString(), tableObj.getTableType()); // Verify the eventID was passed to the non-transactional listener MockMetaStoreEventListener.popAndVerifyLastEventId(EventType.DROP_TABLE, firstEventId + 2); http://git-wip-us.apache.org/repos/asf/hive/blob/3fb4649f/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/DropTableMessage.java ---------------------------------------------------------------------- diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/DropTableMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/DropTableMessage.java index 03f73f1..7aed21b 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/DropTableMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/DropTableMessage.java @@ -19,6 +19,8 @@ package org.apache.hadoop.hive.metastore.messaging; +import org.apache.hadoop.hive.metastore.api.Table; + public abstract class DropTableMessage extends EventMessage { protected DropTableMessage() { @@ -33,6 +35,8 @@ public abstract class DropTableMessage extends EventMessage { public abstract String getTableType(); + public abstract Table getTableObj() throws Exception; + @Override public EventMessage checkValid() { if (getTable() == null) http://git-wip-us.apache.org/repos/asf/hive/blob/3fb4649f/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropTableMessage.java ---------------------------------------------------------------------- diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropTableMessage.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropTableMessage.java index 17f38ba..4334f73 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropTableMessage.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONDropTableMessage.java @@ -19,7 +19,9 @@ package org.apache.hadoop.hive.metastore.messaging.json; +import org.apache.hadoop.hive.metastore.api.Table; import org.apache.hadoop.hive.metastore.messaging.DropTableMessage; +import org.apache.thrift.TException; import org.codehaus.jackson.annotate.JsonProperty; /** @@ -28,7 +30,7 @@ import org.codehaus.jackson.annotate.JsonProperty; public class JSONDropTableMessage extends DropTableMessage { @JsonProperty - String server, servicePrincipal, db, table, tableType; + String server, servicePrincipal, db, table, tableType, tableObjJson; @JsonProperty Long timestamp; @@ -55,6 +57,18 @@ public class JSONDropTableMessage extends DropTableMessage { checkValid(); } + public JSONDropTableMessage(String server, String servicePrincipal, Table tableObj, + Long timestamp) { + this(server, servicePrincipal, tableObj.getDbName(), tableObj.getTableName(), + tableObj.getTableType(), timestamp); + try { + this.tableObjJson = JSONMessageFactory.createTableObjJson(tableObj); + } catch (TException e) { + throw new IllegalArgumentException("Could not serialize: ", e); + } + checkValid(); + } + @Override public String getTable() { return table; @@ -66,6 +80,11 @@ public class JSONDropTableMessage extends DropTableMessage { } @Override + public Table getTableObj() throws Exception { + return (Table) JSONMessageFactory.getTObj(tableObjJson,Table.class); + } + + @Override public String getServer() { return server; } http://git-wip-us.apache.org/repos/asf/hive/blob/3fb4649f/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageFactory.java ---------------------------------------------------------------------- diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageFactory.java b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageFactory.java index 7308adb..8b1291a 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageFactory.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/messaging/json/JSONMessageFactory.java @@ -110,8 +110,7 @@ public class JSONMessageFactory extends MessageFactory { @Override public DropTableMessage buildDropTableMessage(Table table) { - return new JSONDropTableMessage(MS_SERVER_URL, MS_SERVICE_PRINCIPAL, table.getDbName(), - table.getTableName(), table.getTableType(), now()); + return new JSONDropTableMessage(MS_SERVER_URL, MS_SERVICE_PRINCIPAL, table, now()); } @Override