You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ga...@apache.org on 2016/01/14 20:47:02 UTC

[3/4] hive git commit: HIVE-12832 A bunch of thrift and RDBMS changes for ACID fixes.

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/scripts/upgrade/postgres/030-HIVE-12831.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/030-HIVE-12831.postgres.sql b/metastore/scripts/upgrade/postgres/030-HIVE-12831.postgres.sql
new file mode 100644
index 0000000..3f314e8
--- /dev/null
+++ b/metastore/scripts/upgrade/postgres/030-HIVE-12831.postgres.sql
@@ -0,0 +1,2 @@
+ALTER TABLE HIVE_LOCKS ADD COLUMN HL_BLOCKEDBY_EXT_ID bigint;
+ALTER TABLE HIVE_LOCKS ADD COLUMN HL_BLOCKEDBY_INT_ID bigint;

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/scripts/upgrade/postgres/031-HIVE-12832.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/031-HIVE-12832.postgres.sql b/metastore/scripts/upgrade/postgres/031-HIVE-12832.postgres.sql
new file mode 100644
index 0000000..0e5515c
--- /dev/null
+++ b/metastore/scripts/upgrade/postgres/031-HIVE-12832.postgres.sql
@@ -0,0 +1,7 @@
+CREATE TABLE AUX_TABLE (
+  MT_KEY1 varchar(128) NOT NULL,
+  MT_KEY2 bigint NOT NULL,
+  MT_COMMENT varchar(255),
+  PRIMARY KEY(MT_KEY1, MT_KEY2)
+);
+

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/scripts/upgrade/postgres/hive-schema-1.3.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/hive-schema-1.3.0.postgres.sql b/metastore/scripts/upgrade/postgres/hive-schema-1.3.0.postgres.sql
index 9bb5765..1ea19c3 100644
--- a/metastore/scripts/upgrade/postgres/hive-schema-1.3.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/hive-schema-1.3.0.postgres.sql
@@ -1449,7 +1449,7 @@ GRANT ALL ON SCHEMA public TO PUBLIC;
 ------------------------------
 -- Transaction and lock tables
 ------------------------------
-\i hive-txn-schema-0.13.0.postgres.sql;
+\i hive-txn-schema-1.3.0.postgres.sql;
 
 -- -----------------------------------------------------------------
 -- Record schema version. Should be the last step in the init script

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/scripts/upgrade/postgres/hive-schema-2.0.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/hive-schema-2.0.0.postgres.sql b/metastore/scripts/upgrade/postgres/hive-schema-2.0.0.postgres.sql
index c749a29..4f034d7 100644
--- a/metastore/scripts/upgrade/postgres/hive-schema-2.0.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/hive-schema-2.0.0.postgres.sql
@@ -1449,7 +1449,7 @@ GRANT ALL ON SCHEMA public TO PUBLIC;
 ------------------------------
 -- Transaction and lock tables
 ------------------------------
-\i hive-txn-schema-0.13.0.postgres.sql;
+\i hive-txn-schema-2.0.0.postgres.sql;
 
 -- -----------------------------------------------------------------
 -- Record schema version. Should be the last step in the init script

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/scripts/upgrade/postgres/hive-schema-2.1.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/hive-schema-2.1.0.postgres.sql b/metastore/scripts/upgrade/postgres/hive-schema-2.1.0.postgres.sql
index efc0f0c..1db9993 100644
--- a/metastore/scripts/upgrade/postgres/hive-schema-2.1.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/hive-schema-2.1.0.postgres.sql
@@ -1449,7 +1449,7 @@ GRANT ALL ON SCHEMA public TO PUBLIC;
 ------------------------------
 -- Transaction and lock tables
 ------------------------------
-\i hive-txn-schema-0.13.0.postgres.sql;
+\i hive-txn-schema-2.0.0.postgres.sql;
 
 -- -----------------------------------------------------------------
 -- Record schema version. Should be the last step in the init script

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/scripts/upgrade/postgres/hive-txn-schema-1.3.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/hive-txn-schema-1.3.0.postgres.sql b/metastore/scripts/upgrade/postgres/hive-txn-schema-1.3.0.postgres.sql
new file mode 100644
index 0000000..b2fc1a8
--- /dev/null
+++ b/metastore/scripts/upgrade/postgres/hive-txn-schema-1.3.0.postgres.sql
@@ -0,0 +1,121 @@
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements.  See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License.  You may obtain a copy of the License at
+--
+--     http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+
+--
+-- Tables for transaction management
+-- 
+
+CREATE TABLE TXNS (
+  TXN_ID bigint PRIMARY KEY,
+  TXN_STATE char(1) NOT NULL,
+  TXN_STARTED bigint NOT NULL,
+  TXN_LAST_HEARTBEAT bigint NOT NULL,
+  TXN_USER varchar(128) NOT NULL,
+  TXN_HOST varchar(128) NOT NULL,
+  TXN_AGENT_INFO varchar(128),
+  TXN_META_INFO varchar(128),
+  TXN_HEARTBEAT_COUNT integer
+);
+
+CREATE TABLE TXN_COMPONENTS (
+  TC_TXNID bigint REFERENCES TXNS (TXN_ID),
+  TC_DATABASE varchar(128) NOT NULL,
+  TC_TABLE varchar(128),
+  TC_PARTITION varchar(767) DEFAULT NULL
+);
+
+CREATE TABLE COMPLETED_TXN_COMPONENTS (
+  CTC_TXNID bigint,
+  CTC_DATABASE varchar(128) NOT NULL,
+  CTC_TABLE varchar(128),
+  CTC_PARTITION varchar(767)
+);
+
+CREATE TABLE NEXT_TXN_ID (
+  NTXN_NEXT bigint NOT NULL
+);
+INSERT INTO NEXT_TXN_ID VALUES(1);
+
+CREATE TABLE HIVE_LOCKS (
+  HL_LOCK_EXT_ID bigint NOT NULL,
+  HL_LOCK_INT_ID bigint NOT NULL,
+  HL_TXNID bigint,
+  HL_DB varchar(128) NOT NULL,
+  HL_TABLE varchar(128),
+  HL_PARTITION varchar(767) DEFAULT NULL,
+  HL_LOCK_STATE char(1) NOT NULL,
+  HL_LOCK_TYPE char(1) NOT NULL,
+  HL_LAST_HEARTBEAT bigint NOT NULL,
+  HL_ACQUIRED_AT bigint,
+  HL_USER varchar(128) NOT NULL,
+  HL_HOST varchar(128) NOT NULL,
+  HL_HEARTBEAT_COUNT integer,
+  HL_AGENT_INFO varchar(128),
+  HL_BLOCKEDBY_EXT_ID bigint,
+  HL_BLOCKEDBY_INT_ID bigint,
+  PRIMARY KEY(HL_LOCK_EXT_ID, HL_LOCK_INT_ID)
+); 
+
+CREATE INDEX HL_TXNID_INDEX ON HIVE_LOCKS USING hash (HL_TXNID);
+
+CREATE TABLE NEXT_LOCK_ID (
+  NL_NEXT bigint NOT NULL
+);
+INSERT INTO NEXT_LOCK_ID VALUES(1);
+
+CREATE TABLE COMPACTION_QUEUE (
+  CQ_ID bigint PRIMARY KEY,
+  CQ_DATABASE varchar(128) NOT NULL,
+  CQ_TABLE varchar(128) NOT NULL,
+  CQ_PARTITION varchar(767),
+  CQ_STATE char(1) NOT NULL,
+  CQ_TYPE char(1) NOT NULL,
+  CQ_WORKER_ID varchar(128),
+  CQ_START bigint,
+  CQ_RUN_AS varchar(128),
+  CQ_HIGHEST_TXN_ID bigint,
+  CQ_META_INFO bytea,
+  CQ_HADOOP_JOB_ID varchar(32)
+);
+
+CREATE TABLE NEXT_COMPACTION_QUEUE_ID (
+  NCQ_NEXT bigint NOT NULL
+);
+INSERT INTO NEXT_COMPACTION_QUEUE_ID VALUES(1);
+
+CREATE TABLE COMPLETED_COMPACTIONS (
+  CC_ID bigint PRIMARY KEY,
+  CC_DATABASE varchar(128) NOT NULL,
+  CC_TABLE varchar(128) NOT NULL,
+  CC_PARTITION varchar(767),
+  CC_STATE char(1) NOT NULL,
+  CC_TYPE char(1) NOT NULL,
+  CC_WORKER_ID varchar(128),
+  CC_START bigint,
+  CC_END bigint,
+  CC_RUN_AS varchar(128),
+  CC_HIGHEST_TXN_ID bigint,
+  CC_META_INFO bytea,
+  CC_HADOOP_JOB_ID varchar(32)
+);
+
+CREATE TABLE AUX_TABLE (
+  MT_KEY1 varchar(128) NOT NULL,
+  MT_KEY2 bigint NOT NULL,
+  MT_COMMENT varchar(255),
+  PRIMARY KEY(MT_KEY1, MT_KEY2)
+);
+
+

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/scripts/upgrade/postgres/hive-txn-schema-2.0.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/hive-txn-schema-2.0.0.postgres.sql b/metastore/scripts/upgrade/postgres/hive-txn-schema-2.0.0.postgres.sql
new file mode 100644
index 0000000..b2fc1a8
--- /dev/null
+++ b/metastore/scripts/upgrade/postgres/hive-txn-schema-2.0.0.postgres.sql
@@ -0,0 +1,121 @@
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements.  See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License.  You may obtain a copy of the License at
+--
+--     http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+
+--
+-- Tables for transaction management
+-- 
+
+CREATE TABLE TXNS (
+  TXN_ID bigint PRIMARY KEY,
+  TXN_STATE char(1) NOT NULL,
+  TXN_STARTED bigint NOT NULL,
+  TXN_LAST_HEARTBEAT bigint NOT NULL,
+  TXN_USER varchar(128) NOT NULL,
+  TXN_HOST varchar(128) NOT NULL,
+  TXN_AGENT_INFO varchar(128),
+  TXN_META_INFO varchar(128),
+  TXN_HEARTBEAT_COUNT integer
+);
+
+CREATE TABLE TXN_COMPONENTS (
+  TC_TXNID bigint REFERENCES TXNS (TXN_ID),
+  TC_DATABASE varchar(128) NOT NULL,
+  TC_TABLE varchar(128),
+  TC_PARTITION varchar(767) DEFAULT NULL
+);
+
+CREATE TABLE COMPLETED_TXN_COMPONENTS (
+  CTC_TXNID bigint,
+  CTC_DATABASE varchar(128) NOT NULL,
+  CTC_TABLE varchar(128),
+  CTC_PARTITION varchar(767)
+);
+
+CREATE TABLE NEXT_TXN_ID (
+  NTXN_NEXT bigint NOT NULL
+);
+INSERT INTO NEXT_TXN_ID VALUES(1);
+
+CREATE TABLE HIVE_LOCKS (
+  HL_LOCK_EXT_ID bigint NOT NULL,
+  HL_LOCK_INT_ID bigint NOT NULL,
+  HL_TXNID bigint,
+  HL_DB varchar(128) NOT NULL,
+  HL_TABLE varchar(128),
+  HL_PARTITION varchar(767) DEFAULT NULL,
+  HL_LOCK_STATE char(1) NOT NULL,
+  HL_LOCK_TYPE char(1) NOT NULL,
+  HL_LAST_HEARTBEAT bigint NOT NULL,
+  HL_ACQUIRED_AT bigint,
+  HL_USER varchar(128) NOT NULL,
+  HL_HOST varchar(128) NOT NULL,
+  HL_HEARTBEAT_COUNT integer,
+  HL_AGENT_INFO varchar(128),
+  HL_BLOCKEDBY_EXT_ID bigint,
+  HL_BLOCKEDBY_INT_ID bigint,
+  PRIMARY KEY(HL_LOCK_EXT_ID, HL_LOCK_INT_ID)
+); 
+
+CREATE INDEX HL_TXNID_INDEX ON HIVE_LOCKS USING hash (HL_TXNID);
+
+CREATE TABLE NEXT_LOCK_ID (
+  NL_NEXT bigint NOT NULL
+);
+INSERT INTO NEXT_LOCK_ID VALUES(1);
+
+CREATE TABLE COMPACTION_QUEUE (
+  CQ_ID bigint PRIMARY KEY,
+  CQ_DATABASE varchar(128) NOT NULL,
+  CQ_TABLE varchar(128) NOT NULL,
+  CQ_PARTITION varchar(767),
+  CQ_STATE char(1) NOT NULL,
+  CQ_TYPE char(1) NOT NULL,
+  CQ_WORKER_ID varchar(128),
+  CQ_START bigint,
+  CQ_RUN_AS varchar(128),
+  CQ_HIGHEST_TXN_ID bigint,
+  CQ_META_INFO bytea,
+  CQ_HADOOP_JOB_ID varchar(32)
+);
+
+CREATE TABLE NEXT_COMPACTION_QUEUE_ID (
+  NCQ_NEXT bigint NOT NULL
+);
+INSERT INTO NEXT_COMPACTION_QUEUE_ID VALUES(1);
+
+CREATE TABLE COMPLETED_COMPACTIONS (
+  CC_ID bigint PRIMARY KEY,
+  CC_DATABASE varchar(128) NOT NULL,
+  CC_TABLE varchar(128) NOT NULL,
+  CC_PARTITION varchar(767),
+  CC_STATE char(1) NOT NULL,
+  CC_TYPE char(1) NOT NULL,
+  CC_WORKER_ID varchar(128),
+  CC_START bigint,
+  CC_END bigint,
+  CC_RUN_AS varchar(128),
+  CC_HIGHEST_TXN_ID bigint,
+  CC_META_INFO bytea,
+  CC_HADOOP_JOB_ID varchar(32)
+);
+
+CREATE TABLE AUX_TABLE (
+  MT_KEY1 varchar(128) NOT NULL,
+  MT_KEY2 bigint NOT NULL,
+  MT_COMMENT varchar(255),
+  PRIMARY KEY(MT_KEY1, MT_KEY2)
+);
+
+

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/scripts/upgrade/postgres/upgrade-1.2.0-to-1.3.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/upgrade-1.2.0-to-1.3.0.postgres.sql b/metastore/scripts/upgrade/postgres/upgrade-1.2.0-to-1.3.0.postgres.sql
index b1ec241..6eb5620 100644
--- a/metastore/scripts/upgrade/postgres/upgrade-1.2.0-to-1.3.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/upgrade-1.2.0-to-1.3.0.postgres.sql
@@ -1,6 +1,16 @@
 SELECT 'Upgrading MetaStore schema from 1.2.0 to 1.3.0';
 
 \i 021-HIVE-11970.postgres.sql;
