You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by vi...@apache.org on 2017/10/12 15:18:35 UTC

hive git commit: HIVE-17747 : HMS DropTableMessage should include the full table object (Dan Burkert, reviewed by Vihang Karajgaonkar)

Repository: hive
Updated Branches:
  refs/heads/master b3122da53 -> 697922bdc


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/697922bd
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/697922bd
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/697922bd

Branch: refs/heads/master
Commit: 697922bdc2fb0ec472ae413af0cdd69c2aa8681c
Parents: b3122da
Author: Vihang Karajgaonkar <vi...@cloudera.com>
Authored: Thu Oct 12 08:08:28 2017 -0700
Committer: Vihang Karajgaonkar <vi...@cloudera.com>
Committed: Thu Oct 12 08:08:38 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/697922bd/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 c36b632..308ab0d 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
@@ -519,6 +519,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/697922bd/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/697922bd/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/697922bd/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 f53b14b..c7877ee 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
@@ -118,8 +118,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