http://git-wip-us.apache.org/repos/asf/hive/blob/42a38577/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
----------------------------------------------------------------------
diff --cc standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
index 0000000,5c09fdd..3e4c754
mode 000000,100644..100644
--- a/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
+++ b/standalone-metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
@@@ -1,0 -1,21817 +1,21819 @@@
+ /**
+  * Autogenerated by Thrift Compiler (0.9.3)
+  *
+  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+  *  @generated
+  */
+ #include "hive_metastore_types.h"
+ 
+ #include <algorithm>
+ #include <ostream>
+ 
+ #include <thrift/TToString.h>
+ 
+ namespace Apache { namespace Hadoop { namespace Hive {
+ 
+ int _kHiveObjectTypeValues[] = {
+   HiveObjectType::GLOBAL,
+   HiveObjectType::DATABASE,
+   HiveObjectType::TABLE,
+   HiveObjectType::PARTITION,
+   HiveObjectType::COLUMN
+ };
+ const char* _kHiveObjectTypeNames[] = {
+   "GLOBAL",
+   "DATABASE",
+   "TABLE",
+   "PARTITION",
+   "COLUMN"
+ };
+ const std::map<int, const char*> 
_HiveObjectType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(5, 
_kHiveObjectTypeValues, _kHiveObjectTypeNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ int _kPrincipalTypeValues[] = {
+   PrincipalType::USER,
+   PrincipalType::ROLE,
+   PrincipalType::GROUP
+ };
+ const char* _kPrincipalTypeNames[] = {
+   "USER",
+   "ROLE",
+   "GROUP"
+ };
+ const std::map<int, const char*> 
_PrincipalType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, 
_kPrincipalTypeValues, _kPrincipalTypeNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ int _kPartitionEventTypeValues[] = {
+   PartitionEventType::LOAD_DONE
+ };
+ const char* _kPartitionEventTypeNames[] = {
+   "LOAD_DONE"
+ };
+ const std::map<int, const char*> 
_PartitionEventType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(1, 
_kPartitionEventTypeValues, _kPartitionEventTypeNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ int _kTxnStateValues[] = {
+   TxnState::COMMITTED,
+   TxnState::ABORTED,
+   TxnState::OPEN
+ };
+ const char* _kTxnStateNames[] = {
+   "COMMITTED",
+   "ABORTED",
+   "OPEN"
+ };
+ const std::map<int, const char*> 
_TxnState_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, _kTxnStateValues, 
_kTxnStateNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ int _kLockLevelValues[] = {
+   LockLevel::DB,
+   LockLevel::TABLE,
+   LockLevel::PARTITION
+ };
+ const char* _kLockLevelNames[] = {
+   "DB",
+   "TABLE",
+   "PARTITION"
+ };
+ const std::map<int, const char*> 
_LockLevel_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, 
_kLockLevelValues, _kLockLevelNames), ::apache::thrift::TEnumIterator(-1, NULL, 
NULL));
+ 
+ int _kLockStateValues[] = {
+   LockState::ACQUIRED,
+   LockState::WAITING,
+   LockState::ABORT,
+   LockState::NOT_ACQUIRED
+ };
+ const char* _kLockStateNames[] = {
+   "ACQUIRED",
+   "WAITING",
+   "ABORT",
+   "NOT_ACQUIRED"
+ };
+ const std::map<int, const char*> 
_LockState_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(4, 
_kLockStateValues, _kLockStateNames), ::apache::thrift::TEnumIterator(-1, NULL, 
NULL));
+ 
+ int _kLockTypeValues[] = {
+   LockType::SHARED_READ,
+   LockType::SHARED_WRITE,
+   LockType::EXCLUSIVE
+ };
+ const char* _kLockTypeNames[] = {
+   "SHARED_READ",
+   "SHARED_WRITE",
+   "EXCLUSIVE"
+ };
+ const std::map<int, const char*> 
_LockType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, _kLockTypeValues, 
_kLockTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ int _kCompactionTypeValues[] = {
+   CompactionType::MINOR,
+   CompactionType::MAJOR
+ };
+ const char* _kCompactionTypeNames[] = {
+   "MINOR",
+   "MAJOR"
+ };
+ const std::map<int, const char*> 
_CompactionType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, 
_kCompactionTypeValues, _kCompactionTypeNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ int _kGrantRevokeTypeValues[] = {
+   GrantRevokeType::GRANT,
+   GrantRevokeType::REVOKE
+ };
+ const char* _kGrantRevokeTypeNames[] = {
+   "GRANT",
+   "REVOKE"
+ };
+ const std::map<int, const char*> 
_GrantRevokeType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, 
_kGrantRevokeTypeValues, _kGrantRevokeTypeNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ int _kDataOperationTypeValues[] = {
+   DataOperationType::SELECT,
+   DataOperationType::INSERT,
+   DataOperationType::UPDATE,
+   DataOperationType::DELETE,
+   DataOperationType::UNSET,
+   DataOperationType::NO_TXN
+ };
+ const char* _kDataOperationTypeNames[] = {
+   "SELECT",
+   "INSERT",
+   "UPDATE",
+   "DELETE",
+   "UNSET",
+   "NO_TXN"
+ };
+ const std::map<int, const char*> 
_DataOperationType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(6, 
_kDataOperationTypeValues, _kDataOperationTypeNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ int _kEventRequestTypeValues[] = {
+   EventRequestType::INSERT,
+   EventRequestType::UPDATE,
+   EventRequestType::DELETE
+ };
+ const char* _kEventRequestTypeNames[] = {
+   "INSERT",
+   "UPDATE",
+   "DELETE"
+ };
+ const std::map<int, const char*> 
_EventRequestType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, 
_kEventRequestTypeValues, _kEventRequestTypeNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ int _kFunctionTypeValues[] = {
+   FunctionType::JAVA
+ };
+ const char* _kFunctionTypeNames[] = {
+   "JAVA"
+ };
+ const std::map<int, const char*> 
_FunctionType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(1, 
_kFunctionTypeValues, _kFunctionTypeNames), ::apache::thrift::TEnumIterator(-1, 
NULL, NULL));
+ 
+ int _kResourceTypeValues[] = {
+   ResourceType::JAR,
+   ResourceType::FILE,
+   ResourceType::ARCHIVE
+ };
+ const char* _kResourceTypeNames[] = {
+   "JAR",
+   "FILE",
+   "ARCHIVE"
+ };
+ const std::map<int, const char*> 
_ResourceType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, 
_kResourceTypeValues, _kResourceTypeNames), ::apache::thrift::TEnumIterator(-1, 
NULL, NULL));
+ 
+ int _kFileMetadataExprTypeValues[] = {
+   FileMetadataExprType::ORC_SARG
+ };
+ const char* _kFileMetadataExprTypeNames[] = {
+   "ORC_SARG"
+ };
+ const std::map<int, const char*> 
_FileMetadataExprType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(1, 
_kFileMetadataExprTypeValues, _kFileMetadataExprTypeNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ int _kClientCapabilityValues[] = {
 -  ClientCapability::TEST_CAPABILITY
++  ClientCapability::TEST_CAPABILITY,
++  ClientCapability::INSERT_ONLY_TABLES
+ };
+ const char* _kClientCapabilityNames[] = {
 -  "TEST_CAPABILITY"
++  "TEST_CAPABILITY",
++  "INSERT_ONLY_TABLES"
+ };
 -const std::map<int, const char*> 
_ClientCapability_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(1, 
_kClientCapabilityValues, _kClientCapabilityNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
++const std::map<int, const char*> 
_ClientCapability_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, 
_kClientCapabilityValues, _kClientCapabilityNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
+ 
+ 
+ Version::~Version() throw() {
+ }
+ 
+ 
+ void Version::__set_version(const std::string& val) {
+   this->version = val;
+ }
+ 
+ void Version::__set_comments(const std::string& val) {
+   this->comments = val;
+ }
+ 
+ uint32_t Version::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->version);
+           this->__isset.version = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->comments);
+           this->__isset.comments = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t Version::write(::apache::thrift::protocol::TProtocol* oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("Version");
+ 
+   xfer += oprot->writeFieldBegin("version", 
::apache::thrift::protocol::T_STRING, 1);
+   xfer += oprot->writeString(this->version);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("comments", 
::apache::thrift::protocol::T_STRING, 2);
+   xfer += oprot->writeString(this->comments);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(Version &a, Version &b) {
+   using ::std::swap;
+   swap(a.version, b.version);
+   swap(a.comments, b.comments);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ Version::Version(const Version& other0) {
+   version = other0.version;
+   comments = other0.comments;
+   __isset = other0.__isset;
+ }
+ Version& Version::operator=(const Version& other1) {
+   version = other1.version;
+   comments = other1.comments;
+   __isset = other1.__isset;
+   return *this;
+ }
+ void Version::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "Version(";
+   out << "version=" << to_string(version);
+   out << ", " << "comments=" << to_string(comments);
+   out << ")";
+ }
+ 
+ 
+ FieldSchema::~FieldSchema() throw() {
+ }
+ 
+ 
+ void FieldSchema::__set_name(const std::string& val) {
+   this->name = val;
+ }
+ 
+ void FieldSchema::__set_type(const std::string& val) {
+   this->type = val;
+ }
+ 
+ void FieldSchema::__set_comment(const std::string& val) {
+   this->comment = val;
+ }
+ 
+ uint32_t FieldSchema::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->name);
+           this->__isset.name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->type);
+           this->__isset.type = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->comment);
+           this->__isset.comment = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t FieldSchema::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("FieldSchema");
+ 
+   xfer += oprot->writeFieldBegin("name", 
::apache::thrift::protocol::T_STRING, 1);
+   xfer += oprot->writeString(this->name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("type", 
::apache::thrift::protocol::T_STRING, 2);
+   xfer += oprot->writeString(this->type);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("comment", 
::apache::thrift::protocol::T_STRING, 3);
+   xfer += oprot->writeString(this->comment);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(FieldSchema &a, FieldSchema &b) {
+   using ::std::swap;
+   swap(a.name, b.name);
+   swap(a.type, b.type);
+   swap(a.comment, b.comment);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ FieldSchema::FieldSchema(const FieldSchema& other2) {
+   name = other2.name;
+   type = other2.type;
+   comment = other2.comment;
+   __isset = other2.__isset;
+ }
+ FieldSchema& FieldSchema::operator=(const FieldSchema& other3) {
+   name = other3.name;
+   type = other3.type;
+   comment = other3.comment;
+   __isset = other3.__isset;
+   return *this;
+ }
+ void FieldSchema::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "FieldSchema(";
+   out << "name=" << to_string(name);
+   out << ", " << "type=" << to_string(type);
+   out << ", " << "comment=" << to_string(comment);
+   out << ")";
+ }
+ 
+ 
+ SQLPrimaryKey::~SQLPrimaryKey() throw() {
+ }
+ 
+ 
+ void SQLPrimaryKey::__set_table_db(const std::string& val) {
+   this->table_db = val;
+ }
+ 
+ void SQLPrimaryKey::__set_table_name(const std::string& val) {
+   this->table_name = val;
+ }
+ 
+ void SQLPrimaryKey::__set_column_name(const std::string& val) {
+   this->column_name = val;
+ }
+ 
+ void SQLPrimaryKey::__set_key_seq(const int32_t val) {
+   this->key_seq = val;
+ }
+ 
+ void SQLPrimaryKey::__set_pk_name(const std::string& val) {
+   this->pk_name = val;
+ }
+ 
+ void SQLPrimaryKey::__set_enable_cstr(const bool val) {
+   this->enable_cstr = val;
+ }
+ 
+ void SQLPrimaryKey::__set_validate_cstr(const bool val) {
+   this->validate_cstr = val;
+ }
+ 
+ void SQLPrimaryKey::__set_rely_cstr(const bool val) {
+   this->rely_cstr = val;
+ }
+ 
+ uint32_t SQLPrimaryKey::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->table_db);
+           this->__isset.table_db = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->table_name);
+           this->__isset.table_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->column_name);
+           this->__isset.column_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 4:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           xfer += iprot->readI32(this->key_seq);
+           this->__isset.key_seq = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 5:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->pk_name);
+           this->__isset.pk_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 6:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->enable_cstr);
+           this->__isset.enable_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 7:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->validate_cstr);
+           this->__isset.validate_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 8:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->rely_cstr);
+           this->__isset.rely_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t SQLPrimaryKey::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("SQLPrimaryKey");
+ 
+   xfer += oprot->writeFieldBegin("table_db", 
::apache::thrift::protocol::T_STRING, 1);
+   xfer += oprot->writeString(this->table_db);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("table_name", 
::apache::thrift::protocol::T_STRING, 2);
+   xfer += oprot->writeString(this->table_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("column_name", 
::apache::thrift::protocol::T_STRING, 3);
+   xfer += oprot->writeString(this->column_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("key_seq", 
::apache::thrift::protocol::T_I32, 4);
+   xfer += oprot->writeI32(this->key_seq);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("pk_name", 
::apache::thrift::protocol::T_STRING, 5);
+   xfer += oprot->writeString(this->pk_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("enable_cstr", 
::apache::thrift::protocol::T_BOOL, 6);
+   xfer += oprot->writeBool(this->enable_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("validate_cstr", 
::apache::thrift::protocol::T_BOOL, 7);
+   xfer += oprot->writeBool(this->validate_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("rely_cstr", 
::apache::thrift::protocol::T_BOOL, 8);
+   xfer += oprot->writeBool(this->rely_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(SQLPrimaryKey &a, SQLPrimaryKey &b) {
+   using ::std::swap;
+   swap(a.table_db, b.table_db);
+   swap(a.table_name, b.table_name);
+   swap(a.column_name, b.column_name);
+   swap(a.key_seq, b.key_seq);
+   swap(a.pk_name, b.pk_name);
+   swap(a.enable_cstr, b.enable_cstr);
+   swap(a.validate_cstr, b.validate_cstr);
+   swap(a.rely_cstr, b.rely_cstr);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ SQLPrimaryKey::SQLPrimaryKey(const SQLPrimaryKey& other4) {
+   table_db = other4.table_db;
+   table_name = other4.table_name;
+   column_name = other4.column_name;
+   key_seq = other4.key_seq;
+   pk_name = other4.pk_name;
+   enable_cstr = other4.enable_cstr;
+   validate_cstr = other4.validate_cstr;
+   rely_cstr = other4.rely_cstr;
+   __isset = other4.__isset;
+ }
+ SQLPrimaryKey& SQLPrimaryKey::operator=(const SQLPrimaryKey& other5) {
+   table_db = other5.table_db;
+   table_name = other5.table_name;
+   column_name = other5.column_name;
+   key_seq = other5.key_seq;
+   pk_name = other5.pk_name;
+   enable_cstr = other5.enable_cstr;
+   validate_cstr = other5.validate_cstr;
+   rely_cstr = other5.rely_cstr;
+   __isset = other5.__isset;
+   return *this;
+ }
+ void SQLPrimaryKey::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "SQLPrimaryKey(";
+   out << "table_db=" << to_string(table_db);
+   out << ", " << "table_name=" << to_string(table_name);
+   out << ", " << "column_name=" << to_string(column_name);
+   out << ", " << "key_seq=" << to_string(key_seq);
+   out << ", " << "pk_name=" << to_string(pk_name);
+   out << ", " << "enable_cstr=" << to_string(enable_cstr);
+   out << ", " << "validate_cstr=" << to_string(validate_cstr);
+   out << ", " << "rely_cstr=" << to_string(rely_cstr);
+   out << ")";
+ }
+ 
+ 
+ SQLForeignKey::~SQLForeignKey() throw() {
+ }
+ 
+ 
+ void SQLForeignKey::__set_pktable_db(const std::string& val) {
+   this->pktable_db = val;
+ }
+ 
+ void SQLForeignKey::__set_pktable_name(const std::string& val) {
+   this->pktable_name = val;
+ }
+ 
+ void SQLForeignKey::__set_pkcolumn_name(const std::string& val) {
+   this->pkcolumn_name = val;
+ }
+ 
+ void SQLForeignKey::__set_fktable_db(const std::string& val) {
+   this->fktable_db = val;
+ }
+ 
+ void SQLForeignKey::__set_fktable_name(const std::string& val) {
+   this->fktable_name = val;
+ }
+ 
+ void SQLForeignKey::__set_fkcolumn_name(const std::string& val) {
+   this->fkcolumn_name = val;
+ }
+ 
+ void SQLForeignKey::__set_key_seq(const int32_t val) {
+   this->key_seq = val;
+ }
+ 
+ void SQLForeignKey::__set_update_rule(const int32_t val) {
+   this->update_rule = val;
+ }
+ 
+ void SQLForeignKey::__set_delete_rule(const int32_t val) {
+   this->delete_rule = val;
+ }
+ 
+ void SQLForeignKey::__set_fk_name(const std::string& val) {
+   this->fk_name = val;
+ }
+ 
+ void SQLForeignKey::__set_pk_name(const std::string& val) {
+   this->pk_name = val;
+ }
+ 
+ void SQLForeignKey::__set_enable_cstr(const bool val) {
+   this->enable_cstr = val;
+ }
+ 
+ void SQLForeignKey::__set_validate_cstr(const bool val) {
+   this->validate_cstr = val;
+ }
+ 
+ void SQLForeignKey::__set_rely_cstr(const bool val) {
+   this->rely_cstr = val;
+ }
+ 
+ uint32_t SQLForeignKey::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->pktable_db);
+           this->__isset.pktable_db = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->pktable_name);
+           this->__isset.pktable_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->pkcolumn_name);
+           this->__isset.pkcolumn_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 4:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->fktable_db);
+           this->__isset.fktable_db = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 5:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->fktable_name);
+           this->__isset.fktable_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 6:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->fkcolumn_name);
+           this->__isset.fkcolumn_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 7:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           xfer += iprot->readI32(this->key_seq);
+           this->__isset.key_seq = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 8:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           xfer += iprot->readI32(this->update_rule);
+           this->__isset.update_rule = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 9:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           xfer += iprot->readI32(this->delete_rule);
+           this->__isset.delete_rule = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 10:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->fk_name);
+           this->__isset.fk_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 11:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->pk_name);
+           this->__isset.pk_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 12:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->enable_cstr);
+           this->__isset.enable_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 13:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->validate_cstr);
+           this->__isset.validate_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 14:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->rely_cstr);
+           this->__isset.rely_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t SQLForeignKey::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("SQLForeignKey");
+ 
+   xfer += oprot->writeFieldBegin("pktable_db", 
::apache::thrift::protocol::T_STRING, 1);
+   xfer += oprot->writeString(this->pktable_db);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("pktable_name", 
::apache::thrift::protocol::T_STRING, 2);
+   xfer += oprot->writeString(this->pktable_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("pkcolumn_name", 
::apache::thrift::protocol::T_STRING, 3);
+   xfer += oprot->writeString(this->pkcolumn_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("fktable_db", 
::apache::thrift::protocol::T_STRING, 4);
+   xfer += oprot->writeString(this->fktable_db);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("fktable_name", 
::apache::thrift::protocol::T_STRING, 5);
+   xfer += oprot->writeString(this->fktable_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("fkcolumn_name", 
::apache::thrift::protocol::T_STRING, 6);
+   xfer += oprot->writeString(this->fkcolumn_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("key_seq", 
::apache::thrift::protocol::T_I32, 7);
+   xfer += oprot->writeI32(this->key_seq);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("update_rule", 
::apache::thrift::protocol::T_I32, 8);
+   xfer += oprot->writeI32(this->update_rule);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("delete_rule", 
::apache::thrift::protocol::T_I32, 9);
+   xfer += oprot->writeI32(this->delete_rule);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("fk_name", 
::apache::thrift::protocol::T_STRING, 10);
+   xfer += oprot->writeString(this->fk_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("pk_name", 
::apache::thrift::protocol::T_STRING, 11);
+   xfer += oprot->writeString(this->pk_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("enable_cstr", 
::apache::thrift::protocol::T_BOOL, 12);
+   xfer += oprot->writeBool(this->enable_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("validate_cstr", 
::apache::thrift::protocol::T_BOOL, 13);
+   xfer += oprot->writeBool(this->validate_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("rely_cstr", 
::apache::thrift::protocol::T_BOOL, 14);
+   xfer += oprot->writeBool(this->rely_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(SQLForeignKey &a, SQLForeignKey &b) {
+   using ::std::swap;
+   swap(a.pktable_db, b.pktable_db);
+   swap(a.pktable_name, b.pktable_name);
+   swap(a.pkcolumn_name, b.pkcolumn_name);
+   swap(a.fktable_db, b.fktable_db);
+   swap(a.fktable_name, b.fktable_name);
+   swap(a.fkcolumn_name, b.fkcolumn_name);
+   swap(a.key_seq, b.key_seq);
+   swap(a.update_rule, b.update_rule);
+   swap(a.delete_rule, b.delete_rule);
+   swap(a.fk_name, b.fk_name);
+   swap(a.pk_name, b.pk_name);
+   swap(a.enable_cstr, b.enable_cstr);
+   swap(a.validate_cstr, b.validate_cstr);
+   swap(a.rely_cstr, b.rely_cstr);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ SQLForeignKey::SQLForeignKey(const SQLForeignKey& other6) {
+   pktable_db = other6.pktable_db;
+   pktable_name = other6.pktable_name;
+   pkcolumn_name = other6.pkcolumn_name;
+   fktable_db = other6.fktable_db;
+   fktable_name = other6.fktable_name;
+   fkcolumn_name = other6.fkcolumn_name;
+   key_seq = other6.key_seq;
+   update_rule = other6.update_rule;
+   delete_rule = other6.delete_rule;
+   fk_name = other6.fk_name;
+   pk_name = other6.pk_name;
+   enable_cstr = other6.enable_cstr;
+   validate_cstr = other6.validate_cstr;
+   rely_cstr = other6.rely_cstr;
+   __isset = other6.__isset;
+ }
+ SQLForeignKey& SQLForeignKey::operator=(const SQLForeignKey& other7) {
+   pktable_db = other7.pktable_db;
+   pktable_name = other7.pktable_name;
+   pkcolumn_name = other7.pkcolumn_name;
+   fktable_db = other7.fktable_db;
+   fktable_name = other7.fktable_name;
+   fkcolumn_name = other7.fkcolumn_name;
+   key_seq = other7.key_seq;
+   update_rule = other7.update_rule;
+   delete_rule = other7.delete_rule;
+   fk_name = other7.fk_name;
+   pk_name = other7.pk_name;
+   enable_cstr = other7.enable_cstr;
+   validate_cstr = other7.validate_cstr;
+   rely_cstr = other7.rely_cstr;
+   __isset = other7.__isset;
+   return *this;
+ }
+ void SQLForeignKey::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "SQLForeignKey(";
+   out << "pktable_db=" << to_string(pktable_db);
+   out << ", " << "pktable_name=" << to_string(pktable_name);
+   out << ", " << "pkcolumn_name=" << to_string(pkcolumn_name);
+   out << ", " << "fktable_db=" << to_string(fktable_db);
+   out << ", " << "fktable_name=" << to_string(fktable_name);
+   out << ", " << "fkcolumn_name=" << to_string(fkcolumn_name);
+   out << ", " << "key_seq=" << to_string(key_seq);
+   out << ", " << "update_rule=" << to_string(update_rule);
+   out << ", " << "delete_rule=" << to_string(delete_rule);
+   out << ", " << "fk_name=" << to_string(fk_name);
+   out << ", " << "pk_name=" << to_string(pk_name);
+   out << ", " << "enable_cstr=" << to_string(enable_cstr);
+   out << ", " << "validate_cstr=" << to_string(validate_cstr);
+   out << ", " << "rely_cstr=" << to_string(rely_cstr);
+   out << ")";
+ }
+ 
+ 
+ SQLUniqueConstraint::~SQLUniqueConstraint() throw() {
+ }
+ 
+ 
+ void SQLUniqueConstraint::__set_table_db(const std::string& val) {
+   this->table_db = val;
+ }
+ 
+ void SQLUniqueConstraint::__set_table_name(const std::string& val) {
+   this->table_name = val;
+ }
+ 
+ void SQLUniqueConstraint::__set_column_name(const std::string& val) {
+   this->column_name = val;
+ }
+ 
+ void SQLUniqueConstraint::__set_key_seq(const int32_t val) {
+   this->key_seq = val;
+ }
+ 
+ void SQLUniqueConstraint::__set_uk_name(const std::string& val) {
+   this->uk_name = val;
+ }
+ 
+ void SQLUniqueConstraint::__set_enable_cstr(const bool val) {
+   this->enable_cstr = val;
+ }
+ 
+ void SQLUniqueConstraint::__set_validate_cstr(const bool val) {
+   this->validate_cstr = val;
+ }
+ 
+ void SQLUniqueConstraint::__set_rely_cstr(const bool val) {
+   this->rely_cstr = val;
+ }
+ 
+ uint32_t SQLUniqueConstraint::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->table_db);
+           this->__isset.table_db = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->table_name);
+           this->__isset.table_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->column_name);
+           this->__isset.column_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 4:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           xfer += iprot->readI32(this->key_seq);
+           this->__isset.key_seq = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 5:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->uk_name);
+           this->__isset.uk_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 6:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->enable_cstr);
+           this->__isset.enable_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 7:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->validate_cstr);
+           this->__isset.validate_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 8:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->rely_cstr);
+           this->__isset.rely_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t SQLUniqueConstraint::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("SQLUniqueConstraint");
+ 
+   xfer += oprot->writeFieldBegin("table_db", 
::apache::thrift::protocol::T_STRING, 1);
+   xfer += oprot->writeString(this->table_db);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("table_name", 
::apache::thrift::protocol::T_STRING, 2);
+   xfer += oprot->writeString(this->table_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("column_name", 
::apache::thrift::protocol::T_STRING, 3);
+   xfer += oprot->writeString(this->column_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("key_seq", 
::apache::thrift::protocol::T_I32, 4);
+   xfer += oprot->writeI32(this->key_seq);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("uk_name", 
::apache::thrift::protocol::T_STRING, 5);
+   xfer += oprot->writeString(this->uk_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("enable_cstr", 
::apache::thrift::protocol::T_BOOL, 6);
+   xfer += oprot->writeBool(this->enable_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("validate_cstr", 
::apache::thrift::protocol::T_BOOL, 7);
+   xfer += oprot->writeBool(this->validate_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("rely_cstr", 
::apache::thrift::protocol::T_BOOL, 8);
+   xfer += oprot->writeBool(this->rely_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(SQLUniqueConstraint &a, SQLUniqueConstraint &b) {
+   using ::std::swap;
+   swap(a.table_db, b.table_db);
+   swap(a.table_name, b.table_name);
+   swap(a.column_name, b.column_name);
+   swap(a.key_seq, b.key_seq);
+   swap(a.uk_name, b.uk_name);
+   swap(a.enable_cstr, b.enable_cstr);
+   swap(a.validate_cstr, b.validate_cstr);
+   swap(a.rely_cstr, b.rely_cstr);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ SQLUniqueConstraint::SQLUniqueConstraint(const SQLUniqueConstraint& other8) {
+   table_db = other8.table_db;
+   table_name = other8.table_name;
+   column_name = other8.column_name;
+   key_seq = other8.key_seq;
+   uk_name = other8.uk_name;
+   enable_cstr = other8.enable_cstr;
+   validate_cstr = other8.validate_cstr;
+   rely_cstr = other8.rely_cstr;
+   __isset = other8.__isset;
+ }
+ SQLUniqueConstraint& SQLUniqueConstraint::operator=(const 
SQLUniqueConstraint& other9) {
+   table_db = other9.table_db;
+   table_name = other9.table_name;
+   column_name = other9.column_name;
+   key_seq = other9.key_seq;
+   uk_name = other9.uk_name;
+   enable_cstr = other9.enable_cstr;
+   validate_cstr = other9.validate_cstr;
+   rely_cstr = other9.rely_cstr;
+   __isset = other9.__isset;
+   return *this;
+ }
+ void SQLUniqueConstraint::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "SQLUniqueConstraint(";
+   out << "table_db=" << to_string(table_db);
+   out << ", " << "table_name=" << to_string(table_name);
+   out << ", " << "column_name=" << to_string(column_name);
+   out << ", " << "key_seq=" << to_string(key_seq);
+   out << ", " << "uk_name=" << to_string(uk_name);
+   out << ", " << "enable_cstr=" << to_string(enable_cstr);
+   out << ", " << "validate_cstr=" << to_string(validate_cstr);
+   out << ", " << "rely_cstr=" << to_string(rely_cstr);
+   out << ")";
+ }
+ 
+ 
+ SQLNotNullConstraint::~SQLNotNullConstraint() throw() {
+ }
+ 
+ 
+ void SQLNotNullConstraint::__set_table_db(const std::string& val) {
+   this->table_db = val;
+ }
+ 
+ void SQLNotNullConstraint::__set_table_name(const std::string& val) {
+   this->table_name = val;
+ }
+ 
+ void SQLNotNullConstraint::__set_column_name(const std::string& val) {
+   this->column_name = val;
+ }
+ 
+ void SQLNotNullConstraint::__set_nn_name(const std::string& val) {
+   this->nn_name = val;
+ }
+ 
+ void SQLNotNullConstraint::__set_enable_cstr(const bool val) {
+   this->enable_cstr = val;
+ }
+ 
+ void SQLNotNullConstraint::__set_validate_cstr(const bool val) {
+   this->validate_cstr = val;
+ }
+ 
+ void SQLNotNullConstraint::__set_rely_cstr(const bool val) {
+   this->rely_cstr = val;
+ }
+ 
+ uint32_t SQLNotNullConstraint::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->table_db);
+           this->__isset.table_db = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->table_name);
+           this->__isset.table_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->column_name);
+           this->__isset.column_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 4:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->nn_name);
+           this->__isset.nn_name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 5:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->enable_cstr);
+           this->__isset.enable_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 6:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->validate_cstr);
+           this->__isset.validate_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 7:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->rely_cstr);
+           this->__isset.rely_cstr = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t SQLNotNullConstraint::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("SQLNotNullConstraint");
+ 
+   xfer += oprot->writeFieldBegin("table_db", 
::apache::thrift::protocol::T_STRING, 1);
+   xfer += oprot->writeString(this->table_db);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("table_name", 
::apache::thrift::protocol::T_STRING, 2);
+   xfer += oprot->writeString(this->table_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("column_name", 
::apache::thrift::protocol::T_STRING, 3);
+   xfer += oprot->writeString(this->column_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("nn_name", 
::apache::thrift::protocol::T_STRING, 4);
+   xfer += oprot->writeString(this->nn_name);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("enable_cstr", 
::apache::thrift::protocol::T_BOOL, 5);
+   xfer += oprot->writeBool(this->enable_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("validate_cstr", 
::apache::thrift::protocol::T_BOOL, 6);
+   xfer += oprot->writeBool(this->validate_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("rely_cstr", 
::apache::thrift::protocol::T_BOOL, 7);
+   xfer += oprot->writeBool(this->rely_cstr);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(SQLNotNullConstraint &a, SQLNotNullConstraint &b) {
+   using ::std::swap;
+   swap(a.table_db, b.table_db);
+   swap(a.table_name, b.table_name);
+   swap(a.column_name, b.column_name);
+   swap(a.nn_name, b.nn_name);
+   swap(a.enable_cstr, b.enable_cstr);
+   swap(a.validate_cstr, b.validate_cstr);
+   swap(a.rely_cstr, b.rely_cstr);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ SQLNotNullConstraint::SQLNotNullConstraint(const SQLNotNullConstraint& 
other10) {
+   table_db = other10.table_db;
+   table_name = other10.table_name;
+   column_name = other10.column_name;
+   nn_name = other10.nn_name;
+   enable_cstr = other10.enable_cstr;
+   validate_cstr = other10.validate_cstr;
+   rely_cstr = other10.rely_cstr;
+   __isset = other10.__isset;
+ }
+ SQLNotNullConstraint& SQLNotNullConstraint::operator=(const 
SQLNotNullConstraint& other11) {
+   table_db = other11.table_db;
+   table_name = other11.table_name;
+   column_name = other11.column_name;
+   nn_name = other11.nn_name;
+   enable_cstr = other11.enable_cstr;
+   validate_cstr = other11.validate_cstr;
+   rely_cstr = other11.rely_cstr;
+   __isset = other11.__isset;
+   return *this;
+ }
+ void SQLNotNullConstraint::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "SQLNotNullConstraint(";
+   out << "table_db=" << to_string(table_db);
+   out << ", " << "table_name=" << to_string(table_name);
+   out << ", " << "column_name=" << to_string(column_name);
+   out << ", " << "nn_name=" << to_string(nn_name);
+   out << ", " << "enable_cstr=" << to_string(enable_cstr);
+   out << ", " << "validate_cstr=" << to_string(validate_cstr);
+   out << ", " << "rely_cstr=" << to_string(rely_cstr);
+   out << ")";
+ }
+ 
+ 
+ Type::~Type() throw() {
+ }
+ 
+ 
+ void Type::__set_name(const std::string& val) {
+   this->name = val;
+ }
+ 
+ void Type::__set_type1(const std::string& val) {
+   this->type1 = val;
+ __isset.type1 = true;
+ }
+ 
+ void Type::__set_type2(const std::string& val) {
+   this->type2 = val;
+ __isset.type2 = true;
+ }
+ 
+ void Type::__set_fields(const std::vector<FieldSchema> & val) {
+   this->fields = val;
+ __isset.fields = true;
+ }
+ 
+ uint32_t Type::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->name);
+           this->__isset.name = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->type1);
+           this->__isset.type1 = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->type2);
+           this->__isset.type2 = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 4:
+         if (ftype == ::apache::thrift::protocol::T_LIST) {
+           {
+             this->fields.clear();
+             uint32_t _size12;
+             ::apache::thrift::protocol::TType _etype15;
+             xfer += iprot->readListBegin(_etype15, _size12);
+             this->fields.resize(_size12);
+             uint32_t _i16;
+             for (_i16 = 0; _i16 < _size12; ++_i16)
+             {
+               xfer += this->fields[_i16].read(iprot);
+             }
+             xfer += iprot->readListEnd();
+           }
+           this->__isset.fields = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t Type::write(::apache::thrift::protocol::TProtocol* oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("Type");
+ 
+   xfer += oprot->writeFieldBegin("name", 
::apache::thrift::protocol::T_STRING, 1);
+   xfer += oprot->writeString(this->name);
+   xfer += oprot->writeFieldEnd();
+ 
+   if (this->__isset.type1) {
+     xfer += oprot->writeFieldBegin("type1", 
::apache::thrift::protocol::T_STRING, 2);
+     xfer += oprot->writeString(this->type1);
+     xfer += oprot->writeFieldEnd();
+   }
+   if (this->__isset.type2) {
+     xfer += oprot->writeFieldBegin("type2", 
::apache::thrift::protocol::T_STRING, 3);
+     xfer += oprot->writeString(this->type2);
+     xfer += oprot->writeFieldEnd();
+   }
+   if (this->__isset.fields) {
+     xfer += oprot->writeFieldBegin("fields", 
::apache::thrift::protocol::T_LIST, 4);
+     {
+       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, 
static_cast<uint32_t>(this->fields.size()));
+       std::vector<FieldSchema> ::const_iterator _iter17;
+       for (_iter17 = this->fields.begin(); _iter17 != this->fields.end(); 
++_iter17)
+       {
+         xfer += (*_iter17).write(oprot);
+       }
+       xfer += oprot->writeListEnd();
+     }
+     xfer += oprot->writeFieldEnd();
+   }
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(Type &a, Type &b) {
+   using ::std::swap;
+   swap(a.name, b.name);
+   swap(a.type1, b.type1);
+   swap(a.type2, b.type2);
+   swap(a.fields, b.fields);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ Type::Type(const Type& other18) {
+   name = other18.name;
+   type1 = other18.type1;
+   type2 = other18.type2;
+   fields = other18.fields;
+   __isset = other18.__isset;
+ }
+ Type& Type::operator=(const Type& other19) {
+   name = other19.name;
+   type1 = other19.type1;
+   type2 = other19.type2;
+   fields = other19.fields;
+   __isset = other19.__isset;
+   return *this;
+ }
+ void Type::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "Type(";
+   out << "name=" << to_string(name);
+   out << ", " << "type1="; (__isset.type1 ? (out << to_string(type1)) : (out 
<< "<null>"));
+   out << ", " << "type2="; (__isset.type2 ? (out << to_string(type2)) : (out 
<< "<null>"));
+   out << ", " << "fields="; (__isset.fields ? (out << to_string(fields)) : 
(out << "<null>"));
+   out << ")";
+ }
+ 
+ 
+ HiveObjectRef::~HiveObjectRef() throw() {
+ }
+ 
+ 
+ void HiveObjectRef::__set_objectType(const HiveObjectType::type val) {
+   this->objectType = val;
+ }
+ 
+ void HiveObjectRef::__set_dbName(const std::string& val) {
+   this->dbName = val;
+ }
+ 
+ void HiveObjectRef::__set_objectName(const std::string& val) {
+   this->objectName = val;
+ }
+ 
+ void HiveObjectRef::__set_partValues(const std::vector<std::string> & val) {
+   this->partValues = val;
+ }
+ 
+ void HiveObjectRef::__set_columnName(const std::string& val) {
+   this->columnName = val;
+ }
+ 
+ uint32_t HiveObjectRef::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           int32_t ecast20;
+           xfer += iprot->readI32(ecast20);
+           this->objectType = (HiveObjectType::type)ecast20;
+           this->__isset.objectType = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->dbName);
+           this->__isset.dbName = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->objectName);
+           this->__isset.objectName = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 4:
+         if (ftype == ::apache::thrift::protocol::T_LIST) {
+           {
+             this->partValues.clear();
+             uint32_t _size21;
+             ::apache::thrift::protocol::TType _etype24;
+             xfer += iprot->readListBegin(_etype24, _size21);
+             this->partValues.resize(_size21);
+             uint32_t _i25;
+             for (_i25 = 0; _i25 < _size21; ++_i25)
+             {
+               xfer += iprot->readString(this->partValues[_i25]);
+             }
+             xfer += iprot->readListEnd();
+           }
+           this->__isset.partValues = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 5:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->columnName);
+           this->__isset.columnName = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t HiveObjectRef::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("HiveObjectRef");
+ 
+   xfer += oprot->writeFieldBegin("objectType", 
::apache::thrift::protocol::T_I32, 1);
+   xfer += oprot->writeI32((int32_t)this->objectType);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("dbName", 
::apache::thrift::protocol::T_STRING, 2);
+   xfer += oprot->writeString(this->dbName);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("objectName", 
::apache::thrift::protocol::T_STRING, 3);
+   xfer += oprot->writeString(this->objectName);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("partValues", 
::apache::thrift::protocol::T_LIST, 4);
+   {
+     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, 
static_cast<uint32_t>(this->partValues.size()));
+     std::vector<std::string> ::const_iterator _iter26;
+     for (_iter26 = this->partValues.begin(); _iter26 != 
this->partValues.end(); ++_iter26)
+     {
+       xfer += oprot->writeString((*_iter26));
+     }
+     xfer += oprot->writeListEnd();
+   }
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("columnName", 
::apache::thrift::protocol::T_STRING, 5);
+   xfer += oprot->writeString(this->columnName);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(HiveObjectRef &a, HiveObjectRef &b) {
+   using ::std::swap;
+   swap(a.objectType, b.objectType);
+   swap(a.dbName, b.dbName);
+   swap(a.objectName, b.objectName);
+   swap(a.partValues, b.partValues);
+   swap(a.columnName, b.columnName);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ HiveObjectRef::HiveObjectRef(const HiveObjectRef& other27) {
+   objectType = other27.objectType;
+   dbName = other27.dbName;
+   objectName = other27.objectName;
+   partValues = other27.partValues;
+   columnName = other27.columnName;
+   __isset = other27.__isset;
+ }
+ HiveObjectRef& HiveObjectRef::operator=(const HiveObjectRef& other28) {
+   objectType = other28.objectType;
+   dbName = other28.dbName;
+   objectName = other28.objectName;
+   partValues = other28.partValues;
+   columnName = other28.columnName;
+   __isset = other28.__isset;
+   return *this;
+ }
+ void HiveObjectRef::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "HiveObjectRef(";
+   out << "objectType=" << to_string(objectType);
+   out << ", " << "dbName=" << to_string(dbName);
+   out << ", " << "objectName=" << to_string(objectName);
+   out << ", " << "partValues=" << to_string(partValues);
+   out << ", " << "columnName=" << to_string(columnName);
+   out << ")";
+ }
+ 
+ 
+ PrivilegeGrantInfo::~PrivilegeGrantInfo() throw() {
+ }
+ 
+ 
+ void PrivilegeGrantInfo::__set_privilege(const std::string& val) {
+   this->privilege = val;
+ }
+ 
+ void PrivilegeGrantInfo::__set_createTime(const int32_t val) {
+   this->createTime = val;
+ }
+ 
+ void PrivilegeGrantInfo::__set_grantor(const std::string& val) {
+   this->grantor = val;
+ }
+ 
+ void PrivilegeGrantInfo::__set_grantorType(const PrincipalType::type val) {
+   this->grantorType = val;
+ }
+ 
+ void PrivilegeGrantInfo::__set_grantOption(const bool val) {
+   this->grantOption = val;
+ }
+ 
+ uint32_t PrivilegeGrantInfo::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->privilege);
+           this->__isset.privilege = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           xfer += iprot->readI32(this->createTime);
+           this->__isset.createTime = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->grantor);
+           this->__isset.grantor = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 4:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           int32_t ecast29;
+           xfer += iprot->readI32(ecast29);
+           this->grantorType = (PrincipalType::type)ecast29;
+           this->__isset.grantorType = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 5:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->grantOption);
+           this->__isset.grantOption = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t PrivilegeGrantInfo::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("PrivilegeGrantInfo");
+ 
+   xfer += oprot->writeFieldBegin("privilege", 
::apache::thrift::protocol::T_STRING, 1);
+   xfer += oprot->writeString(this->privilege);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("createTime", 
::apache::thrift::protocol::T_I32, 2);
+   xfer += oprot->writeI32(this->createTime);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("grantor", 
::apache::thrift::protocol::T_STRING, 3);
+   xfer += oprot->writeString(this->grantor);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("grantorType", 
::apache::thrift::protocol::T_I32, 4);
+   xfer += oprot->writeI32((int32_t)this->grantorType);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("grantOption", 
::apache::thrift::protocol::T_BOOL, 5);
+   xfer += oprot->writeBool(this->grantOption);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(PrivilegeGrantInfo &a, PrivilegeGrantInfo &b) {
+   using ::std::swap;
+   swap(a.privilege, b.privilege);
+   swap(a.createTime, b.createTime);
+   swap(a.grantor, b.grantor);
+   swap(a.grantorType, b.grantorType);
+   swap(a.grantOption, b.grantOption);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ PrivilegeGrantInfo::PrivilegeGrantInfo(const PrivilegeGrantInfo& other30) {
+   privilege = other30.privilege;
+   createTime = other30.createTime;
+   grantor = other30.grantor;
+   grantorType = other30.grantorType;
+   grantOption = other30.grantOption;
+   __isset = other30.__isset;
+ }
+ PrivilegeGrantInfo& PrivilegeGrantInfo::operator=(const PrivilegeGrantInfo& 
other31) {
+   privilege = other31.privilege;
+   createTime = other31.createTime;
+   grantor = other31.grantor;
+   grantorType = other31.grantorType;
+   grantOption = other31.grantOption;
+   __isset = other31.__isset;
+   return *this;
+ }
+ void PrivilegeGrantInfo::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "PrivilegeGrantInfo(";
+   out << "privilege=" << to_string(privilege);
+   out << ", " << "createTime=" << to_string(createTime);
+   out << ", " << "grantor=" << to_string(grantor);
+   out << ", " << "grantorType=" << to_string(grantorType);
+   out << ", " << "grantOption=" << to_string(grantOption);
+   out << ")";
+ }
+ 
+ 
+ HiveObjectPrivilege::~HiveObjectPrivilege() throw() {
+ }
+ 
+ 
+ void HiveObjectPrivilege::__set_hiveObject(const HiveObjectRef& val) {
+   this->hiveObject = val;
+ }
+ 
+ void HiveObjectPrivilege::__set_principalName(const std::string& val) {
+   this->principalName = val;
+ }
+ 
+ void HiveObjectPrivilege::__set_principalType(const PrincipalType::type val) {
+   this->principalType = val;
+ }
+ 
+ void HiveObjectPrivilege::__set_grantInfo(const PrivilegeGrantInfo& val) {
+   this->grantInfo = val;
+ }
+ 
+ uint32_t HiveObjectPrivilege::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->hiveObject.read(iprot);
+           this->__isset.hiveObject = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->principalName);
+           this->__isset.principalName = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           int32_t ecast32;
+           xfer += iprot->readI32(ecast32);
+           this->principalType = (PrincipalType::type)ecast32;
+           this->__isset.principalType = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 4:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->grantInfo.read(iprot);
+           this->__isset.grantInfo = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t HiveObjectPrivilege::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("HiveObjectPrivilege");
+ 
+   xfer += oprot->writeFieldBegin("hiveObject", 
::apache::thrift::protocol::T_STRUCT, 1);
+   xfer += this->hiveObject.write(oprot);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("principalName", 
::apache::thrift::protocol::T_STRING, 2);
+   xfer += oprot->writeString(this->principalName);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("principalType", 
::apache::thrift::protocol::T_I32, 3);
+   xfer += oprot->writeI32((int32_t)this->principalType);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("grantInfo", 
::apache::thrift::protocol::T_STRUCT, 4);
+   xfer += this->grantInfo.write(oprot);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(HiveObjectPrivilege &a, HiveObjectPrivilege &b) {
+   using ::std::swap;
+   swap(a.hiveObject, b.hiveObject);
+   swap(a.principalName, b.principalName);
+   swap(a.principalType, b.principalType);
+   swap(a.grantInfo, b.grantInfo);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ HiveObjectPrivilege::HiveObjectPrivilege(const HiveObjectPrivilege& other33) {
+   hiveObject = other33.hiveObject;
+   principalName = other33.principalName;
+   principalType = other33.principalType;
+   grantInfo = other33.grantInfo;
+   __isset = other33.__isset;
+ }
+ HiveObjectPrivilege& HiveObjectPrivilege::operator=(const 
HiveObjectPrivilege& other34) {
+   hiveObject = other34.hiveObject;
+   principalName = other34.principalName;
+   principalType = other34.principalType;
+   grantInfo = other34.grantInfo;
+   __isset = other34.__isset;
+   return *this;
+ }
+ void HiveObjectPrivilege::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "HiveObjectPrivilege(";
+   out << "hiveObject=" << to_string(hiveObject);
+   out << ", " << "principalName=" << to_string(principalName);
+   out << ", " << "principalType=" << to_string(principalType);
+   out << ", " << "grantInfo=" << to_string(grantInfo);
+   out << ")";
+ }
+ 
+ 
+ PrivilegeBag::~PrivilegeBag() throw() {
+ }
+ 
+ 
+ void PrivilegeBag::__set_privileges(const std::vector<HiveObjectPrivilege> & 
val) {
+   this->privileges = val;
+ }
+ 
+ uint32_t PrivilegeBag::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_LIST) {
+           {
+             this->privileges.clear();
+             uint32_t _size35;
+             ::apache::thrift::protocol::TType _etype38;
+             xfer += iprot->readListBegin(_etype38, _size35);
+             this->privileges.resize(_size35);
+             uint32_t _i39;
+             for (_i39 = 0; _i39 < _size35; ++_i39)
+             {
+               xfer += this->privileges[_i39].read(iprot);
+             }
+             xfer += iprot->readListEnd();
+           }
+           this->__isset.privileges = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t PrivilegeBag::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("PrivilegeBag");
+ 
+   xfer += oprot->writeFieldBegin("privileges", 
::apache::thrift::protocol::T_LIST, 1);
+   {
+     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, 
static_cast<uint32_t>(this->privileges.size()));
+     std::vector<HiveObjectPrivilege> ::const_iterator _iter40;
+     for (_iter40 = this->privileges.begin(); _iter40 != 
this->privileges.end(); ++_iter40)
+     {
+       xfer += (*_iter40).write(oprot);
+     }
+     xfer += oprot->writeListEnd();
+   }
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(PrivilegeBag &a, PrivilegeBag &b) {
+   using ::std::swap;
+   swap(a.privileges, b.privileges);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ PrivilegeBag::PrivilegeBag(const PrivilegeBag& other41) {
+   privileges = other41.privileges;
+   __isset = other41.__isset;
+ }
+ PrivilegeBag& PrivilegeBag::operator=(const PrivilegeBag& other42) {
+   privileges = other42.privileges;
+   __isset = other42.__isset;
+   return *this;
+ }
+ void PrivilegeBag::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "PrivilegeBag(";
+   out << "privileges=" << to_string(privileges);
+   out << ")";
+ }
+ 
+ 
+ PrincipalPrivilegeSet::~PrincipalPrivilegeSet() throw() {
+ }
+ 
+ 
+ void PrincipalPrivilegeSet::__set_userPrivileges(const std::map<std::string, 
std::vector<PrivilegeGrantInfo> > & val) {
+   this->userPrivileges = val;
+ }
+ 
+ void PrincipalPrivilegeSet::__set_groupPrivileges(const std::map<std::string, 
std::vector<PrivilegeGrantInfo> > & val) {
+   this->groupPrivileges = val;
+ }
+ 
+ void PrincipalPrivilegeSet::__set_rolePrivileges(const std::map<std::string, 
std::vector<PrivilegeGrantInfo> > & val) {
+   this->rolePrivileges = val;
+ }
+ 
+ uint32_t PrincipalPrivilegeSet::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_MAP) {
+           {
+             this->userPrivileges.clear();
+             uint32_t _size43;
+             ::apache::thrift::protocol::TType _ktype44;
+             ::apache::thrift::protocol::TType _vtype45;
+             xfer += iprot->readMapBegin(_ktype44, _vtype45, _size43);
+             uint32_t _i47;
+             for (_i47 = 0; _i47 < _size43; ++_i47)
+             {
+               std::string _key48;
+               xfer += iprot->readString(_key48);
+               std::vector<PrivilegeGrantInfo> & _val49 = 
this->userPrivileges[_key48];
+               {
+                 _val49.clear();
+                 uint32_t _size50;
+                 ::apache::thrift::protocol::TType _etype53;
+                 xfer += iprot->readListBegin(_etype53, _size50);
+                 _val49.resize(_size50);
+                 uint32_t _i54;
+                 for (_i54 = 0; _i54 < _size50; ++_i54)
+                 {
+                   xfer += _val49[_i54].read(iprot);
+                 }
+                 xfer += iprot->readListEnd();
+               }
+             }
+             xfer += iprot->readMapEnd();
+           }
+           this->__isset.userPrivileges = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_MAP) {
+           {
+             this->groupPrivileges.clear();
+             uint32_t _size55;
+             ::apache::thrift::protocol::TType _ktype56;
+             ::apache::thrift::protocol::TType _vtype57;
+             xfer += iprot->readMapBegin(_ktype56, _vtype57, _size55);
+             uint32_t _i59;
+             for (_i59 = 0; _i59 < _size55; ++_i59)
+             {
+               std::string _key60;
+               xfer += iprot->readString(_key60);
+               std::vector<PrivilegeGrantInfo> & _val61 = 
this->groupPrivileges[_key60];
+               {
+                 _val61.clear();
+                 uint32_t _size62;
+                 ::apache::thrift::protocol::TType _etype65;
+                 xfer += iprot->readListBegin(_etype65, _size62);
+                 _val61.resize(_size62);
+                 uint32_t _i66;
+                 for (_i66 = 0; _i66 < _size62; ++_i66)
+                 {
+                   xfer += _val61[_i66].read(iprot);
+                 }
+                 xfer += iprot->readListEnd();
+               }
+             }
+             xfer += iprot->readMapEnd();
+           }
+           this->__isset.groupPrivileges = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_MAP) {
+           {
+             this->rolePrivileges.clear();
+             uint32_t _size67;
+             ::apache::thrift::protocol::TType _ktype68;
+             ::apache::thrift::protocol::TType _vtype69;
+             xfer += iprot->readMapBegin(_ktype68, _vtype69, _size67);
+             uint32_t _i71;
+             for (_i71 = 0; _i71 < _size67; ++_i71)
+             {
+               std::string _key72;
+               xfer += iprot->readString(_key72);
+               std::vector<PrivilegeGrantInfo> & _val73 = 
this->rolePrivileges[_key72];
+               {
+                 _val73.clear();
+                 uint32_t _size74;
+                 ::apache::thrift::protocol::TType _etype77;
+                 xfer += iprot->readListBegin(_etype77, _size74);
+                 _val73.resize(_size74);
+                 uint32_t _i78;
+                 for (_i78 = 0; _i78 < _size74; ++_i78)
+                 {
+                   xfer += _val73[_i78].read(iprot);
+                 }
+                 xfer += iprot->readListEnd();
+               }
+             }
+             xfer += iprot->readMapEnd();
+           }
+           this->__isset.rolePrivileges = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t PrincipalPrivilegeSet::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("PrincipalPrivilegeSet");
+ 
+   xfer += oprot->writeFieldBegin("userPrivileges", 
::apache::thrift::protocol::T_MAP, 1);
+   {
+     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, 
::apache::thrift::protocol::T_LIST, 
static_cast<uint32_t>(this->userPrivileges.size()));
+     std::map<std::string, std::vector<PrivilegeGrantInfo> > ::const_iterator 
_iter79;
+     for (_iter79 = this->userPrivileges.begin(); _iter79 != 
this->userPrivileges.end(); ++_iter79)
+     {
+       xfer += oprot->writeString(_iter79->first);
+       {
+         xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, 
static_cast<uint32_t>(_iter79->second.size()));
+         std::vector<PrivilegeGrantInfo> ::const_iterator _iter80;
+         for (_iter80 = _iter79->second.begin(); _iter80 != 
_iter79->second.end(); ++_iter80)
+         {
+           xfer += (*_iter80).write(oprot);
+         }
+         xfer += oprot->writeListEnd();
+       }
+     }
+     xfer += oprot->writeMapEnd();
+   }
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("groupPrivileges", 
::apache::thrift::protocol::T_MAP, 2);
+   {
+     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, 
::apache::thrift::protocol::T_LIST, 
static_cast<uint32_t>(this->groupPrivileges.size()));
+     std::map<std::string, std::vector<PrivilegeGrantInfo> > ::const_iterator 
_iter81;
+     for (_iter81 = this->groupPrivileges.begin(); _iter81 != 
this->groupPrivileges.end(); ++_iter81)
+     {
+       xfer += oprot->writeString(_iter81->first);
+       {
+         xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, 
static_cast<uint32_t>(_iter81->second.size()));
+         std::vector<PrivilegeGrantInfo> ::const_iterator _iter82;
+         for (_iter82 = _iter81->second.begin(); _iter82 != 
_iter81->second.end(); ++_iter82)
+         {
+           xfer += (*_iter82).write(oprot);
+         }
+         xfer += oprot->writeListEnd();
+       }
+     }
+     xfer += oprot->writeMapEnd();
+   }
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("rolePrivileges", 
::apache::thrift::protocol::T_MAP, 3);
+   {
+     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, 
::apache::thrift::protocol::T_LIST, 
static_cast<uint32_t>(this->rolePrivileges.size()));
+     std::map<std::string, std::vector<PrivilegeGrantInfo> > ::const_iterator 
_iter83;
+     for (_iter83 = this->rolePrivileges.begin(); _iter83 != 
this->rolePrivileges.end(); ++_iter83)
+     {
+       xfer += oprot->writeString(_iter83->first);
+       {
+         xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, 
static_cast<uint32_t>(_iter83->second.size()));
+         std::vector<PrivilegeGrantInfo> ::const_iterator _iter84;
+         for (_iter84 = _iter83->second.begin(); _iter84 != 
_iter83->second.end(); ++_iter84)
+         {
+           xfer += (*_iter84).write(oprot);
+         }
+         xfer += oprot->writeListEnd();
+       }
+     }
+     xfer += oprot->writeMapEnd();
+   }
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(PrincipalPrivilegeSet &a, PrincipalPrivilegeSet &b) {
+   using ::std::swap;
+   swap(a.userPrivileges, b.userPrivileges);
+   swap(a.groupPrivileges, b.groupPrivileges);
+   swap(a.rolePrivileges, b.rolePrivileges);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ PrincipalPrivilegeSet::PrincipalPrivilegeSet(const PrincipalPrivilegeSet& 
other85) {
+   userPrivileges = other85.userPrivileges;
+   groupPrivileges = other85.groupPrivileges;
+   rolePrivileges = other85.rolePrivileges;
+   __isset = other85.__isset;
+ }
+ PrincipalPrivilegeSet& PrincipalPrivilegeSet::operator=(const 
PrincipalPrivilegeSet& other86) {
+   userPrivileges = other86.userPrivileges;
+   groupPrivileges = other86.groupPrivileges;
+   rolePrivileges = other86.rolePrivileges;
+   __isset = other86.__isset;
+   return *this;
+ }
+ void PrincipalPrivilegeSet::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "PrincipalPrivilegeSet(";
+   out << "userPrivileges=" << to_string(userPrivileges);
+   out << ", " << "groupPrivileges=" << to_string(groupPrivileges);
+   out << ", " << "rolePrivileges=" << to_string(rolePrivileges);
+   out << ")";
+ }
+ 
+ 
+ GrantRevokePrivilegeRequest::~GrantRevokePrivilegeRequest() throw() {
+ }
+ 
+ 
+ void GrantRevokePrivilegeRequest::__set_requestType(const 
GrantRevokeType::type val) {
+   this->requestType = val;
+ }
+ 
+ void GrantRevokePrivilegeRequest::__set_privileges(const PrivilegeBag& val) {
+   this->privileges = val;
+ }
+ 
+ void GrantRevokePrivilegeRequest::__set_revokeGrantOption(const bool val) {
+   this->revokeGrantOption = val;
+ __isset.revokeGrantOption = true;
+ }
+ 
+ uint32_t 
GrantRevokePrivilegeRequest::read(::apache::thrift::protocol::TProtocol* iprot) 
{
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           int32_t ecast87;
+           xfer += iprot->readI32(ecast87);
+           this->requestType = (GrantRevokeType::type)ecast87;
+           this->__isset.requestType = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->privileges.read(iprot);
+           this->__isset.privileges = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->revokeGrantOption);
+           this->__isset.revokeGrantOption = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t 
GrantRevokePrivilegeRequest::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("GrantRevokePrivilegeRequest");
+ 
+   xfer += oprot->writeFieldBegin("requestType", 
::apache::thrift::protocol::T_I32, 1);
+   xfer += oprot->writeI32((int32_t)this->requestType);
+   xfer += oprot->writeFieldEnd();
+ 
+   xfer += oprot->writeFieldBegin("privileges", 
::apache::thrift::protocol::T_STRUCT, 2);
+   xfer += this->privileges.write(oprot);
+   xfer += oprot->writeFieldEnd();
+ 
+   if (this->__isset.revokeGrantOption) {
+     xfer += oprot->writeFieldBegin("revokeGrantOption", 
::apache::thrift::protocol::T_BOOL, 3);
+     xfer += oprot->writeBool(this->revokeGrantOption);
+     xfer += oprot->writeFieldEnd();
+   }
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(GrantRevokePrivilegeRequest &a, GrantRevokePrivilegeRequest &b) {
+   using ::std::swap;
+   swap(a.requestType, b.requestType);
+   swap(a.privileges, b.privileges);
+   swap(a.revokeGrantOption, b.revokeGrantOption);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ GrantRevokePrivilegeRequest::GrantRevokePrivilegeRequest(const 
GrantRevokePrivilegeRequest& other88) {
+   requestType = other88.requestType;
+   privileges = other88.privileges;
+   revokeGrantOption = other88.revokeGrantOption;
+   __isset = other88.__isset;
+ }
+ GrantRevokePrivilegeRequest& GrantRevokePrivilegeRequest::operator=(const 
GrantRevokePrivilegeRequest& other89) {
+   requestType = other89.requestType;
+   privileges = other89.privileges;
+   revokeGrantOption = other89.revokeGrantOption;
+   __isset = other89.__isset;
+   return *this;
+ }
+ void GrantRevokePrivilegeRequest::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "GrantRevokePrivilegeRequest(";
+   out << "requestType=" << to_string(requestType);
+   out << ", " << "privileges=" << to_string(privileges);
+   out << ", " << "revokeGrantOption="; (__isset.revokeGrantOption ? (out << 
to_string(revokeGrantOption)) : (out << "<null>"));
+   out << ")";
+ }
+ 
+ 
+ GrantRevokePrivilegeResponse::~GrantRevokePrivilegeResponse() throw() {
+ }
+ 
+ 
+ void GrantRevokePrivilegeResponse::__set_success(const bool val) {
+   this->success = val;
+ __isset.success = true;
+ }
+ 
+ uint32_t 
GrantRevokePrivilegeResponse::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->success);
+           this->__isset.success = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t 
GrantRevokePrivilegeResponse::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("GrantRevokePrivilegeResponse");
+ 
+   if (this->__isset.success) {
+     xfer += oprot->writeFieldBegin("success", 
::apache::thrift::protocol::T_BOOL, 1);
+     xfer += oprot->writeBool(this->success);
+     xfer += oprot->writeFieldEnd();
+   }
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ void swap(GrantRevokePrivilegeResponse &a, GrantRevokePrivilegeResponse &b) {
+   using ::std::swap;
+   swap(a.success, b.success);
+   swap(a.__isset, b.__isset);
+ }
+ 
+ GrantRevokePrivilegeResponse::GrantRevokePrivilegeResponse(const 
GrantRevokePrivilegeResponse& other90) {
+   success = other90.success;
+   __isset = other90.__isset;
+ }
+ GrantRevokePrivilegeResponse& GrantRevokePrivilegeResponse::operator=(const 
GrantRevokePrivilegeResponse& other91) {
+   success = other91.success;
+   __isset = other91.__isset;
+   return *this;
+ }
+ void GrantRevokePrivilegeResponse::printTo(std::ostream& out) const {
+   using ::apache::thrift::to_string;
+   out << "GrantRevokePrivilegeResponse(";
+   out << "success="; (__isset.success ? (out << to_string(success)) : (out << 
"<null>"));
+   out << ")";
+ }
+ 
+ 
+ Role::~Role() throw() {
+ }
+ 
+ 
+ void Role::__set_roleName(const std::string& val) {
+   this->roleName = val;
+ }
+ 
+ void Role::__set_createTime(const int32_t val) {
+   this->createTime = val;
+ }
+ 
+ void Role::__set_ownerName(const std::string& val) {
+   this->ownerName = val;
+ }
+ 
+ uint32_t Role::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->roleName);
+           this->__isset.roleName = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_I32) {
+           xfer += iprot->readI32(this->createTime);
+           this->__isset.createTime = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRING) {
+           xfer += iprot->readString(this->ownerName);
+           this->__isset.ownerName = true;
+         } else {
+           xfer += ip

<TRUNCATED>

Reply via email to