+\i 022-HIVE-12807.postgres.sql;
+\i 023-HIVE-12814.postgres.sql;
+\i 024-HIVE-12816.postgres.sql;
+\i 025-HIVE-12818.postgres.sql;
+\i 026-HIVE-12819.postgres.sql;
+\i 027-HIVE-12821.postgres.sql;
+\i 028-HIVE-12822.postgres.sql;
+\i 029-HIVE-12823.postgres.sql;
+\i 030-HIVE-12831.postgres.sql;
+\i 031-HIVE-12832.postgres.sql;
 
 UPDATE "VERSION" SET "SCHEMA_VERSION"='1.3.0', "VERSION_COMMENT"='Hive release version 1.3.0' where "VER_ID"=1;
 SELECT 'Finished upgrading MetaStore schema from 1.2.0 to 1.3.0';

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/scripts/upgrade/postgres/upgrade-1.2.0-to-2.0.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/upgrade-1.2.0-to-2.0.0.postgres.sql b/metastore/scripts/upgrade/postgres/upgrade-1.2.0-to-2.0.0.postgres.sql
index 628444c..77438c9 100644
--- a/metastore/scripts/upgrade/postgres/upgrade-1.2.0-to-2.0.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/upgrade-1.2.0-to-2.0.0.postgres.sql
@@ -1,6 +1,16 @@
 SELECT 'Upgrading MetaStore schema from 1.2.0 to 2.0.0';
 
 \i 021-HIVE-11970.postgres.sql;
+\i 022-HIVE-12807.postgres.sql;
+\i 023-HIVE-12814.postgres.sql;
+\i 024-HIVE-12816.postgres.sql;
+\i 025-HIVE-12818.postgres.sql;
+\i 026-HIVE-12819.postgres.sql;
+\i 027-HIVE-12821.postgres.sql;
+\i 028-HIVE-12822.postgres.sql;
+\i 029-HIVE-12823.postgres.sql;
+\i 030-HIVE-12831.postgres.sql;
+\i 031-HIVE-12832.postgres.sql;
 
 UPDATE "VERSION" SET "SCHEMA_VERSION"='2.0.0', "VERSION_COMMENT"='Hive release version 2.0.0' where "VER_ID"=1;
 SELECT 'Finished upgrading MetaStore schema from 1.2.0 to 2.0.0';

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp b/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
index d997e33..0203b06 100644
--- a/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
+++ b/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
@@ -9975,6 +9975,21 @@ void TxnInfo::__set_hostname(const std::string& val) {
   this->hostname = val;
 }
 
+void TxnInfo::__set_agentInfo(const std::string& val) {
+  this->agentInfo = val;
+__isset.agentInfo = true;
+}
+
+void TxnInfo::__set_heartbeatCount(const int32_t val) {
+  this->heartbeatCount = val;
+__isset.heartbeatCount = true;
+}
+
+void TxnInfo::__set_metaInfo(const std::string& val) {
+  this->metaInfo = val;
+__isset.metaInfo = true;
+}
+
 uint32_t TxnInfo::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -10034,6 +10049,30 @@ uint32_t TxnInfo::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->agentInfo);
