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

Reply via email to