+          this->__isset.agentInfo = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->heartbeatCount);
+          this->__isset.heartbeatCount = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->metaInfo);
+          this->__isset.metaInfo = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -10075,6 +10114,21 @@ uint32_t TxnInfo::write(::apache::thrift::protocol::TProtocol* oprot) const {
   xfer += oprot->writeString(this->hostname);
   xfer += oprot->writeFieldEnd();
 
+  if (this->__isset.agentInfo) {
+    xfer += oprot->writeFieldBegin("agentInfo", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->agentInfo);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.heartbeatCount) {
+    xfer += oprot->writeFieldBegin("heartbeatCount", ::apache::thrift::protocol::T_I32, 6);
+    xfer += oprot->writeI32(this->heartbeatCount);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.metaInfo) {
+    xfer += oprot->writeFieldBegin("metaInfo", ::apache::thrift::protocol::T_STRING, 7);
+    xfer += oprot->writeString(this->metaInfo);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -10086,6 +10140,10 @@ void swap(TxnInfo &a, TxnInfo &b) {
   swap(a.state, b.state);
   swap(a.user, b.user);
   swap(a.hostname, b.hostname);
+  swap(a.agentInfo, b.agentInfo);
+  swap(a.heartbeatCount, b.heartbeatCount);
+  swap(a.metaInfo, b.metaInfo);
+  swap(a.__isset, b.__isset);
 }
 
 TxnInfo::TxnInfo(const TxnInfo& other465) {
@@ -10093,12 +10151,20 @@ TxnInfo::TxnInfo(const TxnInfo& other465) {
   state = other465.state;
   user = other465.user;
   hostname = other465.hostname;
+  agentInfo = other465.agentInfo;
+  heartbeatCount = other465.heartbeatCount;
+  metaInfo = other465.metaInfo;
+  __isset = other465.__isset;
 }
 TxnInfo& TxnInfo::operator=(const TxnInfo& other466) {
   id = other466.id;
   state = other466.state;
   user = other466.user;
   hostname = other466.hostname;
+  agentInfo = other466.agentInfo;
+  heartbeatCount = other466.heartbeatCount;
+  metaInfo = other466.metaInfo;
+  __isset = other466.__isset;
   return *this;
 }
 void TxnInfo::printTo(std::ostream& out) const {
@@ -10108,6 +10174,9 @@ void TxnInfo::printTo(std::ostream& out) const {
   out << ", " << "state=" << to_string(state);
   out << ", " << "user=" << to_string(user);
   out << ", " << "hostname=" << to_string(hostname);
+  out << ", " << "agentInfo="; (__isset.agentInfo ? (out << to_string(agentInfo)) : (out << "<null>"));
+  out << ", " << "heartbeatCount="; (__isset.heartbeatCount ? (out << to_string(heartbeatCount)) : (out << "<null>"));
+  out << ", " << "metaInfo="; (__isset.metaInfo ? (out << to_string(metaInfo)) : (out << "<null>"));
   out << ")";
 }
 
@@ -10387,6 +10456,11 @@ void OpenTxnRequest::__set_hostname(const std::string& val) {
   this->hostname = val;
 }
 
+void OpenTxnRequest::__set_agentInfo(const std::string& val) {
+  this->agentInfo = val;
+__isset.agentInfo = true;
+}
+
 uint32_t OpenTxnRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -10435,6 +10509,14 @@ uint32_t OpenTxnRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->agentInfo);
+          this->__isset.agentInfo = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -10470,6 +10552,11 @@ uint32_t OpenTxnRequest::write(::apache::thrift::protocol::TProtocol* oprot) con
   xfer += oprot->writeString(this->hostname);
   xfer += oprot->writeFieldEnd();
 
+  if (this->__isset.agentInfo) {
+    xfer += oprot->writeFieldBegin("agentInfo", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->agentInfo);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -10480,17 +10567,23 @@ void swap(OpenTxnRequest &a, OpenTxnRequest &b) {
   swap(a.num_txns, b.num_txns);
   swap(a.user, b.user);
   swap(a.hostname, b.hostname);
+  swap(a.agentInfo, b.agentInfo);
+  swap(a.__isset, b.__isset);
 }
 
 OpenTxnRequest::OpenTxnRequest(const OpenTxnRequest& other484) {
   num_txns = other484.num_txns;
   user = other484.user;
   hostname = other484.hostname;
+  agentInfo = other484.agentInfo;
+  __isset = other484.__isset;
 }
 OpenTxnRequest& OpenTxnRequest::operator=(const OpenTxnRequest& other485) {
   num_txns = other485.num_txns;
   user = other485.user;
   hostname = other485.hostname;
+  agentInfo = other485.agentInfo;
+  __isset = other485.__isset;
   return *this;
 }
 void OpenTxnRequest::printTo(std::ostream& out) const {
@@ -10499,6 +10592,7 @@ void OpenTxnRequest::printTo(std::ostream& out) const {
   out << "num_txns=" << to_string(num_txns);
   out << ", " << "user=" << to_string(user);
   out << ", " << "hostname=" << to_string(hostname);
+  out << ", " << "agentInfo="; (__isset.agentInfo ? (out << to_string(agentInfo)) : (out << "<null>"));
   out << ")";
 }
 
@@ -10985,6 +11079,11 @@ void LockRequest::__set_hostname(const std::string& val) {
   this->hostname = val;
 }
 
+void LockRequest::__set_agentInfo(const std::string& val) {
+  this->agentInfo = val;
+__isset.agentInfo = true;
+}
+
 uint32_t LockRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -11053,6 +11152,14 @@ uint32_t LockRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->agentInfo);
+          this->__isset.agentInfo = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -11101,6 +11208,11 @@ uint32_t LockRequest::write(::apache::thrift::protocol::TProtocol* oprot) const
   xfer += oprot->writeString(this->hostname);
   xfer += oprot->writeFieldEnd();
 
+  if (this->__isset.agentInfo) {
+    xfer += oprot->writeFieldBegin("agentInfo", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->agentInfo);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -11112,6 +11224,7 @@ void swap(LockRequest &a, LockRequest &b) {
   swap(a.txnid, b.txnid);
   swap(a.user, b.user);
   swap(a.hostname, b.hostname);
+  swap(a.agentInfo, b.agentInfo);
   swap(a.__isset, b.__isset);
 }
 
@@ -11120,6 +11233,7 @@ LockRequest::LockRequest(const LockRequest& other508) {
   txnid = other508.txnid;
   user = other508.user;
   hostname = other508.hostname;
+  agentInfo = other508.agentInfo;
   __isset = other508.__isset;
 }
 LockRequest& LockRequest::operator=(const LockRequest& other509) {
@@ -11127,6 +11241,7 @@ LockRequest& LockRequest::operator=(const LockRequest& other509) {
   txnid = other509.txnid;
   user = other509.user;
   hostname = other509.hostname;
+  agentInfo = other509.agentInfo;
   __isset = other509.__isset;
   return *this;
 }
@@ -11137,6 +11252,7 @@ void LockRequest::printTo(std::ostream& out) const {
   out << ", " << "txnid="; (__isset.txnid ? (out << to_string(txnid)) : (out << "<null>"));
   out << ", " << "user=" << to_string(user);
   out << ", " << "hostname=" << to_string(hostname);
+  out << ", " << "agentInfo="; (__isset.agentInfo ? (out << to_string(agentInfo)) : (out << "<null>"));
   out << ")";
 }
 
@@ -11260,6 +11376,16 @@ void CheckLockRequest::__set_lockid(const int64_t val) {
   this->lockid = val;
 }
 
+void CheckLockRequest::__set_txnid(const int64_t val) {
+  this->txnid = val;
+__isset.txnid = true;
+}
+
+void CheckLockRequest::__set_elapsed_ms(const int64_t val) {
+  this->elapsed_ms = val;
+__isset.elapsed_ms = true;
+}
+
 uint32_t CheckLockRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -11290,6 +11416,22 @@ uint32_t CheckLockRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->txnid);
+          this->__isset.txnid = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->elapsed_ms);
+          this->__isset.elapsed_ms = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -11313,6 +11455,16 @@ uint32_t CheckLockRequest::write(::apache::thrift::protocol::TProtocol* oprot) c
   xfer += oprot->writeI64(this->lockid);
   xfer += oprot->writeFieldEnd();
 
+  if (this->__isset.txnid) {
+    xfer += oprot->writeFieldBegin("txnid", ::apache::thrift::protocol::T_I64, 2);
+    xfer += oprot->writeI64(this->txnid);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.elapsed_ms) {
+    xfer += oprot->writeFieldBegin("elapsed_ms", ::apache::thrift::protocol::T_I64, 3);
+    xfer += oprot->writeI64(this->elapsed_ms);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -11321,19 +11473,30 @@ uint32_t CheckLockRequest::write(::apache::thrift::protocol::TProtocol* oprot) c
 void swap(CheckLockRequest &a, CheckLockRequest &b) {
   using ::std::swap;
   swap(a.lockid, b.lockid);
+  swap(a.txnid, b.txnid);
+  swap(a.elapsed_ms, b.elapsed_ms);
+  swap(a.__isset, b.__isset);
 }
 
 CheckLockRequest::CheckLockRequest(const CheckLockRequest& other513) {
   lockid = other513.lockid;
+  txnid = other513.txnid;
+  elapsed_ms = other513.elapsed_ms;
+  __isset = other513.__isset;
 }
 CheckLockRequest& CheckLockRequest::operator=(const CheckLockRequest& other514) {
   lockid = other514.lockid;
+  txnid = other514.txnid;
+  elapsed_ms = other514.elapsed_ms;
+  __isset = other514.__isset;
   return *this;
 }
 void CheckLockRequest::printTo(std::ostream& out) const {
   using ::apache::thrift::to_string;
   out << "CheckLockRequest(";
   out << "lockid=" << to_string(lockid);
+  out << ", " << "txnid="; (__isset.txnid ? (out << to_string(txnid)) : (out << "<null>"));
+  out << ", " << "elapsed_ms="; (__isset.elapsed_ms ? (out << to_string(elapsed_ms)) : (out << "<null>"));
   out << ")";
 }
 
@@ -11428,6 +11591,26 @@ ShowLocksRequest::~ShowLocksRequest() throw() {
 }
 
 
+void ShowLocksRequest::__set_dbname(const std::string& val) {
+  this->dbname = val;
+__isset.dbname = true;
+}
+
+void ShowLocksRequest::__set_tablename(const std::string& val) {
+  this->tablename = val;
+__isset.tablename = true;
+}
+
+void ShowLocksRequest::__set_partname(const std::string& val) {
+  this->partname = val;
+__isset.partname = true;
+}
+
+void ShowLocksRequest::__set_isExtended(const bool val) {
+  this->isExtended = val;
+__isset.isExtended = true;
+}
+
 uint32_t ShowLocksRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -11447,7 +11630,44 @@ uint32_t ShowLocksRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
     if (ftype == ::apache::thrift::protocol::T_STOP) {
       break;
     }
-    xfer += iprot->skip(ftype);
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->dbname);
+          this->__isset.dbname = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tablename);
+          this->__isset.tablename = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->partname);
+          this->__isset.partname = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->isExtended);
+          this->__isset.isExtended = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
     xfer += iprot->readFieldEnd();
   }
 
@@ -11461,6 +11681,26 @@ uint32_t ShowLocksRequest::write(::apache::thrift::protocol::TProtocol* oprot) c
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("ShowLocksRequest");
 
+  if (this->__isset.dbname) {
+    xfer += oprot->writeFieldBegin("dbname", ::apache::thrift::protocol::T_STRING, 1);
+    xfer += oprot->writeString(this->dbname);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tablename) {
+    xfer += oprot->writeFieldBegin("tablename", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->tablename);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.partname) {
+    xfer += oprot->writeFieldBegin("partname", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->partname);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.isExtended) {
+    xfer += oprot->writeFieldBegin("isExtended", ::apache::thrift::protocol::T_BOOL, 4);
+    xfer += oprot->writeBool(this->isExtended);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -11468,20 +11708,35 @@ uint32_t ShowLocksRequest::write(::apache::thrift::protocol::TProtocol* oprot) c
 
 void swap(ShowLocksRequest &a, ShowLocksRequest &b) {
   using ::std::swap;
-  (void) a;
-  (void) b;
+  swap(a.dbname, b.dbname);
+  swap(a.tablename, b.tablename);
+  swap(a.partname, b.partname);
+  swap(a.isExtended, b.isExtended);
+  swap(a.__isset, b.__isset);
 }
 
 ShowLocksRequest::ShowLocksRequest(const ShowLocksRequest& other517) {
-  (void) other517;
+  dbname = other517.dbname;
+  tablename = other517.tablename;
+  partname = other517.partname;
+  isExtended = other517.isExtended;
+  __isset = other517.__isset;
 }
 ShowLocksRequest& ShowLocksRequest::operator=(const ShowLocksRequest& other518) {
-  (void) other518;
+  dbname = other518.dbname;
+  tablename = other518.tablename;
+  partname = other518.partname;
+  isExtended = other518.isExtended;
+  __isset = other518.__isset;
   return *this;
 }
 void ShowLocksRequest::printTo(std::ostream& out) const {
   using ::apache::thrift::to_string;
   out << "ShowLocksRequest(";
+  out << "dbname="; (__isset.dbname ? (out << to_string(dbname)) : (out << "<null>"));
+  out << ", " << "tablename="; (__isset.tablename ? (out << to_string(tablename)) : (out << "<null>"));
+  out << ", " << "partname="; (__isset.partname ? (out << to_string(partname)) : (out << "<null>"));
+  out << ", " << "isExtended="; (__isset.isExtended ? (out << to_string(isExtended)) : (out << "<null>"));
   out << ")";
 }
 
@@ -11538,6 +11793,31 @@ void ShowLocksResponseElement::__set_hostname(const std::string& val) {
   this->hostname = val;
 }
 
+void ShowLocksResponseElement::__set_heartbeatCount(const int32_t val) {
+  this->heartbeatCount = val;
+__isset.heartbeatCount = true;
+}
+
+void ShowLocksResponseElement::__set_agentInfo(const std::string& val) {
+  this->agentInfo = val;
+__isset.agentInfo = true;
+}
+
+void ShowLocksResponseElement::__set_blockedByExtId(const int64_t val) {
+  this->blockedByExtId = val;
+__isset.blockedByExtId = true;
+}
+
+void ShowLocksResponseElement::__set_blockedByIntId(const int64_t val) {
+  this->blockedByIntId = val;
+__isset.blockedByIntId = true;
+}
+
+void ShowLocksResponseElement::__set_lockIdInternal(const int64_t val) {
+  this->lockIdInternal = val;
+__isset.lockIdInternal = true;
+}
+
 uint32_t ShowLocksResponseElement::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -11658,6 +11938,46 @@ uint32_t ShowLocksResponseElement::read(::apache::thrift::protocol::TProtocol* i
           xfer += iprot->skip(ftype);
         }
         break;
+      case 12:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->heartbeatCount);
+          this->__isset.heartbeatCount = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 13:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->agentInfo);
+          this->__isset.agentInfo = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 14:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->blockedByExtId);
+          this->__isset.blockedByExtId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 15:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->blockedByIntId);
+          this->__isset.blockedByIntId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 16:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->lockIdInternal);
+          this->__isset.lockIdInternal = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -11737,6 +12057,31 @@ uint32_t ShowLocksResponseElement::write(::apache::thrift::protocol::TProtocol*
   xfer += oprot->writeString(this->hostname);
   xfer += oprot->writeFieldEnd();
 
+  if (this->__isset.heartbeatCount) {
+    xfer += oprot->writeFieldBegin("heartbeatCount", ::apache::thrift::protocol::T_I32, 12);
+    xfer += oprot->writeI32(this->heartbeatCount);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.agentInfo) {
+    xfer += oprot->writeFieldBegin("agentInfo", ::apache::thrift::protocol::T_STRING, 13);
+    xfer += oprot->writeString(this->agentInfo);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.blockedByExtId) {
+    xfer += oprot->writeFieldBegin("blockedByExtId", ::apache::thrift::protocol::T_I64, 14);
+    xfer += oprot->writeI64(this->blockedByExtId);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.blockedByIntId) {
+    xfer += oprot->writeFieldBegin("blockedByIntId", ::apache::thrift::protocol::T_I64, 15);
+    xfer += oprot->writeI64(this->blockedByIntId);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.lockIdInternal) {
+    xfer += oprot->writeFieldBegin("lockIdInternal", ::apache::thrift::protocol::T_I64, 16);
+    xfer += oprot->writeI64(this->lockIdInternal);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -11755,6 +12100,11 @@ void swap(ShowLocksResponseElement &a, ShowLocksResponseElement &b) {
   swap(a.acquiredat, b.acquiredat);
   swap(a.user, b.user);
   swap(a.hostname, b.hostname);
+  swap(a.heartbeatCount, b.heartbeatCount);
+  swap(a.agentInfo, b.agentInfo);
+  swap(a.blockedByExtId, b.blockedByExtId);
+  swap(a.blockedByIntId, b.blockedByIntId);
+  swap(a.lockIdInternal, b.lockIdInternal);
   swap(a.__isset, b.__isset);
 }
 
@@ -11770,6 +12120,11 @@ ShowLocksResponseElement::ShowLocksResponseElement(const ShowLocksResponseElemen
   acquiredat = other521.acquiredat;
   user = other521.user;
   hostname = other521.hostname;
+  heartbeatCount = other521.heartbeatCount;
+  agentInfo = other521.agentInfo;
+  blockedByExtId = other521.blockedByExtId;
+  blockedByIntId = other521.blockedByIntId;
+  lockIdInternal = other521.lockIdInternal;
   __isset = other521.__isset;
 }
 ShowLocksResponseElement& ShowLocksResponseElement::operator=(const ShowLocksResponseElement& other522) {
@@ -11784,6 +12139,11 @@ ShowLocksResponseElement& ShowLocksResponseElement::operator=(const ShowLocksRes
   acquiredat = other522.acquiredat;
   user = other522.user;
   hostname = other522.hostname;
+  heartbeatCount = other522.heartbeatCount;
+  agentInfo = other522.agentInfo;
+  blockedByExtId = other522.blockedByExtId;
+  blockedByIntId = other522.blockedByIntId;
+  lockIdInternal = other522.lockIdInternal;
   __isset = other522.__isset;
   return *this;
 }
@@ -11801,6 +12161,11 @@ void ShowLocksResponseElement::printTo(std::ostream& out) const {
   out << ", " << "acquiredat="; (__isset.acquiredat ? (out << to_string(acquiredat)) : (out << "<null>"));
   out << ", " << "user=" << to_string(user);
   out << ", " << "hostname=" << to_string(hostname);
+  out << ", " << "heartbeatCount="; (__isset.heartbeatCount ? (out << to_string(heartbeatCount)) : (out << "<null>"));
+  out << ", " << "agentInfo="; (__isset.agentInfo ? (out << to_string(agentInfo)) : (out << "<null>"));
+  out << ", " << "blockedByExtId="; (__isset.blockedByExtId ? (out << to_string(blockedByExtId)) : (out << "<null>"));
+  out << ", " << "blockedByIntId="; (__isset.blockedByIntId ? (out << to_string(blockedByIntId)) : (out << "<null>"));
+  out << ", " << "lockIdInternal="; (__isset.lockIdInternal ? (out << to_string(lockIdInternal)) : (out << "<null>"));
   out << ")";
 }
 
@@ -12564,6 +12929,26 @@ void ShowCompactResponseElement::__set_runAs(const std::string& val) {
 __isset.runAs = true;
 }
 
+void ShowCompactResponseElement::__set_hightestTxnId(const int64_t val) {
+  this->hightestTxnId = val;
+__isset.hightestTxnId = true;
+}
+
+void ShowCompactResponseElement::__set_metaInfo(const std::string& val) {
+  this->metaInfo = val;
+__isset.metaInfo = true;
+}
+
+void ShowCompactResponseElement::__set_endTime(const int64_t val) {
+  this->endTime = val;
+__isset.endTime = true;
+}
+
+void ShowCompactResponseElement::__set_hadoopJobId(const std::string& val) {
+  this->hadoopJobId = val;
+__isset.hadoopJobId = true;
+}
+
 uint32_t ShowCompactResponseElement::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
@@ -12655,6 +13040,38 @@ uint32_t ShowCompactResponseElement::read(::apache::thrift::protocol::TProtocol*
           xfer += iprot->skip(ftype);
         }
         break;
+      case 9:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->hightestTxnId);
+          this->__isset.hightestTxnId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->metaInfo);
+          this->__isset.metaInfo = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 11:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->endTime);
+          this->__isset.endTime = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 12:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->hadoopJobId);
+          this->__isset.hadoopJobId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -12716,6 +13133,26 @@ uint32_t ShowCompactResponseElement::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeString(this->runAs);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.hightestTxnId) {
+    xfer += oprot->writeFieldBegin("hightestTxnId", ::apache::thrift::protocol::T_I64, 9);
+    xfer += oprot->writeI64(this->hightestTxnId);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.metaInfo) {
+    xfer += oprot->writeFieldBegin("metaInfo", ::apache::thrift::protocol::T_STRING, 10);
+    xfer += oprot->writeString(this->metaInfo);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.endTime) {
+    xfer += oprot->writeFieldBegin("endTime", ::apache::thrift::protocol::T_I64, 11);
+    xfer += oprot->writeI64(this->endTime);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.hadoopJobId) {
+    xfer += oprot->writeFieldBegin("hadoopJobId", ::apache::thrift::protocol::T_STRING, 12);
+    xfer += oprot->writeString(this->hadoopJobId);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -12731,6 +13168,10 @@ void swap(ShowCompactResponseElement &a, ShowCompactResponseElement &b) {
   swap(a.workerid, b.workerid);
   swap(a.start, b.start);
   swap(a.runAs, b.runAs);
+  swap(a.hightestTxnId, b.hightestTxnId);
+  swap(a.metaInfo, b.metaInfo);
+  swap(a.endTime, b.endTime);
+  swap(a.hadoopJobId, b.hadoopJobId);
   swap(a.__isset, b.__isset);
 }
 
@@ -12743,6 +13184,10 @@ ShowCompactResponseElement::ShowCompactResponseElement(const ShowCompactResponse
   workerid = other557.workerid;
   start = other557.start;
   runAs = other557.runAs;
+  hightestTxnId = other557.hightestTxnId;
+  metaInfo = other557.metaInfo;
+  endTime = other557.endTime;
+  hadoopJobId = other557.hadoopJobId;
   __isset = other557.__isset;
 }
 ShowCompactResponseElement& ShowCompactResponseElement::operator=(const ShowCompactResponseElement& other558) {
@@ -12754,6 +13199,10 @@ ShowCompactResponseElement& ShowCompactResponseElement::operator=(const ShowComp
   workerid = other558.workerid;
   start = other558.start;
   runAs = other558.runAs;
+  hightestTxnId = other558.hightestTxnId;
+  metaInfo = other558.metaInfo;
+  endTime = other558.endTime;
+  hadoopJobId = other558.hadoopJobId;
   __isset = other558.__isset;
   return *this;
 }
@@ -12768,6 +13217,10 @@ void ShowCompactResponseElement::printTo(std::ostream& out) const {
   out << ", " << "workerid="; (__isset.workerid ? (out << to_string(workerid)) : (out << "<null>"));
   out << ", " << "start="; (__isset.start ? (out << to_string(start)) : (out << "<null>"));
   out << ", " << "runAs="; (__isset.runAs ? (out << to_string(runAs)) : (out << "<null>"));
+  out << ", " << "hightestTxnId="; (__isset.hightestTxnId ? (out << to_string(hightestTxnId)) : (out << "<null>"));
+  out << ", " << "metaInfo="; (__isset.metaInfo ? (out << to_string(metaInfo)) : (out << "<null>"));
+  out << ", " << "endTime="; (__isset.endTime ? (out << to_string(endTime)) : (out << "<null>"));
+  out << ", " << "hadoopJobId="; (__isset.hadoopJobId ? (out << to_string(hadoopJobId)) : (out << "<null>"));
   out << ")";
 }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h b/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
index 97d3362..ce1d7da 100644
--- a/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
+++ b/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
@@ -4104,13 +4104,19 @@ inline std::ostream& operator<<(std::ostream& out, const Function& obj)
   return out;
 }
 
+typedef struct _TxnInfo__isset {
+  _TxnInfo__isset() : agentInfo(true), heartbeatCount(true), metaInfo(false) {}
+  bool agentInfo :1;
+  bool heartbeatCount :1;
+  bool metaInfo :1;
+} _TxnInfo__isset;
 
 class TxnInfo {
  public:
 
   TxnInfo(const TxnInfo&);
   TxnInfo& operator=(const TxnInfo&);
-  TxnInfo() : id(0), state((TxnState::type)0), user(), hostname() {
+  TxnInfo() : id(0), state((TxnState::type)0), user(), hostname(), agentInfo("Unknown"), heartbeatCount(0), metaInfo() {
   }
 
   virtual ~TxnInfo() throw();
@@ -4118,6 +4124,11 @@ class TxnInfo {
   TxnState::type state;
   std::string user;
   std::string hostname;
+  std::string agentInfo;
+  int32_t heartbeatCount;
+  std::string metaInfo;
+
+  _TxnInfo__isset __isset;
 
   void __set_id(const int64_t val);
 
@@ -4127,6 +4138,12 @@ class TxnInfo {
 
   void __set_hostname(const std::string& val);
 
+  void __set_agentInfo(const std::string& val);
+
+  void __set_heartbeatCount(const int32_t val);
+
+  void __set_metaInfo(const std::string& val);
+
   bool operator == (const TxnInfo & rhs) const
   {
     if (!(id == rhs.id))
@@ -4137,6 +4154,18 @@ class TxnInfo {
       return false;
     if (!(hostname == rhs.hostname))
       return false;
+    if (__isset.agentInfo != rhs.__isset.agentInfo)
+      return false;
+    else if (__isset.agentInfo && !(agentInfo == rhs.agentInfo))
+      return false;
+    if (__isset.heartbeatCount != rhs.__isset.heartbeatCount)
+      return false;
+    else if (__isset.heartbeatCount && !(heartbeatCount == rhs.heartbeatCount))
+      return false;
+    if (__isset.metaInfo != rhs.__isset.metaInfo)
+      return false;
+    else if (__isset.metaInfo && !(metaInfo == rhs.metaInfo))
+      return false;
     return true;
   }
   bool operator != (const TxnInfo &rhs) const {
@@ -4249,19 +4278,26 @@ inline std::ostream& operator<<(std::ostream& out, const GetOpenTxnsResponse& ob
   return out;
 }
 
+typedef struct _OpenTxnRequest__isset {
+  _OpenTxnRequest__isset() : agentInfo(true) {}
+  bool agentInfo :1;
+} _OpenTxnRequest__isset;
 
 class OpenTxnRequest {
  public:
 
   OpenTxnRequest(const OpenTxnRequest&);
   OpenTxnRequest& operator=(const OpenTxnRequest&);
-  OpenTxnRequest() : num_txns(0), user(), hostname() {
+  OpenTxnRequest() : num_txns(0), user(), hostname(), agentInfo("Unknown") {
   }
 
   virtual ~OpenTxnRequest() throw();
   int32_t num_txns;
   std::string user;
   std::string hostname;
+  std::string agentInfo;
+
+  _OpenTxnRequest__isset __isset;
 
   void __set_num_txns(const int32_t val);
 
@@ -4269,6 +4305,8 @@ class OpenTxnRequest {
 
   void __set_hostname(const std::string& val);
 
+  void __set_agentInfo(const std::string& val);
+
   bool operator == (const OpenTxnRequest & rhs) const
   {
     if (!(num_txns == rhs.num_txns))
@@ -4277,6 +4315,10 @@ class OpenTxnRequest {
       return false;
     if (!(hostname == rhs.hostname))
       return false;
+    if (__isset.agentInfo != rhs.__isset.agentInfo)
+      return false;
+    else if (__isset.agentInfo && !(agentInfo == rhs.agentInfo))
+      return false;
     return true;
   }
   bool operator != (const OpenTxnRequest &rhs) const {
@@ -4491,8 +4533,9 @@ inline std::ostream& operator<<(std::ostream& out, const LockComponent& obj)
 }
 
 typedef struct _LockRequest__isset {
-  _LockRequest__isset() : txnid(false) {}
+  _LockRequest__isset() : txnid(false), agentInfo(true) {}
   bool txnid :1;
+  bool agentInfo :1;
 } _LockRequest__isset;
 
 class LockRequest {
@@ -4500,7 +4543,7 @@ class LockRequest {
 
   LockRequest(const LockRequest&);
   LockRequest& operator=(const LockRequest&);
-  LockRequest() : txnid(0), user(), hostname() {
+  LockRequest() : txnid(0), user(), hostname(), agentInfo("Unknown") {
   }
 
   virtual ~LockRequest() throw();
@@ -4508,6 +4551,7 @@ class LockRequest {
   int64_t txnid;
   std::string user;
   std::string hostname;
+  std::string agentInfo;
 
   _LockRequest__isset __isset;
 
@@ -4519,6 +4563,8 @@ class LockRequest {
 
   void __set_hostname(const std::string& val);
 
+  void __set_agentInfo(const std::string& val);
+
   bool operator == (const LockRequest & rhs) const
   {
     if (!(component == rhs.component))
@@ -4531,6 +4577,10 @@ class LockRequest {
       return false;
     if (!(hostname == rhs.hostname))
       return false;
+    if (__isset.agentInfo != rhs.__isset.agentInfo)
+      return false;
+    else if (__isset.agentInfo && !(agentInfo == rhs.agentInfo))
+      return false;
     return true;
   }
   bool operator != (const LockRequest &rhs) const {
@@ -4598,24 +4648,45 @@ inline std::ostream& operator<<(std::ostream& out, const LockResponse& obj)
   return out;
 }
 
+typedef struct _CheckLockRequest__isset {
+  _CheckLockRequest__isset() : txnid(false), elapsed_ms(false) {}
+  bool txnid :1;
+  bool elapsed_ms :1;
+} _CheckLockRequest__isset;
 
 class CheckLockRequest {
  public:
 
   CheckLockRequest(const CheckLockRequest&);
   CheckLockRequest& operator=(const CheckLockRequest&);
-  CheckLockRequest() : lockid(0) {
+  CheckLockRequest() : lockid(0), txnid(0), elapsed_ms(0) {
   }
 
   virtual ~CheckLockRequest() throw();
   int64_t lockid;
+  int64_t txnid;
+  int64_t elapsed_ms;
+
+  _CheckLockRequest__isset __isset;
 
   void __set_lockid(const int64_t val);
 
+  void __set_txnid(const int64_t val);
+
+  void __set_elapsed_ms(const int64_t val);
+
   bool operator == (const CheckLockRequest & rhs) const
   {
     if (!(lockid == rhs.lockid))
       return false;
+    if (__isset.txnid != rhs.__isset.txnid)
+      return false;
+    else if (__isset.txnid && !(txnid == rhs.txnid))
+      return false;
+    if (__isset.elapsed_ms != rhs.__isset.elapsed_ms)
+      return false;
+    else if (__isset.elapsed_ms && !(elapsed_ms == rhs.elapsed_ms))
+      return false;
     return true;
   }
   bool operator != (const CheckLockRequest &rhs) const {
@@ -4678,19 +4749,56 @@ inline std::ostream& operator<<(std::ostream& out, const UnlockRequest& obj)
   return out;
 }
 
+typedef struct _ShowLocksRequest__isset {
+  _ShowLocksRequest__isset() : dbname(false), tablename(false), partname(false), isExtended(true) {}
+  bool dbname :1;
+  bool tablename :1;
+  bool partname :1;
+  bool isExtended :1;
+} _ShowLocksRequest__isset;
 
 class ShowLocksRequest {
  public:
 
   ShowLocksRequest(const ShowLocksRequest&);
   ShowLocksRequest& operator=(const ShowLocksRequest&);
-  ShowLocksRequest() {
+  ShowLocksRequest() : dbname(), tablename(), partname(), isExtended(false) {
   }
 
   virtual ~ShowLocksRequest() throw();
+  std::string dbname;
+  std::string tablename;
+  std::string partname;
+  bool isExtended;
+
+  _ShowLocksRequest__isset __isset;
+
+  void __set_dbname(const std::string& val);
+
+  void __set_tablename(const std::string& val);
+
+  void __set_partname(const std::string& val);
 
-  bool operator == (const ShowLocksRequest & /* rhs */) const
+  void __set_isExtended(const bool val);
+
+  bool operator == (const ShowLocksRequest & rhs) const
   {
+    if (__isset.dbname != rhs.__isset.dbname)
+      return false;
+    else if (__isset.dbname && !(dbname == rhs.dbname))
+      return false;
+    if (__isset.tablename != rhs.__isset.tablename)
+      return false;
+    else if (__isset.tablename && !(tablename == rhs.tablename))
+      return false;
+    if (__isset.partname != rhs.__isset.partname)
+      return false;
+    else if (__isset.partname && !(partname == rhs.partname))
+      return false;
+    if (__isset.isExtended != rhs.__isset.isExtended)
+      return false;
+    else if (__isset.isExtended && !(isExtended == rhs.isExtended))
+      return false;
     return true;
   }
   bool operator != (const ShowLocksRequest &rhs) const {
@@ -4714,11 +4822,16 @@ inline std::ostream& operator<<(std::ostream& out, const ShowLocksRequest& obj)
 }
 
 typedef struct _ShowLocksResponseElement__isset {
-  _ShowLocksResponseElement__isset() : tablename(false), partname(false), txnid(false), acquiredat(false) {}
+  _ShowLocksResponseElement__isset() : tablename(false), partname(false), txnid(false), acquiredat(false), heartbeatCount(true), agentInfo(false), blockedByExtId(false), blockedByIntId(false), lockIdInternal(false) {}
   bool tablename :1;
   bool partname :1;
   bool txnid :1;
   bool acquiredat :1;
+  bool heartbeatCount :1;
+  bool agentInfo :1;
+  bool blockedByExtId :1;
+  bool blockedByIntId :1;
+  bool lockIdInternal :1;
 } _ShowLocksResponseElement__isset;
 
 class ShowLocksResponseElement {
@@ -4726,7 +4839,7 @@ class ShowLocksResponseElement {
 
   ShowLocksResponseElement(const ShowLocksResponseElement&);
   ShowLocksResponseElement& operator=(const ShowLocksResponseElement&);
-  ShowLocksResponseElement() : lockid(0), dbname(), tablename(), partname(), state((LockState::type)0), type((LockType::type)0), txnid(0), lastheartbeat(0), acquiredat(0), user(), hostname() {
+  ShowLocksResponseElement() : lockid(0), dbname(), tablename(), partname(), state((LockState::type)0), type((LockType::type)0), txnid(0), lastheartbeat(0), acquiredat(0), user(), hostname(), heartbeatCount(0), agentInfo(), blockedByExtId(0), blockedByIntId(0), lockIdInternal(0) {
   }
 
   virtual ~ShowLocksResponseElement() throw();
@@ -4741,6 +4854,11 @@ class ShowLocksResponseElement {
   int64_t acquiredat;
   std::string user;
   std::string hostname;
+  int32_t heartbeatCount;
+  std::string agentInfo;
+  int64_t blockedByExtId;
+  int64_t blockedByIntId;
+  int64_t lockIdInternal;
 
   _ShowLocksResponseElement__isset __isset;
 
@@ -4766,6 +4884,16 @@ class ShowLocksResponseElement {
 
   void __set_hostname(const std::string& val);
 
+  void __set_heartbeatCount(const int32_t val);
+
+  void __set_agentInfo(const std::string& val);
+
+  void __set_blockedByExtId(const int64_t val);
+
+  void __set_blockedByIntId(const int64_t val);
+
+  void __set_lockIdInternal(const int64_t val);
+
   bool operator == (const ShowLocksResponseElement & rhs) const
   {
     if (!(lockid == rhs.lockid))
@@ -4798,6 +4926,26 @@ class ShowLocksResponseElement {
       return false;
     if (!(hostname == rhs.hostname))
       return false;
+    if (__isset.heartbeatCount != rhs.__isset.heartbeatCount)
+      return false;
+    else if (__isset.heartbeatCount && !(heartbeatCount == rhs.heartbeatCount))
+      return false;
+    if (__isset.agentInfo != rhs.__isset.agentInfo)
+      return false;
+    else if (__isset.agentInfo && !(agentInfo == rhs.agentInfo))
+      return false;
+    if (__isset.blockedByExtId != rhs.__isset.blockedByExtId)
+      return false;
+    else if (__isset.blockedByExtId && !(blockedByExtId == rhs.blockedByExtId))
+      return false;
+    if (__isset.blockedByIntId != rhs.__isset.blockedByIntId)
+      return false;
+    else if (__isset.blockedByIntId && !(blockedByIntId == rhs.blockedByIntId))
+      return false;
+    if (__isset.lockIdInternal != rhs.__isset.lockIdInternal)
+      return false;
+    else if (__isset.lockIdInternal && !(lockIdInternal == rhs.lockIdInternal))
+      return false;
     return true;
   }
   bool operator != (const ShowLocksResponseElement &rhs) const {
@@ -5119,11 +5267,15 @@ inline std::ostream& operator<<(std::ostream& out, const ShowCompactRequest& obj
 }
 
 typedef struct _ShowCompactResponseElement__isset {
-  _ShowCompactResponseElement__isset() : partitionname(false), workerid(false), start(false), runAs(false) {}
+  _ShowCompactResponseElement__isset() : partitionname(false), workerid(false), start(false), runAs(false), hightestTxnId(false), metaInfo(false), endTime(false), hadoopJobId(true) {}
   bool partitionname :1;
   bool workerid :1;
   bool start :1;
   bool runAs :1;
+  bool hightestTxnId :1;
+  bool metaInfo :1;
+  bool endTime :1;
+  bool hadoopJobId :1;
 } _ShowCompactResponseElement__isset;
 
 class ShowCompactResponseElement {
@@ -5131,7 +5283,7 @@ class ShowCompactResponseElement {
 
   ShowCompactResponseElement(const ShowCompactResponseElement&);
   ShowCompactResponseElement& operator=(const ShowCompactResponseElement&);
-  ShowCompactResponseElement() : dbname(), tablename(), partitionname(), type((CompactionType::type)0), state(), workerid(), start(0), runAs() {
+  ShowCompactResponseElement() : dbname(), tablename(), partitionname(), type((CompactionType::type)0), state(), workerid(), start(0), runAs(), hightestTxnId(0), metaInfo(), endTime(0), hadoopJobId("None") {
   }
 
   virtual ~ShowCompactResponseElement() throw();
@@ -5143,6 +5295,10 @@ class ShowCompactResponseElement {
   std::string workerid;
   int64_t start;
   std::string runAs;
+  int64_t hightestTxnId;
+  std::string metaInfo;
+  int64_t endTime;
+  std::string hadoopJobId;
 
   _ShowCompactResponseElement__isset __isset;
 
@@ -5162,6 +5318,14 @@ class ShowCompactResponseElement {
 
   void __set_runAs(const std::string& val);
 
+  void __set_hightestTxnId(const int64_t val);
+
+  void __set_metaInfo(const std::string& val);
+
+  void __set_endTime(const int64_t val);
+
+  void __set_hadoopJobId(const std::string& val);
+
   bool operator == (const ShowCompactResponseElement & rhs) const
   {
     if (!(dbname == rhs.dbname))
@@ -5188,6 +5352,22 @@ class ShowCompactResponseElement {
       return false;
     else if (__isset.runAs && !(runAs == rhs.runAs))
       return false;
+    if (__isset.hightestTxnId != rhs.__isset.hightestTxnId)
+      return false;
+    else if (__isset.hightestTxnId && !(hightestTxnId == rhs.hightestTxnId))
+      return false;
+    if (__isset.metaInfo != rhs.__isset.metaInfo)
+      return false;
+    else if (__isset.metaInfo && !(metaInfo == rhs.metaInfo))
+      return false;
+    if (__isset.endTime != rhs.__isset.endTime)
+      return false;
+    else if (__isset.endTime && !(endTime == rhs.endTime))
+      return false;
+    if (__isset.hadoopJobId != rhs.__isset.hadoopJobId)
+      return false;
+    else if (__isset.hadoopJobId && !(hadoopJobId == rhs.hadoopJobId))
+      return false;
     return true;
   }
   bool operator != (const ShowCompactResponseElement &rhs) const {

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CheckLockRequest.java
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CheckLockRequest.java b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CheckLockRequest.java
index 430be03..bcef2ff 100644
--- a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CheckLockRequest.java
+++ b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CheckLockRequest.java
@@ -39,6 +39,8 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CheckLockRequest");
 
   private static final org.apache.thrift.protocol.TField LOCKID_FIELD_DESC = new org.apache.thrift.protocol.TField("lockid", org.apache.thrift.protocol.TType.I64, (short)1);
+  private static final org.apache.thrift.protocol.TField TXNID_FIELD_DESC = new org.apache.thrift.protocol.TField("txnid", org.apache.thrift.protocol.TType.I64, (short)2);
+  private static final org.apache.thrift.protocol.TField ELAPSED_MS_FIELD_DESC = new org.apache.thrift.protocol.TField("elapsed_ms", org.apache.thrift.protocol.TType.I64, (short)3);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -47,10 +49,14 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
   }
 
   private long lockid; // required
+  private long txnid; // optional
+  private long elapsed_ms; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    LOCKID((short)1, "lockid");
+    LOCKID((short)1, "lockid"),
+    TXNID((short)2, "txnid"),
+    ELAPSED_MS((short)3, "elapsed_ms");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -67,6 +73,10 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
       switch(fieldId) {
         case 1: // LOCKID
           return LOCKID;
+        case 2: // TXNID
+          return TXNID;
+        case 3: // ELAPSED_MS
+          return ELAPSED_MS;
         default:
           return null;
       }
@@ -108,12 +118,19 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
 
   // isset id assignments
   private static final int __LOCKID_ISSET_ID = 0;
+  private static final int __TXNID_ISSET_ID = 1;
+  private static final int __ELAPSED_MS_ISSET_ID = 2;
   private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.TXNID,_Fields.ELAPSED_MS};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
     tmpMap.put(_Fields.LOCKID, new org.apache.thrift.meta_data.FieldMetaData("lockid", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.TXNID, new org.apache.thrift.meta_data.FieldMetaData("txnid", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.ELAPSED_MS, new org.apache.thrift.meta_data.FieldMetaData("elapsed_ms", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CheckLockRequest.class, metaDataMap);
   }
@@ -135,6 +152,8 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
   public CheckLockRequest(CheckLockRequest other) {
     __isset_bitfield = other.__isset_bitfield;
     this.lockid = other.lockid;
+    this.txnid = other.txnid;
+    this.elapsed_ms = other.elapsed_ms;
   }
 
   public CheckLockRequest deepCopy() {
@@ -145,6 +164,10 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
   public void clear() {
     setLockidIsSet(false);
     this.lockid = 0;
+    setTxnidIsSet(false);
+    this.txnid = 0;
+    setElapsed_msIsSet(false);
+    this.elapsed_ms = 0;
   }
 
   public long getLockid() {
@@ -169,6 +192,50 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LOCKID_ISSET_ID, value);
   }
 
+  public long getTxnid() {
+    return this.txnid;
+  }
+
+  public void setTxnid(long txnid) {
+    this.txnid = txnid;
+    setTxnidIsSet(true);
+  }
+
+  public void unsetTxnid() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TXNID_ISSET_ID);
+  }
+
+  /** Returns true if field txnid is set (has been assigned a value) and false otherwise */
+  public boolean isSetTxnid() {
+    return EncodingUtils.testBit(__isset_bitfield, __TXNID_ISSET_ID);
+  }
+
+  public void setTxnidIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TXNID_ISSET_ID, value);
+  }
+
+  public long getElapsed_ms() {
+    return this.elapsed_ms;
+  }
+
+  public void setElapsed_ms(long elapsed_ms) {
+    this.elapsed_ms = elapsed_ms;
+    setElapsed_msIsSet(true);
+  }
+
+  public void unsetElapsed_ms() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ELAPSED_MS_ISSET_ID);
+  }
+
+  /** Returns true if field elapsed_ms is set (has been assigned a value) and false otherwise */
+  public boolean isSetElapsed_ms() {
+    return EncodingUtils.testBit(__isset_bitfield, __ELAPSED_MS_ISSET_ID);
+  }
+
+  public void setElapsed_msIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ELAPSED_MS_ISSET_ID, value);
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case LOCKID:
@@ -179,6 +246,22 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
       }
       break;
 
+    case TXNID:
+      if (value == null) {
+        unsetTxnid();
+      } else {
+        setTxnid((Long)value);
+      }
+      break;
+
+    case ELAPSED_MS:
+      if (value == null) {
+        unsetElapsed_ms();
+      } else {
+        setElapsed_ms((Long)value);
+      }
+      break;
+
     }
   }
 
@@ -187,6 +270,12 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
     case LOCKID:
       return getLockid();
 
+    case TXNID:
+      return getTxnid();
+
+    case ELAPSED_MS:
+      return getElapsed_ms();
+
     }
     throw new IllegalStateException();
   }
@@ -200,6 +289,10 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
     switch (field) {
     case LOCKID:
       return isSetLockid();
+    case TXNID:
+      return isSetTxnid();
+    case ELAPSED_MS:
+      return isSetElapsed_ms();
     }
     throw new IllegalStateException();
   }
@@ -226,6 +319,24 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
         return false;
     }
 
+    boolean this_present_txnid = true && this.isSetTxnid();
+    boolean that_present_txnid = true && that.isSetTxnid();
+    if (this_present_txnid || that_present_txnid) {
+      if (!(this_present_txnid && that_present_txnid))
+        return false;
+      if (this.txnid != that.txnid)
+        return false;
+    }
+
+    boolean this_present_elapsed_ms = true && this.isSetElapsed_ms();
+    boolean that_present_elapsed_ms = true && that.isSetElapsed_ms();
+    if (this_present_elapsed_ms || that_present_elapsed_ms) {
+      if (!(this_present_elapsed_ms && that_present_elapsed_ms))
+        return false;
+      if (this.elapsed_ms != that.elapsed_ms)
+        return false;
+    }
+
     return true;
   }
 
@@ -238,6 +349,16 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
     if (present_lockid)
       list.add(lockid);
 
+    boolean present_txnid = true && (isSetTxnid());
+    list.add(present_txnid);
+    if (present_txnid)
+      list.add(txnid);
+
+    boolean present_elapsed_ms = true && (isSetElapsed_ms());
+    list.add(present_elapsed_ms);
+    if (present_elapsed_ms)
+      list.add(elapsed_ms);
+
     return list.hashCode();
   }
 
@@ -259,6 +380,26 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetTxnid()).compareTo(other.isSetTxnid());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTxnid()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.txnid, other.txnid);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetElapsed_ms()).compareTo(other.isSetElapsed_ms());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetElapsed_ms()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.elapsed_ms, other.elapsed_ms);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -282,6 +423,18 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
     sb.append("lockid:");
     sb.append(this.lockid);
     first = false;
+    if (isSetTxnid()) {
+      if (!first) sb.append(", ");
+      sb.append("txnid:");
+      sb.append(this.txnid);
+      first = false;
+    }
+    if (isSetElapsed_ms()) {
+      if (!first) sb.append(", ");
+      sb.append("elapsed_ms:");
+      sb.append(this.elapsed_ms);
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -339,6 +492,22 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 2: // TXNID
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.txnid = iprot.readI64();
+              struct.setTxnidIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // ELAPSED_MS
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.elapsed_ms = iprot.readI64();
+              struct.setElapsed_msIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -355,6 +524,16 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
       oprot.writeFieldBegin(LOCKID_FIELD_DESC);
       oprot.writeI64(struct.lockid);
       oprot.writeFieldEnd();
+      if (struct.isSetTxnid()) {
+        oprot.writeFieldBegin(TXNID_FIELD_DESC);
+        oprot.writeI64(struct.txnid);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetElapsed_ms()) {
+        oprot.writeFieldBegin(ELAPSED_MS_FIELD_DESC);
+        oprot.writeI64(struct.elapsed_ms);
+        oprot.writeFieldEnd();
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -373,6 +552,20 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
     public void write(org.apache.thrift.protocol.TProtocol prot, CheckLockRequest struct) throws org.apache.thrift.TException {
       TTupleProtocol oprot = (TTupleProtocol) prot;
       oprot.writeI64(struct.lockid);
+      BitSet optionals = new BitSet();
+      if (struct.isSetTxnid()) {
+        optionals.set(0);
+      }
+      if (struct.isSetElapsed_ms()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetTxnid()) {
+        oprot.writeI64(struct.txnid);
+      }
+      if (struct.isSetElapsed_ms()) {
+        oprot.writeI64(struct.elapsed_ms);
+      }
     }
 
     @Override
@@ -380,6 +573,15 @@ public class CheckLockRequest implements org.apache.thrift.TBase<CheckLockReques
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.lockid = iprot.readI64();
       struct.setLockidIsSet(true);
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.txnid = iprot.readI64();
+        struct.setTxnidIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.elapsed_ms = iprot.readI64();
+        struct.setElapsed_msIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/fe5cd560/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/LockRequest.java
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/LockRequest.java b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/LockRequest.java
index eada4ee..f39f582 100644
--- a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/LockRequest.java
+++ b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/LockRequest.java
@@ -42,6 +42,7 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
   private static final org.apache.thrift.protocol.TField TXNID_FIELD_DESC = new org.apache.thrift.protocol.TField("txnid", org.apache.thrift.protocol.TType.I64, (short)2);
   private static final org.apache.thrift.protocol.TField USER_FIELD_DESC = new org.apache.thrift.protocol.TField("user", org.apache.thrift.protocol.TType.STRING, (short)3);
   private static final org.apache.thrift.protocol.TField HOSTNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("hostname", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField AGENT_INFO_FIELD_DESC = new org.apache.thrift.protocol.TField("agentInfo", org.apache.thrift.protocol.TType.STRING, (short)5);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -53,13 +54,15 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
   private long txnid; // optional
   private String user; // required
   private String hostname; // required
+  private String agentInfo; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     COMPONENT((short)1, "component"),
     TXNID((short)2, "txnid"),
     USER((short)3, "user"),
-    HOSTNAME((short)4, "hostname");
+    HOSTNAME((short)4, "hostname"),
+    AGENT_INFO((short)5, "agentInfo");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -82,6 +85,8 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
           return USER;
         case 4: // HOSTNAME
           return HOSTNAME;
+        case 5: // AGENT_INFO
+          return AGENT_INFO;
         default:
           return null;
       }
@@ -124,7 +129,7 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
   // isset id assignments
   private static final int __TXNID_ISSET_ID = 0;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.TXNID};
+  private static final _Fields optionals[] = {_Fields.TXNID,_Fields.AGENT_INFO};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -137,11 +142,15 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.HOSTNAME, new org.apache.thrift.meta_data.FieldMetaData("hostname", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.AGENT_INFO, new org.apache.thrift.meta_data.FieldMetaData("agentInfo", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(LockRequest.class, metaDataMap);
   }
 
   public LockRequest() {
+    this.agentInfo = "Unknown";
+
   }
 
   public LockRequest(
@@ -174,6 +183,9 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
     if (other.isSetHostname()) {
       this.hostname = other.hostname;
     }
+    if (other.isSetAgentInfo()) {
+      this.agentInfo = other.agentInfo;
+    }
   }
 
   public LockRequest deepCopy() {
@@ -187,6 +199,8 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
     this.txnid = 0;
     this.user = null;
     this.hostname = null;
+    this.agentInfo = "Unknown";
+
   }
 
   public int getComponentSize() {
@@ -295,6 +309,29 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
     }
   }
 
+  public String getAgentInfo() {
+    return this.agentInfo;
+  }
+
+  public void setAgentInfo(String agentInfo) {
+    this.agentInfo = agentInfo;
+  }
+
+  public void unsetAgentInfo() {
+    this.agentInfo = null;
+  }
+
+  /** Returns true if field agentInfo is set (has been assigned a value) and false otherwise */
+  public boolean isSetAgentInfo() {
+    return this.agentInfo != null;
+  }
+
+  public void setAgentInfoIsSet(boolean value) {
+    if (!value) {
+      this.agentInfo = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case COMPONENT:
@@ -329,6 +366,14 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
       }
       break;
 
+    case AGENT_INFO:
+      if (value == null) {
+        unsetAgentInfo();
+      } else {
+        setAgentInfo((String)value);
+      }
+      break;
+
     }
   }
 
@@ -346,6 +391,9 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
     case HOSTNAME:
       return getHostname();
 
+    case AGENT_INFO:
+      return getAgentInfo();
+
     }
     throw new IllegalStateException();
   }
@@ -365,6 +413,8 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
       return isSetUser();
     case HOSTNAME:
       return isSetHostname();
+    case AGENT_INFO:
+      return isSetAgentInfo();
     }
     throw new IllegalStateException();
   }
@@ -418,6 +468,15 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
         return false;
     }
 
+    boolean this_present_agentInfo = true && this.isSetAgentInfo();
+    boolean that_present_agentInfo = true && that.isSetAgentInfo();
+    if (this_present_agentInfo || that_present_agentInfo) {
+      if (!(this_present_agentInfo && that_present_agentInfo))
+        return false;
+      if (!this.agentInfo.equals(that.agentInfo))
+        return false;
+    }
+
     return true;
   }
 
@@ -445,6 +504,11 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
     if (present_hostname)
       list.add(hostname);
 
+    boolean present_agentInfo = true && (isSetAgentInfo());
+    list.add(present_agentInfo);
+    if (present_agentInfo)
+      list.add(agentInfo);
+
     return list.hashCode();
   }
 
@@ -496,6 +560,16 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetAgentInfo()).compareTo(other.isSetAgentInfo());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAgentInfo()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.agentInfo, other.agentInfo);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -545,6 +619,16 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
       sb.append(this.hostname);
     }
     first = false;
+    if (isSetAgentInfo()) {
+      if (!first) sb.append(", ");
+      sb.append("agentInfo:");
+      if (this.agentInfo == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.agentInfo);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -645,6 +729,14 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 5: // AGENT_INFO
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.agentInfo = iprot.readString();
+              struct.setAgentInfoIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -685,6 +777,13 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
         oprot.writeString(struct.hostname);
         oprot.writeFieldEnd();
       }
+      if (struct.agentInfo != null) {
+        if (struct.isSetAgentInfo()) {
+          oprot.writeFieldBegin(AGENT_INFO_FIELD_DESC);
+          oprot.writeString(struct.agentInfo);
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -715,10 +814,16 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
       if (struct.isSetTxnid()) {
         optionals.set(0);
       }
-      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetAgentInfo()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
       if (struct.isSetTxnid()) {
         oprot.writeI64(struct.txnid);
       }
+      if (struct.isSetAgentInfo()) {
+        oprot.writeString(struct.agentInfo);
+      }
     }
 
     @Override
@@ -740,11 +845,15 @@ public class LockRequest implements org.apache.thrift.TBase<LockRequest, LockReq
       struct.setUserIsSet(true);
       struct.hostname = iprot.readString();
       struct.setHostnameIsSet(true);
-      BitSet incoming = iprot.readBitSet(1);
+      BitSet incoming = iprot.readBitSet(2);
       if (incoming.get(0)) {
         struct.txnid = iprot.readI64();
         struct.setTxnidIsSet(true);
       }
+      if (incoming.get(1)) {
+        struct.agentInfo = iprot.readString();
+        struct.setAgentInfoIsSet(true);
+      }
     }
   }