http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/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..e374cb1 100644
--- a/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
+++ b/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (0.9.3)
+ * Autogenerated by Thrift Compiler (0.9.2)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -172,9 +172,11 @@ void Version::__set_comments(const std::string& val) {
   this->comments = val;
 }
 
+const char* Version::ascii_fingerprint = "07A9615F837F7D0A952B595DD3020972";
+const uint8_t Version::binary_fingerprint[16] = 
{0x07,0xA9,0x61,0x5F,0x83,0x7F,0x7D,0x0A,0x95,0x2B,0x59,0x5D,0xD3,0x02,0x09,0x72};
+
 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;
@@ -223,7 +225,7 @@ uint32_t 
Version::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Version::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Version");
 
   xfer += oprot->writeFieldBegin("version", 
::apache::thrift::protocol::T_STRING, 1);
@@ -236,6 +238,7 @@ uint32_t 
Version::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -257,12 +260,13 @@ Version& Version::operator=(const Version& other1) {
   __isset = other1.__isset;
   return *this;
 }
-void Version::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const Version& obj) {
+  using apache::thrift::to_string;
   out << "Version(";
-  out << "version=" << to_string(version);
-  out << ", " << "comments=" << to_string(comments);
+  out << "version=" << to_string(obj.version);
+  out << ", " << "comments=" << to_string(obj.comments);
   out << ")";
+  return out;
 }
 
 
@@ -282,9 +286,11 @@ void FieldSchema::__set_comment(const std::string& val) {
   this->comment = val;
 }
 
+const char* FieldSchema::ascii_fingerprint = 
"AB879940BD15B6B25691265F7384B271";
+const uint8_t FieldSchema::binary_fingerprint[16] = 
{0xAB,0x87,0x99,0x40,0xBD,0x15,0xB6,0xB2,0x56,0x91,0x26,0x5F,0x73,0x84,0xB2,0x71};
+
 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;
@@ -341,7 +347,7 @@ uint32_t 
FieldSchema::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t FieldSchema::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("FieldSchema");
 
   xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 
1);
@@ -358,6 +364,7 @@ uint32_t 
FieldSchema::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -382,13 +389,14 @@ FieldSchema& FieldSchema::operator=(const FieldSchema& 
other3) {
   __isset = other3.__isset;
   return *this;
 }
-void FieldSchema::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const FieldSchema& obj) {
+  using apache::thrift::to_string;
   out << "FieldSchema(";
-  out << "name=" << to_string(name);
-  out << ", " << "type=" << to_string(type);
-  out << ", " << "comment=" << to_string(comment);
+  out << "name=" << to_string(obj.name);
+  out << ", " << "type=" << to_string(obj.type);
+  out << ", " << "comment=" << to_string(obj.comment);
   out << ")";
+  return out;
 }
 
 
@@ -415,9 +423,11 @@ void Type::__set_fields(const std::vector<FieldSchema> & 
val) {
 __isset.fields = true;
 }
 
+const char* Type::ascii_fingerprint = "20DF02DE523C27F7066C7BD4D9120842";
+const uint8_t Type::binary_fingerprint[16] = 
{0x20,0xDF,0x02,0xDE,0x52,0x3C,0x27,0xF7,0x06,0x6C,0x7B,0xD4,0xD9,0x12,0x08,0x42};
+
 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;
@@ -494,7 +504,7 @@ uint32_t Type::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
 uint32_t Type::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Type");
 
   xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 
1);
@@ -526,6 +536,7 @@ uint32_t Type::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -553,14 +564,15 @@ Type& Type::operator=(const Type& other11) {
   __isset = other11.__isset;
   return *this;
 }
-void Type::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const Type& obj) {
+  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 << "name=" << to_string(obj.name);
+  out << ", " << "type1="; (obj.__isset.type1 ? (out << to_string(obj.type1)) 
: (out << "<null>"));
+  out << ", " << "type2="; (obj.__isset.type2 ? (out << to_string(obj.type2)) 
: (out << "<null>"));
+  out << ", " << "fields="; (obj.__isset.fields ? (out << 
to_string(obj.fields)) : (out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -588,9 +600,11 @@ void HiveObjectRef::__set_columnName(const std::string& 
val) {
   this->columnName = val;
 }
 
+const char* HiveObjectRef::ascii_fingerprint = 
"205CD8311CF3AA9EC161BAEF8D7C933C";
+const uint8_t HiveObjectRef::binary_fingerprint[16] = 
{0x20,0x5C,0xD8,0x31,0x1C,0xF3,0xAA,0x9E,0xC1,0x61,0xBA,0xEF,0x8D,0x7C,0x93,0x3C};
+
 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;
@@ -677,7 +691,7 @@ uint32_t 
HiveObjectRef::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t HiveObjectRef::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("HiveObjectRef");
 
   xfer += oprot->writeFieldBegin("objectType", 
::apache::thrift::protocol::T_I32, 1);
@@ -710,6 +724,7 @@ uint32_t 
HiveObjectRef::write(::apache::thrift::protocol::TProtocol* oprot) cons
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -740,15 +755,16 @@ HiveObjectRef& HiveObjectRef::operator=(const 
HiveObjectRef& other20) {
   __isset = other20.__isset;
   return *this;
 }
-void HiveObjectRef::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const HiveObjectRef& obj) {
+  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 << "objectType=" << to_string(obj.objectType);
+  out << ", " << "dbName=" << to_string(obj.dbName);
+  out << ", " << "objectName=" << to_string(obj.objectName);
+  out << ", " << "partValues=" << to_string(obj.partValues);
+  out << ", " << "columnName=" << to_string(obj.columnName);
   out << ")";
+  return out;
 }
 
 
@@ -776,9 +792,11 @@ void PrivilegeGrantInfo::__set_grantOption(const bool val) 
{
   this->grantOption = val;
 }
 
+const char* PrivilegeGrantInfo::ascii_fingerprint = 
"A58923AF7294BE492D6F90E07E8CEE1F";
+const uint8_t PrivilegeGrantInfo::binary_fingerprint[16] = 
{0xA5,0x89,0x23,0xAF,0x72,0x94,0xBE,0x49,0x2D,0x6F,0x90,0xE0,0x7E,0x8C,0xEE,0x1F};
+
 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;
@@ -853,7 +871,7 @@ uint32_t 
PrivilegeGrantInfo::read(::apache::thrift::protocol::TProtocol* iprot)
 
 uint32_t PrivilegeGrantInfo::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("PrivilegeGrantInfo");
 
   xfer += oprot->writeFieldBegin("privilege", 
::apache::thrift::protocol::T_STRING, 1);
@@ -878,6 +896,7 @@ uint32_t 
PrivilegeGrantInfo::write(::apache::thrift::protocol::TProtocol* oprot)
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -908,15 +927,16 @@ PrivilegeGrantInfo& PrivilegeGrantInfo::operator=(const 
PrivilegeGrantInfo& othe
   __isset = other23.__isset;
   return *this;
 }
-void PrivilegeGrantInfo::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const PrivilegeGrantInfo& obj) {
+  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 << "privilege=" << to_string(obj.privilege);
+  out << ", " << "createTime=" << to_string(obj.createTime);
+  out << ", " << "grantor=" << to_string(obj.grantor);
+  out << ", " << "grantorType=" << to_string(obj.grantorType);
+  out << ", " << "grantOption=" << to_string(obj.grantOption);
   out << ")";
+  return out;
 }
 
 
@@ -940,9 +960,11 @@ void HiveObjectPrivilege::__set_grantInfo(const 
PrivilegeGrantInfo& val) {
   this->grantInfo = val;
 }
 
+const char* HiveObjectPrivilege::ascii_fingerprint = 
"83D71969B23BD853E29DBA9D43B29AF8";
+const uint8_t HiveObjectPrivilege::binary_fingerprint[16] = 
{0x83,0xD7,0x19,0x69,0xB2,0x3B,0xD8,0x53,0xE2,0x9D,0xBA,0x9D,0x43,0xB2,0x9A,0xF8};
+
 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;
@@ -1009,7 +1031,7 @@ uint32_t 
HiveObjectPrivilege::read(::apache::thrift::protocol::TProtocol* iprot)
 
 uint32_t HiveObjectPrivilege::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("HiveObjectPrivilege");
 
   xfer += oprot->writeFieldBegin("hiveObject", 
::apache::thrift::protocol::T_STRUCT, 1);
@@ -1030,6 +1052,7 @@ uint32_t 
HiveObjectPrivilege::write(::apache::thrift::protocol::TProtocol* oprot
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1057,14 +1080,15 @@ HiveObjectPrivilege& 
HiveObjectPrivilege::operator=(const HiveObjectPrivilege& o
   __isset = other26.__isset;
   return *this;
 }
-void HiveObjectPrivilege::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const HiveObjectPrivilege& obj) {
+  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 << "hiveObject=" << to_string(obj.hiveObject);
+  out << ", " << "principalName=" << to_string(obj.principalName);
+  out << ", " << "principalType=" << to_string(obj.principalType);
+  out << ", " << "grantInfo=" << to_string(obj.grantInfo);
   out << ")";
+  return out;
 }
 
 
@@ -1076,9 +1100,11 @@ void PrivilegeBag::__set_privileges(const 
std::vector<HiveObjectPrivilege> & val
   this->privileges = val;
 }
 
+const char* PrivilegeBag::ascii_fingerprint = 
"BB89E4701B7B709B046A74C90B1147F2";
+const uint8_t PrivilegeBag::binary_fingerprint[16] = 
{0xBB,0x89,0xE4,0x70,0x1B,0x7B,0x70,0x9B,0x04,0x6A,0x74,0xC9,0x0B,0x11,0x47,0xF2};
+
 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;
@@ -1131,7 +1157,7 @@ uint32_t 
PrivilegeBag::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t PrivilegeBag::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("PrivilegeBag");
 
   xfer += oprot->writeFieldBegin("privileges", 
::apache::thrift::protocol::T_LIST, 1);
@@ -1148,6 +1174,7 @@ uint32_t 
PrivilegeBag::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1166,11 +1193,12 @@ PrivilegeBag& PrivilegeBag::operator=(const 
PrivilegeBag& other34) {
   __isset = other34.__isset;
   return *this;
 }
-void PrivilegeBag::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const PrivilegeBag& obj) {
+  using apache::thrift::to_string;
   out << "PrivilegeBag(";
-  out << "privileges=" << to_string(privileges);
+  out << "privileges=" << to_string(obj.privileges);
   out << ")";
+  return out;
 }
 
 
@@ -1190,9 +1218,11 @@ void PrincipalPrivilegeSet::__set_rolePrivileges(const 
std::map<std::string, std
   this->rolePrivileges = val;
 }
 
+const char* PrincipalPrivilegeSet::ascii_fingerprint = 
"08F75D2533906EA87BE34EA640856683";
+const uint8_t PrincipalPrivilegeSet::binary_fingerprint[16] = 
{0x08,0xF7,0x5D,0x25,0x33,0x90,0x6E,0xA8,0x7B,0xE3,0x4E,0xA6,0x40,0x85,0x66,0x83};
+
 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;
@@ -1330,7 +1360,7 @@ uint32_t 
PrincipalPrivilegeSet::read(::apache::thrift::protocol::TProtocol* ipro
 
 uint32_t PrincipalPrivilegeSet::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("PrincipalPrivilegeSet");
 
   xfer += oprot->writeFieldBegin("userPrivileges", 
::apache::thrift::protocol::T_MAP, 1);
@@ -1398,6 +1428,7 @@ uint32_t 
PrincipalPrivilegeSet::write(::apache::thrift::protocol::TProtocol* opr
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1422,13 +1453,14 @@ PrincipalPrivilegeSet& 
PrincipalPrivilegeSet::operator=(const PrincipalPrivilege
   __isset = other78.__isset;
   return *this;
 }
-void PrincipalPrivilegeSet::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const PrincipalPrivilegeSet& obj) {
+  using apache::thrift::to_string;
   out << "PrincipalPrivilegeSet(";
-  out << "userPrivileges=" << to_string(userPrivileges);
-  out << ", " << "groupPrivileges=" << to_string(groupPrivileges);
-  out << ", " << "rolePrivileges=" << to_string(rolePrivileges);
+  out << "userPrivileges=" << to_string(obj.userPrivileges);
+  out << ", " << "groupPrivileges=" << to_string(obj.groupPrivileges);
+  out << ", " << "rolePrivileges=" << to_string(obj.rolePrivileges);
   out << ")";
+  return out;
 }
 
 
@@ -1449,9 +1481,11 @@ void 
GrantRevokePrivilegeRequest::__set_revokeGrantOption(const bool val) {
 __isset.revokeGrantOption = true;
 }
 
+const char* GrantRevokePrivilegeRequest::ascii_fingerprint = 
"DF474A3CB526AD40DC0F2C3702F7AA2C";
+const uint8_t GrantRevokePrivilegeRequest::binary_fingerprint[16] = 
{0xDF,0x47,0x4A,0x3C,0xB5,0x26,0xAD,0x40,0xDC,0x0F,0x2C,0x37,0x02,0xF7,0xAA,0x2C};
+
 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;
@@ -1510,7 +1544,7 @@ uint32_t 
GrantRevokePrivilegeRequest::read(::apache::thrift::protocol::TProtocol
 
 uint32_t 
GrantRevokePrivilegeRequest::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("GrantRevokePrivilegeRequest");
 
   xfer += oprot->writeFieldBegin("requestType", 
::apache::thrift::protocol::T_I32, 1);
@@ -1528,6 +1562,7 @@ uint32_t 
GrantRevokePrivilegeRequest::write(::apache::thrift::protocol::TProtoco
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1552,13 +1587,14 @@ GrantRevokePrivilegeRequest& 
GrantRevokePrivilegeRequest::operator=(const GrantR
   __isset = other81.__isset;
   return *this;
 }
-void GrantRevokePrivilegeRequest::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const GrantRevokePrivilegeRequest& 
obj) {
+  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 << "requestType=" << to_string(obj.requestType);
+  out << ", " << "privileges=" << to_string(obj.privileges);
+  out << ", " << "revokeGrantOption="; (obj.__isset.revokeGrantOption ? (out 
<< to_string(obj.revokeGrantOption)) : (out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -1571,9 +1607,11 @@ void GrantRevokePrivilegeResponse::__set_success(const 
bool val) {
 __isset.success = true;
 }
 
+const char* GrantRevokePrivilegeResponse::ascii_fingerprint = 
"BF054652DEF86253C2BEE7D947F167DD";
+const uint8_t GrantRevokePrivilegeResponse::binary_fingerprint[16] = 
{0xBF,0x05,0x46,0x52,0xDE,0xF8,0x62,0x53,0xC2,0xBE,0xE7,0xD9,0x47,0xF1,0x67,0xDD};
+
 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;
@@ -1614,7 +1652,7 @@ uint32_t 
GrantRevokePrivilegeResponse::read(::apache::thrift::protocol::TProtoco
 
 uint32_t 
GrantRevokePrivilegeResponse::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("GrantRevokePrivilegeResponse");
 
   if (this->__isset.success) {
@@ -1624,6 +1662,7 @@ uint32_t 
GrantRevokePrivilegeResponse::write(::apache::thrift::protocol::TProtoc
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1642,11 +1681,12 @@ GrantRevokePrivilegeResponse& 
GrantRevokePrivilegeResponse::operator=(const Gran
   __isset = other83.__isset;
   return *this;
 }
-void GrantRevokePrivilegeResponse::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const 
GrantRevokePrivilegeResponse& obj) {
+  using apache::thrift::to_string;
   out << "GrantRevokePrivilegeResponse(";
-  out << "success="; (__isset.success ? (out << to_string(success)) : (out << 
"<null>"));
+  out << "success="; (obj.__isset.success ? (out << to_string(obj.success)) : 
(out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -1666,9 +1706,11 @@ void Role::__set_ownerName(const std::string& val) {
   this->ownerName = val;
 }
 
+const char* Role::ascii_fingerprint = "70563A0628F75DF9555F4D24690B1E26";
+const uint8_t Role::binary_fingerprint[16] = 
{0x70,0x56,0x3A,0x06,0x28,0xF7,0x5D,0xF9,0x55,0x5F,0x4D,0x24,0x69,0x0B,0x1E,0x26};
+
 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;
@@ -1725,7 +1767,7 @@ uint32_t 
Role::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Role::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Role");
 
   xfer += oprot->writeFieldBegin("roleName", 
::apache::thrift::protocol::T_STRING, 1);
@@ -1742,6 +1784,7 @@ uint32_t 
Role::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1766,13 +1809,14 @@ Role& Role::operator=(const Role& other85) {
   __isset = other85.__isset;
   return *this;
 }
-void Role::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const Role& obj) {
+  using apache::thrift::to_string;
   out << "Role(";
-  out << "roleName=" << to_string(roleName);
-  out << ", " << "createTime=" << to_string(createTime);
-  out << ", " << "ownerName=" << to_string(ownerName);
+  out << "roleName=" << to_string(obj.roleName);
+  out << ", " << "createTime=" << to_string(obj.createTime);
+  out << ", " << "ownerName=" << to_string(obj.ownerName);
   out << ")";
+  return out;
 }
 
 
@@ -1808,9 +1852,11 @@ void 
RolePrincipalGrant::__set_grantorPrincipalType(const PrincipalType::type va
   this->grantorPrincipalType = val;
 }
 
+const char* RolePrincipalGrant::ascii_fingerprint = 
"899BA3F6214DD1B79D27206BA857C772";
+const uint8_t RolePrincipalGrant::binary_fingerprint[16] = 
{0x89,0x9B,0xA3,0xF6,0x21,0x4D,0xD1,0xB7,0x9D,0x27,0x20,0x6B,0xA8,0x57,0xC7,0x72};
+
 uint32_t RolePrincipalGrant::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1903,7 +1949,7 @@ uint32_t 
RolePrincipalGrant::read(::apache::thrift::protocol::TProtocol* iprot)
 
 uint32_t RolePrincipalGrant::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("RolePrincipalGrant");
 
   xfer += oprot->writeFieldBegin("roleName", 
::apache::thrift::protocol::T_STRING, 1);
@@ -1936,6 +1982,7 @@ uint32_t 
RolePrincipalGrant::write(::apache::thrift::protocol::TProtocol* oprot)
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1972,17 +2019,18 @@ RolePrincipalGrant& RolePrincipalGrant::operator=(const 
RolePrincipalGrant& othe
   __isset = other89.__isset;
   return *this;
 }
-void RolePrincipalGrant::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const RolePrincipalGrant& obj) {
+  using apache::thrift::to_string;
   out << "RolePrincipalGrant(";
-  out << "roleName=" << to_string(roleName);
-  out << ", " << "principalName=" << to_string(principalName);
-  out << ", " << "principalType=" << to_string(principalType);
-  out << ", " << "grantOption=" << to_string(grantOption);
-  out << ", " << "grantTime=" << to_string(grantTime);
-  out << ", " << "grantorName=" << to_string(grantorName);
-  out << ", " << "grantorPrincipalType=" << to_string(grantorPrincipalType);
+  out << "roleName=" << to_string(obj.roleName);
+  out << ", " << "principalName=" << to_string(obj.principalName);
+  out << ", " << "principalType=" << to_string(obj.principalType);
+  out << ", " << "grantOption=" << to_string(obj.grantOption);
+  out << ", " << "grantTime=" << to_string(obj.grantTime);
+  out << ", " << "grantorName=" << to_string(obj.grantorName);
+  out << ", " << "grantorPrincipalType=" << 
to_string(obj.grantorPrincipalType);
   out << ")";
+  return out;
 }
 
 
@@ -1998,9 +2046,11 @@ void 
GetRoleGrantsForPrincipalRequest::__set_principal_type(const PrincipalType:
   this->principal_type = val;
 }
 
+const char* GetRoleGrantsForPrincipalRequest::ascii_fingerprint = 
"D6FD826D949221396F4FFC3ECCD3D192";
+const uint8_t GetRoleGrantsForPrincipalRequest::binary_fingerprint[16] = 
{0xD6,0xFD,0x82,0x6D,0x94,0x92,0x21,0x39,0x6F,0x4F,0xFC,0x3E,0xCC,0xD3,0xD1,0x92};
+
 uint32_t 
GetRoleGrantsForPrincipalRequest::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2057,7 +2107,7 @@ uint32_t 
GetRoleGrantsForPrincipalRequest::read(::apache::thrift::protocol::TPro
 
 uint32_t 
GetRoleGrantsForPrincipalRequest::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("GetRoleGrantsForPrincipalRequest");
 
   xfer += oprot->writeFieldBegin("principal_name", 
::apache::thrift::protocol::T_STRING, 1);
@@ -2070,6 +2120,7 @@ uint32_t 
GetRoleGrantsForPrincipalRequest::write(::apache::thrift::protocol::TPr
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2088,12 +2139,13 @@ GetRoleGrantsForPrincipalRequest& 
GetRoleGrantsForPrincipalRequest::operator=(co
   principal_type = other92.principal_type;
   return *this;
 }
-void GetRoleGrantsForPrincipalRequest::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const 
GetRoleGrantsForPrincipalRequest& obj) {
+  using apache::thrift::to_string;
   out << "GetRoleGrantsForPrincipalRequest(";
-  out << "principal_name=" << to_string(principal_name);
-  out << ", " << "principal_type=" << to_string(principal_type);
+  out << "principal_name=" << to_string(obj.principal_name);
+  out << ", " << "principal_type=" << to_string(obj.principal_type);
   out << ")";
+  return out;
 }
 
 
@@ -2105,9 +2157,11 @@ void 
GetRoleGrantsForPrincipalResponse::__set_principalGrants(const std::vector<
   this->principalGrants = val;
 }
 
+const char* GetRoleGrantsForPrincipalResponse::ascii_fingerprint = 
"5926B4B3541A62E17663820C7E3BE690";
+const uint8_t GetRoleGrantsForPrincipalResponse::binary_fingerprint[16] = 
{0x59,0x26,0xB4,0xB3,0x54,0x1A,0x62,0xE1,0x76,0x63,0x82,0x0C,0x7E,0x3B,0xE6,0x90};
+
 uint32_t 
GetRoleGrantsForPrincipalResponse::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2163,7 +2217,7 @@ uint32_t 
GetRoleGrantsForPrincipalResponse::read(::apache::thrift::protocol::TPr
 
 uint32_t 
GetRoleGrantsForPrincipalResponse::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("GetRoleGrantsForPrincipalResponse");
 
   xfer += oprot->writeFieldBegin("principalGrants", 
::apache::thrift::protocol::T_LIST, 1);
@@ -2180,6 +2234,7 @@ uint32_t 
GetRoleGrantsForPrincipalResponse::write(::apache::thrift::protocol::TP
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2195,11 +2250,12 @@ GetRoleGrantsForPrincipalResponse& 
GetRoleGrantsForPrincipalResponse::operator=(
   principalGrants = other100.principalGrants;
   return *this;
 }
-void GetRoleGrantsForPrincipalResponse::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const 
GetRoleGrantsForPrincipalResponse& obj) {
+  using apache::thrift::to_string;
   out << "GetRoleGrantsForPrincipalResponse(";
-  out << "principalGrants=" << to_string(principalGrants);
+  out << "principalGrants=" << to_string(obj.principalGrants);
   out << ")";
+  return out;
 }
 
 
@@ -2211,9 +2267,11 @@ void GetPrincipalsInRoleRequest::__set_roleName(const 
std::string& val) {
   this->roleName = val;
 }
 
+const char* GetPrincipalsInRoleRequest::ascii_fingerprint = 
"EFB929595D312AC8F305D5A794CFEDA1";
+const uint8_t GetPrincipalsInRoleRequest::binary_fingerprint[16] = 
{0xEF,0xB9,0x29,0x59,0x5D,0x31,0x2A,0xC8,0xF3,0x05,0xD5,0xA7,0x94,0xCF,0xED,0xA1};
+
 uint32_t 
GetPrincipalsInRoleRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2257,7 +2315,7 @@ uint32_t 
GetPrincipalsInRoleRequest::read(::apache::thrift::protocol::TProtocol*
 
 uint32_t 
GetPrincipalsInRoleRequest::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("GetPrincipalsInRoleRequest");
 
   xfer += oprot->writeFieldBegin("roleName", 
::apache::thrift::protocol::T_STRING, 1);
@@ -2266,6 +2324,7 @@ uint32_t 
GetPrincipalsInRoleRequest::write(::apache::thrift::protocol::TProtocol
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2281,11 +2340,12 @@ GetPrincipalsInRoleRequest& 
GetPrincipalsInRoleRequest::operator=(const GetPrinc
   roleName = other102.roleName;
   return *this;
 }
-void GetPrincipalsInRoleRequest::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const GetPrincipalsInRoleRequest& 
obj) {
+  using apache::thrift::to_string;
   out << "GetPrincipalsInRoleRequest(";
-  out << "roleName=" << to_string(roleName);
+  out << "roleName=" << to_string(obj.roleName);
   out << ")";
+  return out;
 }
 
 
@@ -2297,9 +2357,11 @@ void 
GetPrincipalsInRoleResponse::__set_principalGrants(const std::vector<RolePr
   this->principalGrants = val;
 }
 
+const char* GetPrincipalsInRoleResponse::ascii_fingerprint = 
"5926B4B3541A62E17663820C7E3BE690";
+const uint8_t GetPrincipalsInRoleResponse::binary_fingerprint[16] = 
{0x59,0x26,0xB4,0xB3,0x54,0x1A,0x62,0xE1,0x76,0x63,0x82,0x0C,0x7E,0x3B,0xE6,0x90};
+
 uint32_t 
GetPrincipalsInRoleResponse::read(::apache::thrift::protocol::TProtocol* iprot) 
{
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2355,7 +2417,7 @@ uint32_t 
GetPrincipalsInRoleResponse::read(::apache::thrift::protocol::TProtocol
 
 uint32_t 
GetPrincipalsInRoleResponse::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("GetPrincipalsInRoleResponse");
 
   xfer += oprot->writeFieldBegin("principalGrants", 
::apache::thrift::protocol::T_LIST, 1);
@@ -2372,6 +2434,7 @@ uint32_t 
GetPrincipalsInRoleResponse::write(::apache::thrift::protocol::TProtoco
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2387,11 +2450,12 @@ GetPrincipalsInRoleResponse& 
GetPrincipalsInRoleResponse::operator=(const GetPri
   principalGrants = other110.principalGrants;
   return *this;
 }
-void GetPrincipalsInRoleResponse::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const GetPrincipalsInRoleResponse& 
obj) {
+  using apache::thrift::to_string;
   out << "GetPrincipalsInRoleResponse(";
-  out << "principalGrants=" << to_string(principalGrants);
+  out << "principalGrants=" << to_string(obj.principalGrants);
   out << ")";
+  return out;
 }
 
 
@@ -2430,9 +2494,11 @@ void GrantRevokeRoleRequest::__set_grantOption(const 
bool val) {
 __isset.grantOption = true;
 }
 
+const char* GrantRevokeRoleRequest::ascii_fingerprint = 
"907DEA796F2BA7AF76DC2566E75FAEE7";
+const uint8_t GrantRevokeRoleRequest::binary_fingerprint[16] = 
{0x90,0x7D,0xEA,0x79,0x6F,0x2B,0xA7,0xAF,0x76,0xDC,0x25,0x66,0xE7,0x5F,0xAE,0xE7};
+
 uint32_t GrantRevokeRoleRequest::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2527,7 +2593,7 @@ uint32_t 
GrantRevokeRoleRequest::read(::apache::thrift::protocol::TProtocol* ipr
 
 uint32_t GrantRevokeRoleRequest::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("GrantRevokeRoleRequest");
 
   xfer += oprot->writeFieldBegin("requestType", 
::apache::thrift::protocol::T_I32, 1);
@@ -2563,6 +2629,7 @@ uint32_t 
GrantRevokeRoleRequest::write(::apache::thrift::protocol::TProtocol* op
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2599,17 +2666,18 @@ GrantRevokeRoleRequest& 
GrantRevokeRoleRequest::operator=(const GrantRevokeRoleR
   __isset = other115.__isset;
   return *this;
 }
-void GrantRevokeRoleRequest::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const GrantRevokeRoleRequest& obj) 
{
+  using apache::thrift::to_string;
   out << "GrantRevokeRoleRequest(";
-  out << "requestType=" << to_string(requestType);
-  out << ", " << "roleName=" << to_string(roleName);
-  out << ", " << "principalName=" << to_string(principalName);
-  out << ", " << "principalType=" << to_string(principalType);
-  out << ", " << "grantor="; (__isset.grantor ? (out << to_string(grantor)) : 
(out << "<null>"));
-  out << ", " << "grantorType="; (__isset.grantorType ? (out << 
to_string(grantorType)) : (out << "<null>"));
-  out << ", " << "grantOption="; (__isset.grantOption ? (out << 
to_string(grantOption)) : (out << "<null>"));
+  out << "requestType=" << to_string(obj.requestType);
+  out << ", " << "roleName=" << to_string(obj.roleName);
+  out << ", " << "principalName=" << to_string(obj.principalName);
+  out << ", " << "principalType=" << to_string(obj.principalType);
+  out << ", " << "grantor="; (obj.__isset.grantor ? (out << 
to_string(obj.grantor)) : (out << "<null>"));
+  out << ", " << "grantorType="; (obj.__isset.grantorType ? (out << 
to_string(obj.grantorType)) : (out << "<null>"));
+  out << ", " << "grantOption="; (obj.__isset.grantOption ? (out << 
to_string(obj.grantOption)) : (out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -2622,9 +2690,11 @@ void GrantRevokeRoleResponse::__set_success(const bool 
val) {
 __isset.success = true;
 }
 
+const char* GrantRevokeRoleResponse::ascii_fingerprint = 
"BF054652DEF86253C2BEE7D947F167DD";
+const uint8_t GrantRevokeRoleResponse::binary_fingerprint[16] = 
{0xBF,0x05,0x46,0x52,0xDE,0xF8,0x62,0x53,0xC2,0xBE,0xE7,0xD9,0x47,0xF1,0x67,0xDD};
+
 uint32_t GrantRevokeRoleResponse::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2665,7 +2735,7 @@ uint32_t 
GrantRevokeRoleResponse::read(::apache::thrift::protocol::TProtocol* ip
 
 uint32_t GrantRevokeRoleResponse::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("GrantRevokeRoleResponse");
 
   if (this->__isset.success) {
@@ -2675,6 +2745,7 @@ uint32_t 
GrantRevokeRoleResponse::write(::apache::thrift::protocol::TProtocol* o
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2693,11 +2764,12 @@ GrantRevokeRoleResponse& 
GrantRevokeRoleResponse::operator=(const GrantRevokeRol
   __isset = other117.__isset;
   return *this;
 }
-void GrantRevokeRoleResponse::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const GrantRevokeRoleResponse& 
obj) {
+  using apache::thrift::to_string;
   out << "GrantRevokeRoleResponse(";
-  out << "success="; (__isset.success ? (out << to_string(success)) : (out << 
"<null>"));
+  out << "success="; (obj.__isset.success ? (out << to_string(obj.success)) : 
(out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -2736,9 +2808,11 @@ void Database::__set_ownerType(const PrincipalType::type 
val) {
 __isset.ownerType = true;
 }
 
+const char* Database::ascii_fingerprint = "553495CAE243A1C583D5C3DD990AED53";
+const uint8_t Database::binary_fingerprint[16] = 
{0x55,0x34,0x95,0xCA,0xE2,0x43,0xA1,0xC5,0x83,0xD5,0xC3,0xDD,0x99,0x0A,0xED,0x53};
+
 uint32_t Database::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2844,7 +2918,7 @@ uint32_t 
Database::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Database::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Database");
 
   xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 
1);
@@ -2889,6 +2963,7 @@ uint32_t 
Database::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2925,17 +3000,18 @@ Database& Database::operator=(const Database& other128) 
{
   __isset = other128.__isset;
   return *this;
 }
-void Database::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const Database& obj) {
+  using apache::thrift::to_string;
   out << "Database(";
-  out << "name=" << to_string(name);
-  out << ", " << "description=" << to_string(description);
-  out << ", " << "locationUri=" << to_string(locationUri);
-  out << ", " << "parameters=" << to_string(parameters);
-  out << ", " << "privileges="; (__isset.privileges ? (out << 
to_string(privileges)) : (out << "<null>"));
-  out << ", " << "ownerName="; (__isset.ownerName ? (out << 
to_string(ownerName)) : (out << "<null>"));
-  out << ", " << "ownerType="; (__isset.ownerType ? (out << 
to_string(ownerType)) : (out << "<null>"));
+  out << "name=" << to_string(obj.name);
+  out << ", " << "description=" << to_string(obj.description);
+  out << ", " << "locationUri=" << to_string(obj.locationUri);
+  out << ", " << "parameters=" << to_string(obj.parameters);
+  out << ", " << "privileges="; (obj.__isset.privileges ? (out << 
to_string(obj.privileges)) : (out << "<null>"));
+  out << ", " << "ownerName="; (obj.__isset.ownerName ? (out << 
to_string(obj.ownerName)) : (out << "<null>"));
+  out << ", " << "ownerType="; (obj.__isset.ownerType ? (out << 
to_string(obj.ownerType)) : (out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -2955,9 +3031,11 @@ void SerDeInfo::__set_parameters(const 
std::map<std::string, std::string> & val)
   this->parameters = val;
 }
 
+const char* SerDeInfo::ascii_fingerprint = "B1021C32A35A2AEFCD2F57A5424159A7";
+const uint8_t SerDeInfo::binary_fingerprint[16] = 
{0xB1,0x02,0x1C,0x32,0xA3,0x5A,0x2A,0xEF,0xCD,0x2F,0x57,0xA5,0x42,0x41,0x59,0xA7};
+
 uint32_t SerDeInfo::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3029,7 +3107,7 @@ uint32_t 
SerDeInfo::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t SerDeInfo::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("SerDeInfo");
 
   xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 
1);
@@ -3055,6 +3133,7 @@ uint32_t 
SerDeInfo::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3079,13 +3158,14 @@ SerDeInfo& SerDeInfo::operator=(const SerDeInfo& 
other138) {
   __isset = other138.__isset;
   return *this;
 }
-void SerDeInfo::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const SerDeInfo& obj) {
+  using apache::thrift::to_string;
   out << "SerDeInfo(";
-  out << "name=" << to_string(name);
-  out << ", " << "serializationLib=" << to_string(serializationLib);
-  out << ", " << "parameters=" << to_string(parameters);
+  out << "name=" << to_string(obj.name);
+  out << ", " << "serializationLib=" << to_string(obj.serializationLib);
+  out << ", " << "parameters=" << to_string(obj.parameters);
   out << ")";
+  return out;
 }
 
 
@@ -3101,9 +3181,11 @@ void Order::__set_order(const int32_t val) {
   this->order = val;
 }
 
+const char* Order::ascii_fingerprint = "EEBC915CE44901401D881E6091423036";
+const uint8_t Order::binary_fingerprint[16] = 
{0xEE,0xBC,0x91,0x5C,0xE4,0x49,0x01,0x40,0x1D,0x88,0x1E,0x60,0x91,0x42,0x30,0x36};
+
 uint32_t Order::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3152,7 +3234,7 @@ uint32_t 
Order::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Order::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Order");
 
   xfer += oprot->writeFieldBegin("col", ::apache::thrift::protocol::T_STRING, 
1);
@@ -3165,6 +3247,7 @@ uint32_t 
Order::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3186,12 +3269,13 @@ Order& Order::operator=(const Order& other140) {
   __isset = other140.__isset;
   return *this;
 }
-void Order::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const Order& obj) {
+  using apache::thrift::to_string;
   out << "Order(";
-  out << "col=" << to_string(col);
-  out << ", " << "order=" << to_string(order);
+  out << "col=" << to_string(obj.col);
+  out << ", " << "order=" << to_string(obj.order);
   out << ")";
+  return out;
 }
 
 
@@ -3211,9 +3295,11 @@ void SkewedInfo::__set_skewedColValueLocationMaps(const 
std::map<std::vector<std
   this->skewedColValueLocationMaps = val;
 }
 
+const char* SkewedInfo::ascii_fingerprint = "4BF2ED84BC3C3EB297A2AE2FA8427EB1";
+const uint8_t SkewedInfo::binary_fingerprint[16] = 
{0x4B,0xF2,0xED,0x84,0xBC,0x3C,0x3E,0xB2,0x97,0xA2,0xAE,0x2F,0xA8,0x42,0x7E,0xB1};
+
 uint32_t SkewedInfo::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3333,7 +3419,7 @@ uint32_t 
SkewedInfo::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t SkewedInfo::write(::apache::thrift::protocol::TProtocol* oprot) const 
{
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("SkewedInfo");
 
   xfer += oprot->writeFieldBegin("skewedColNames", 
::apache::thrift::protocol::T_LIST, 1);
@@ -3391,6 +3477,7 @@ uint32_t 
SkewedInfo::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3415,13 +3502,14 @@ SkewedInfo& SkewedInfo::operator=(const SkewedInfo& 
other174) {
   __isset = other174.__isset;
   return *this;
 }
-void SkewedInfo::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const SkewedInfo& obj) {
+  using apache::thrift::to_string;
   out << "SkewedInfo(";
-  out << "skewedColNames=" << to_string(skewedColNames);
-  out << ", " << "skewedColValues=" << to_string(skewedColValues);
-  out << ", " << "skewedColValueLocationMaps=" << 
to_string(skewedColValueLocationMaps);
+  out << "skewedColNames=" << to_string(obj.skewedColNames);
+  out << ", " << "skewedColValues=" << to_string(obj.skewedColValues);
+  out << ", " << "skewedColValueLocationMaps=" << 
to_string(obj.skewedColValueLocationMaps);
   out << ")";
+  return out;
 }
 
 
@@ -3479,9 +3567,11 @@ void 
StorageDescriptor::__set_storedAsSubDirectories(const bool val) {
 __isset.storedAsSubDirectories = true;
 }
 
+const char* StorageDescriptor::ascii_fingerprint = 
"CA8C9AA5FE4C32643757D8639CEF0CD7";
+const uint8_t StorageDescriptor::binary_fingerprint[16] = 
{0xCA,0x8C,0x9A,0xA5,0xFE,0x4C,0x32,0x64,0x37,0x57,0xD8,0x63,0x9C,0xEF,0x0C,0xD7};
+
 uint32_t StorageDescriptor::read(::apache::thrift::protocol::TProtocol* iprot) 
{
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3661,7 +3751,7 @@ uint32_t 
StorageDescriptor::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t StorageDescriptor::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("StorageDescriptor");
 
   xfer += oprot->writeFieldBegin("cols", ::apache::thrift::protocol::T_LIST, 
1);
@@ -3749,6 +3839,7 @@ uint32_t 
StorageDescriptor::write(::apache::thrift::protocol::TProtocol* oprot)
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3800,22 +3891,23 @@ StorageDescriptor& StorageDescriptor::operator=(const 
StorageDescriptor& other20
   __isset = other202.__isset;
   return *this;
 }
-void StorageDescriptor::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const StorageDescriptor& obj) {
+  using apache::thrift::to_string;
   out << "StorageDescriptor(";
-  out << "cols=" << to_string(cols);
-  out << ", " << "location=" << to_string(location);
-  out << ", " << "inputFormat=" << to_string(inputFormat);
-  out << ", " << "outputFormat=" << to_string(outputFormat);
-  out << ", " << "compressed=" << to_string(compressed);
-  out << ", " << "numBuckets=" << to_string(numBuckets);
-  out << ", " << "serdeInfo=" << to_string(serdeInfo);
-  out << ", " << "bucketCols=" << to_string(bucketCols);
-  out << ", " << "sortCols=" << to_string(sortCols);
-  out << ", " << "parameters=" << to_string(parameters);
-  out << ", " << "skewedInfo="; (__isset.skewedInfo ? (out << 
to_string(skewedInfo)) : (out << "<null>"));
-  out << ", " << "storedAsSubDirectories="; (__isset.storedAsSubDirectories ? 
(out << to_string(storedAsSubDirectories)) : (out << "<null>"));
+  out << "cols=" << to_string(obj.cols);
+  out << ", " << "location=" << to_string(obj.location);
+  out << ", " << "inputFormat=" << to_string(obj.inputFormat);
+  out << ", " << "outputFormat=" << to_string(obj.outputFormat);
+  out << ", " << "compressed=" << to_string(obj.compressed);
+  out << ", " << "numBuckets=" << to_string(obj.numBuckets);
+  out << ", " << "serdeInfo=" << to_string(obj.serdeInfo);
+  out << ", " << "bucketCols=" << to_string(obj.bucketCols);
+  out << ", " << "sortCols=" << to_string(obj.sortCols);
+  out << ", " << "parameters=" << to_string(obj.parameters);
+  out << ", " << "skewedInfo="; (obj.__isset.skewedInfo ? (out << 
to_string(obj.skewedInfo)) : (out << "<null>"));
+  out << ", " << "storedAsSubDirectories="; 
(obj.__isset.storedAsSubDirectories ? (out << 
to_string(obj.storedAsSubDirectories)) : (out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -3881,9 +3973,11 @@ void Table::__set_temporary(const bool val) {
 __isset.temporary = true;
 }
 
+const char* Table::ascii_fingerprint = "29EFB2A5970EF572039E5D94CC78AA85";
+const uint8_t Table::binary_fingerprint[16] = 
{0x29,0xEF,0xB2,0xA5,0x97,0x0E,0xF5,0x72,0x03,0x9E,0x5D,0x94,0xCC,0x78,0xAA,0x85};
+
 uint32_t Table::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4055,7 +4149,7 @@ uint32_t 
Table::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Table::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Table");
 
   xfer += oprot->writeFieldBegin("tableName", 
::apache::thrift::protocol::T_STRING, 1);
@@ -4135,6 +4229,7 @@ uint32_t 
Table::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4192,24 +4287,25 @@ Table& Table::operator=(const Table& other218) {
   __isset = other218.__isset;
   return *this;
 }
-void Table::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const Table& obj) {
+  using apache::thrift::to_string;
   out << "Table(";
-  out << "tableName=" << to_string(tableName);
-  out << ", " << "dbName=" << to_string(dbName);
-  out << ", " << "owner=" << to_string(owner);
-  out << ", " << "createTime=" << to_string(createTime);
-  out << ", " << "lastAccessTime=" << to_string(lastAccessTime);
-  out << ", " << "retention=" << to_string(retention);
-  out << ", " << "sd=" << to_string(sd);
-  out << ", " << "partitionKeys=" << to_string(partitionKeys);
-  out << ", " << "parameters=" << to_string(parameters);
-  out << ", " << "viewOriginalText=" << to_string(viewOriginalText);
-  out << ", " << "viewExpandedText=" << to_string(viewExpandedText);
-  out << ", " << "tableType=" << to_string(tableType);
-  out << ", " << "privileges="; (__isset.privileges ? (out << 
to_string(privileges)) : (out << "<null>"));
-  out << ", " << "temporary="; (__isset.temporary ? (out << 
to_string(temporary)) : (out << "<null>"));
+  out << "tableName=" << to_string(obj.tableName);
+  out << ", " << "dbName=" << to_string(obj.dbName);
+  out << ", " << "owner=" << to_string(obj.owner);
+  out << ", " << "createTime=" << to_string(obj.createTime);
+  out << ", " << "lastAccessTime=" << to_string(obj.lastAccessTime);
+  out << ", " << "retention=" << to_string(obj.retention);
+  out << ", " << "sd=" << to_string(obj.sd);
+  out << ", " << "partitionKeys=" << to_string(obj.partitionKeys);
+  out << ", " << "parameters=" << to_string(obj.parameters);
+  out << ", " << "viewOriginalText=" << to_string(obj.viewOriginalText);
+  out << ", " << "viewExpandedText=" << to_string(obj.viewExpandedText);
+  out << ", " << "tableType=" << to_string(obj.tableType);
+  out << ", " << "privileges="; (obj.__isset.privileges ? (out << 
to_string(obj.privileges)) : (out << "<null>"));
+  out << ", " << "temporary="; (obj.__isset.temporary ? (out << 
to_string(obj.temporary)) : (out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -4250,9 +4346,11 @@ void Partition::__set_privileges(const 
PrincipalPrivilegeSet& val) {
 __isset.privileges = true;
 }
 
+const char* Partition::ascii_fingerprint = "31A52241B88A426C34087FE38343FF51";
+const uint8_t Partition::binary_fingerprint[16] = 
{0x31,0xA5,0x22,0x41,0xB8,0x8A,0x42,0x6C,0x34,0x08,0x7F,0xE3,0x83,0x43,0xFF,0x51};
+
 uint32_t Partition::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4376,7 +4474,7 @@ uint32_t 
Partition::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Partition::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Partition");
 
   xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 
1);
@@ -4431,6 +4529,7 @@ uint32_t 
Partition::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4470,18 +4569,19 @@ Partition& Partition::operator=(const Partition& 
other234) {
   __isset = other234.__isset;
   return *this;
 }
-void Partition::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const Partition& obj) {
+  using apache::thrift::to_string;
   out << "Partition(";
-  out << "values=" << to_string(values);
-  out << ", " << "dbName=" << to_string(dbName);
-  out << ", " << "tableName=" << to_string(tableName);
-  out << ", " << "createTime=" << to_string(createTime);
-  out << ", " << "lastAccessTime=" << to_string(lastAccessTime);
-  out << ", " << "sd=" << to_string(sd);
-  out << ", " << "parameters=" << to_string(parameters);
-  out << ", " << "privileges="; (__isset.privileges ? (out << 
to_string(privileges)) : (out << "<null>"));
+  out << "values=" << to_string(obj.values);
+  out << ", " << "dbName=" << to_string(obj.dbName);
+  out << ", " << "tableName=" << to_string(obj.tableName);
+  out << ", " << "createTime=" << to_string(obj.createTime);
+  out << ", " << "lastAccessTime=" << to_string(obj.lastAccessTime);
+  out << ", " << "sd=" << to_string(obj.sd);
+  out << ", " << "parameters=" << to_string(obj.parameters);
+  out << ", " << "privileges="; (obj.__isset.privileges ? (out << 
to_string(obj.privileges)) : (out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -4514,9 +4614,11 @@ void PartitionWithoutSD::__set_privileges(const 
PrincipalPrivilegeSet& val) {
 __isset.privileges = true;
 }
 
+const char* PartitionWithoutSD::ascii_fingerprint = 
"D79FA44499888D0E50B5625E0C536DEA";
+const uint8_t PartitionWithoutSD::binary_fingerprint[16] = 
{0xD7,0x9F,0xA4,0x44,0x99,0x88,0x8D,0x0E,0x50,0xB5,0x62,0x5E,0x0C,0x53,0x6D,0xEA};
+
 uint32_t PartitionWithoutSD::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4624,7 +4726,7 @@ uint32_t 
PartitionWithoutSD::read(::apache::thrift::protocol::TProtocol* iprot)
 
 uint32_t PartitionWithoutSD::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("PartitionWithoutSD");
 
   xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 
1);
@@ -4671,6 +4773,7 @@ uint32_t 
PartitionWithoutSD::write(::apache::thrift::protocol::TProtocol* oprot)
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4704,16 +4807,17 @@ PartitionWithoutSD& PartitionWithoutSD::operator=(const 
PartitionWithoutSD& othe
   __isset = other250.__isset;
   return *this;
 }
-void PartitionWithoutSD::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const PartitionWithoutSD& obj) {
+  using apache::thrift::to_string;
   out << "PartitionWithoutSD(";
-  out << "values=" << to_string(values);
-  out << ", " << "createTime=" << to_string(createTime);
-  out << ", " << "lastAccessTime=" << to_string(lastAccessTime);
-  out << ", " << "relativePath=" << to_string(relativePath);
-  out << ", " << "parameters=" << to_string(parameters);
-  out << ", " << "privileges="; (__isset.privileges ? (out << 
to_string(privileges)) : (out << "<null>"));
+  out << "values=" << to_string(obj.values);
+  out << ", " << "createTime=" << to_string(obj.createTime);
+  out << ", " << "lastAccessTime=" << to_string(obj.lastAccessTime);
+  out << ", " << "relativePath=" << to_string(obj.relativePath);
+  out << ", " << "parameters=" << to_string(obj.parameters);
+  out << ", " << "privileges="; (obj.__isset.privileges ? (out << 
to_string(obj.privileges)) : (out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -4729,9 +4833,11 @@ void PartitionSpecWithSharedSD::__set_sd(const 
StorageDescriptor& val) {
   this->sd = val;
 }
 
+const char* PartitionSpecWithSharedSD::ascii_fingerprint = 
"7BEE9305B42DCD083FF06BEE6DDC61CF";
+const uint8_t PartitionSpecWithSharedSD::binary_fingerprint[16] = 
{0x7B,0xEE,0x93,0x05,0xB4,0x2D,0xCD,0x08,0x3F,0xF0,0x6B,0xEE,0x6D,0xDC,0x61,0xCF};
+
 uint32_t 
PartitionSpecWithSharedSD::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4792,7 +4898,7 @@ uint32_t 
PartitionSpecWithSharedSD::read(::apache::thrift::protocol::TProtocol*
 
 uint32_t 
PartitionSpecWithSharedSD::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("PartitionSpecWithSharedSD");
 
   xfer += oprot->writeFieldBegin("partitions", 
::apache::thrift::protocol::T_LIST, 1);
@@ -4813,6 +4919,7 @@ uint32_t 
PartitionSpecWithSharedSD::write(::apache::thrift::protocol::TProtocol*
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4834,12 +4941,13 @@ PartitionSpecWithSharedSD& 
PartitionSpecWithSharedSD::operator=(const PartitionS
   __isset = other258.__isset;
   return *this;
 }
-void PartitionSpecWithSharedSD::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const PartitionSpecWithSharedSD& 
obj) {
+  using apache::thrift::to_string;
   out << "PartitionSpecWithSharedSD(";
-  out << "partitions=" << to_string(partitions);
-  out << ", " << "sd=" << to_string(sd);
+  out << "partitions=" << to_string(obj.partitions);
+  out << ", " << "sd=" << to_string(obj.sd);
   out << ")";
+  return out;
 }
 
 
@@ -4851,9 +4959,11 @@ void PartitionListComposingSpec::__set_partitions(const 
std::vector<Partition> &
   this->partitions = val;
 }
 
+const char* PartitionListComposingSpec::ascii_fingerprint = 
"A048235CB9A257C8A74E3691BEFE0674";
+const uint8_t PartitionListComposingSpec::binary_fingerprint[16] = 
{0xA0,0x48,0x23,0x5C,0xB9,0xA2,0x57,0xC8,0xA7,0x4E,0x36,0x91,0xBE,0xFE,0x06,0x74};
+
 uint32_t 
PartitionListComposingSpec::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4906,7 +5016,7 @@ uint32_t 
PartitionListComposingSpec::read(::apache::thrift::protocol::TProtocol*
 
 uint32_t 
PartitionListComposingSpec::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("PartitionListComposingSpec");
 
   xfer += oprot->writeFieldBegin("partitions", 
::apache::thrift::protocol::T_LIST, 1);
@@ -4923,6 +5033,7 @@ uint32_t 
PartitionListComposingSpec::write(::apache::thrift::protocol::TProtocol
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4941,11 +5052,12 @@ PartitionListComposingSpec& 
PartitionListComposingSpec::operator=(const Partitio
   __isset = other266.__isset;
   return *this;
 }
-void PartitionListComposingSpec::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const PartitionListComposingSpec& 
obj) {
+  using apache::thrift::to_string;
   out << "PartitionListComposingSpec(";
-  out << "partitions=" << to_string(partitions);
+  out << "partitions=" << to_string(obj.partitions);
   out << ")";
+  return out;
 }
 
 
@@ -4975,9 +5087,11 @@ void PartitionSpec::__set_partitionList(const 
PartitionListComposingSpec& val) {
 __isset.partitionList = true;
 }
 
+const char* PartitionSpec::ascii_fingerprint = 
"C3F548C24D072CF6422F25096143E3E8";
+const uint8_t PartitionSpec::binary_fingerprint[16] = 
{0xC3,0xF5,0x48,0xC2,0x4D,0x07,0x2C,0xF6,0x42,0x2F,0x25,0x09,0x61,0x43,0xE3,0xE8};
+
 uint32_t PartitionSpec::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5050,7 +5164,7 @@ uint32_t 
PartitionSpec::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t PartitionSpec::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("PartitionSpec");
 
   xfer += oprot->writeFieldBegin("dbName", 
::apache::thrift::protocol::T_STRING, 1);
@@ -5077,6 +5191,7 @@ uint32_t 
PartitionSpec::write(::apache::thrift::protocol::TProtocol* oprot) cons
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5107,15 +5222,16 @@ PartitionSpec& PartitionSpec::operator=(const 
PartitionSpec& other268) {
   __isset = other268.__isset;
   return *this;
 }
-void PartitionSpec::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const PartitionSpec& obj) {
+  using apache::thrift::to_string;
   out << "PartitionSpec(";
-  out << "dbName=" << to_string(dbName);
-  out << ", " << "tableName=" << to_string(tableName);
-  out << ", " << "rootPath=" << to_string(rootPath);
-  out << ", " << "sharedSDPartitionSpec="; (__isset.sharedSDPartitionSpec ? 
(out << to_string(sharedSDPartitionSpec)) : (out << "<null>"));
-  out << ", " << "partitionList="; (__isset.partitionList ? (out << 
to_string(partitionList)) : (out << "<null>"));
+  out << "dbName=" << to_string(obj.dbName);
+  out << ", " << "tableName=" << to_string(obj.tableName);
+  out << ", " << "rootPath=" << to_string(obj.rootPath);
+  out << ", " << "sharedSDPartitionSpec="; (obj.__isset.sharedSDPartitionSpec 
? (out << to_string(obj.sharedSDPartitionSpec)) : (out << "<null>"));
+  out << ", " << "partitionList="; (obj.__isset.partitionList ? (out << 
to_string(obj.partitionList)) : (out << "<null>"));
   out << ")";
+  return out;
 }
 
 
@@ -5163,9 +5279,11 @@ void Index::__set_deferredRebuild(const bool val) {
   this->deferredRebuild = val;
 }
 
+const char* Index::ascii_fingerprint = "09EEF655216AC81802850988D6C470A6";
+const uint8_t Index::binary_fingerprint[16] = 
{0x09,0xEE,0xF6,0x55,0x21,0x6A,0xC8,0x18,0x02,0x85,0x09,0x88,0xD6,0xC4,0x70,0xA6};
+
 uint32_t Index::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5293,7 +5411,7 @@ uint32_t 
Index::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Index::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Index");
 
   xfer += oprot->writeFieldBegin("indexName", 
::apache::thrift::protocol::T_STRING, 1);
@@ -5347,6 +5465,7 @@ uint32_t 
Index::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5392,20 +5511,21 @@ Index& Index::operator=(const Index& other278) {
   __isset = other278.__isset;
   return *this;
 }
-void Index::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const Index& obj) {
+  using apache::thrift::to_string;
   out << "Index(";
-  out << "indexName=" << to_string(indexName);
-  out << ", " << "indexHandlerClass=" << to_string(indexHandlerClass);
-  out << ", " << "dbName=" << to_string(dbName);
-  out << ", " << "origTableName=" << to_string(origTableName);
-  out << ", " << "createTime=" << to_string(createTime);
-  out << ", " << "lastAccessTime=" << to_string(lastAccessTime);
-  out << ", " << "indexTableName=" << to_string(indexTableName);
-  out << ", " << "sd=" << to_string(sd);
-  out << ", " << "parameters=" << to_string(parameters);
-  out << ", " << "deferredRebuild=" << to_string(deferredRebuild);
+  out << "indexName=" << to_string(obj.indexName);
+  out << ", " << "indexHandlerClass=" << to_string(obj.indexHandlerClass);
+  out << ", " << "dbName=" << to_string(obj.dbName);
+  out << ", " << "origTableName=" << to_string(obj.origTableName);
+  out << ", " << "createTime=" << to_string(obj.createTime);
+  out << ", " << "lastAccessTime=" << to_string(obj.lastAccessTime);
+  out << ", " << "indexTableName=" << to_string(obj.indexTableName);
+  out << ", " << "sd=" << to_string(obj.sd);
+  out << ", " << "parameters=" << to_string(obj.parameters);
+  out << ", " << "deferredRebuild=" << to_string(obj.deferredRebuild);
   out << ")";
+  return out;
 }
 
 
@@ -5425,9 +5545,11 @@ void BooleanColumnStatsData::__set_numNulls(const 
int64_t val) {
   this->numNulls = val;
 }
 
+const char* BooleanColumnStatsData::ascii_fingerprint = 
"EA2D65F1E0BB78760205682082304B41";
+const uint8_t BooleanColumnStatsData::binary_fingerprint[16] = 
{0xEA,0x2D,0x65,0xF1,0xE0,0xBB,0x78,0x76,0x02,0x05,0x68,0x20,0x82,0x30,0x4B,0x41};
+
 uint32_t BooleanColumnStatsData::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5493,7 +5615,7 @@ uint32_t 
BooleanColumnStatsData::read(::apache::thrift::protocol::TProtocol* ipr
 
 uint32_t BooleanColumnStatsData::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("BooleanColumnStatsData");
 
   xfer += oprot->writeFieldBegin("numTrues", 
::apache::thrift::protocol::T_I64, 1);
@@ -5510,6 +5632,7 @@ uint32_t 
BooleanColumnStatsData::write(::apache::thrift::protocol::TProtocol* op
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5531,13 +5654,14 @@ BooleanColumnStatsData& 
BooleanColumnStatsData::operator=(const BooleanColumnSta
   numNulls = other280.numNulls;
   return *this;
 }
-void BooleanColumnStatsData::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const BooleanColumnStatsData& obj) 
{
+  using apache::thrift::to_string;
   out << "BooleanColumnStatsData(";
-  out << "numTrues=" << to_string(numTrues);
-  out << ", " << "numFalses=" << to_string(numFalses);
-  out << ", " << "numNulls=" << to_string(numNulls);
+  out << "numTrues=" << to_string(obj.numTrues);
+  out << ", " << "numFalses=" << to_string(obj.numFalses);
+  out << ", " << "numNulls=" << to_string(obj.numNulls);
   out << ")";
+  return out;
 }
 
 
@@ -5563,9 +5687,11 @@ void DoubleColumnStatsData::__set_numDVs(const int64_t 
val) {
   this->numDVs = val;
 }
 
+const char* DoubleColumnStatsData::ascii_fingerprint = 
"DA7C011321D74C48396AA002E61A0CBB";
+const uint8_t DoubleColumnStatsData::binary_fingerprint[16] = 
{0xDA,0x7C,0x01,0x13,0x21,0xD7,0x4C,0x48,0x39,0x6A,0xA0,0x02,0xE6,0x1A,0x0C,0xBB};
+
 uint32_t DoubleColumnStatsData::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5636,7 +5762,7 @@ uint32_t 
DoubleColumnStatsData::read(::apache::thrift::protocol::TProtocol* ipro
 
 uint32_t DoubleColumnStatsData::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("DoubleColumnStatsData");
 
   if (this->__isset.lowValue) {
@@ -5659,6 +5785,7 @@ uint32_t 
DoubleColumnStatsData::write(::apache::thrift::protocol::TProtocol* opr
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5686,14 +5813,15 @@ DoubleColumnStatsData& 
DoubleColumnStatsData::operator=(const DoubleColumnStatsD
   __isset = other282.__isset;
   return *this;
 }
-void DoubleColumnStatsData::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const DoubleColumnStatsData& obj) {
+  using apache::thrift::to_string;
   out << "DoubleColumnStatsData(";
-  out << "lowValue="; (__isset.lowValue ? (out << to_string(lowValue)) : (out 
<< "<null>"));
-  out << ", " << "highValue="; (__isset.highValue ? (out << 
to_string(highValue)) : (out << "<null>"));
-  out << ", " << "numNulls=" << to_string(numNulls);
-  out << ", " << "numDVs=" << to_string(numDVs);
+  out << "lowValue="; (obj.__isset.lowValue ? (out << to_string(obj.lowValue)) 
: (out << "<null>"));
+  out << ", " << "highValue="; (obj.__isset.highValue ? (out << 
to_string(obj.highValue)) : (out << "<null>"));
+  out << ", " << "numNulls=" << to_string(obj.numNulls);
+  out << ", " << "numDVs=" << to_string(obj.numDVs);
   out << ")";
+  return out;
 }
 
 
@@ -5719,9 +5847,11 @@ void LongColumnStatsData::__set_numDVs(const int64_t 
val) {
   this->numDVs = val;
 }
 
+const char* LongColumnStatsData::ascii_fingerprint = 
"E685FC220B24E3B8B93604790DCB9AEA";
+const uint8_t LongColumnStatsData::binary_fingerprint[16] = 
{0xE6,0x85,0xFC,0x22,0x0B,0x24,0xE3,0xB8,0xB9,0x36,0x04,0x79,0x0D,0xCB,0x9A,0xEA};
+
 uint32_t LongColumnStatsData::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5792,7 +5922,7 @@ uint32_t 
LongColumnStatsData::read(::apache::thrift::protocol::TProtocol* iprot)
 
 uint32_t LongColumnStatsData::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("LongColumnStatsData");
 
   if (this->__isset.lowValue) {
@@ -5815,6 +5945,7 @@ uint32_t 
LongColumnStatsData::write(::apache::thrift::protocol::TProtocol* oprot
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5842,14 +5973,15 @@ LongColumnStatsData& 
LongColumnStatsData::operator=(const LongColumnStatsData& o
   __isset = other284.__isset;
   return *this;
 }
-void LongColumnStatsData::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const LongColumnStatsData& obj) {
+  using apache::thrift::to_string;
   out << "LongColumnStatsData(";
-  out << "lowValue="; (__isset.lowValue ? (out << to_string(lowValue)) : (out 
<< "<null>"));
-  out << ", " << "highValue="; (__isset.highValue ? (out << 
to_string(highValue)) : (out << "<null>"));
-  out << ", " << "numNulls=" << to_string(numNulls);
-  out << ", " << "numDVs=" << to_string(numDVs);
+  out << "lowValue="; (obj.__isset.lowValue ? (out << to_string(obj.lowValue)) 
: (out << "<null>"));
+  out << ", " << "highValue="; (obj.__isset.highValue ? (out << 
to_string(obj.highValue)) : (out << "<null>"));
+  out << ", " << "numNulls=" << to_string(obj.numNulls);
+  out << ", " << "numDVs=" << to_string(obj.numDVs);
   out << ")";
+  return out;
 }
 
 
@@ -5873,9 +6005,11 @@ void StringColumnStatsData::__set_numDVs(const int64_t 
val) {
   this->numDVs = val;
 }
 
+const char* StringColumnStatsData::ascii_fingerprint = 
"D017B08C3DF12C3AB98788B2E67DAAB3";
+const uint8_t StringColumnStatsData::binary_fingerprint[16] = 
{0xD0,0x17,0xB0,0x8C,0x3D,0xF1,0x2C,0x3A,0xB9,0x87,0x88,0xB2,0xE6,0x7D,0xAA,0xB3};
+
 uint32_t StringColumnStatsData::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5952,7 +6086,7 @@ uint32_t 
StringColumnStatsData::read(::apache::thrift::protocol::TProtocol* ipro
 
 uint32_t StringColumnStatsData::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("StringColumnStatsData");
 
   xfer += oprot->writeFieldBegin("maxColLen", 
::apache::thrift::protocol::T_I64, 1);
@@ -5973,6 +6107,7 @@ uint32_t 
StringColumnStatsData::write(::apache::thrift::protocol::TProtocol* opr
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5997,14 +6132,15 @@ StringColumnStatsData& 
StringColumnStatsData::operator=(const StringColumnStatsD
   numDVs = other286.numDVs;
   return *this;
 }
-void StringColumnStatsData::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const StringColumnStatsData& obj) {
+  using apache::thrift::to_string;
   out << "StringColumnStatsData(";
-  out << "maxColLen=" << to_string(maxColLen);
-  out << ", " << "avgColLen=" << to_string(avgColLen);
-  out << ", " << "numNulls=" << to_string(numNulls);
-  out << ", " << "numDVs=" << to_string(numDVs);
+  out << "maxColLen=" << to_string(obj.maxColLen);
+  out << ", " << "avgColLen=" << to_string(obj.avgColLen);
+  out << ", " << "numNulls=" << to_string(obj.numNulls);
+  out << ", " << "numDVs=" << to_string(obj.numDVs);
   out << ")";
+  return out;
 }
 
 
@@ -6024,9 +6160,11 @@ void BinaryColumnStatsData::__set_numNulls(const int64_t 
val) {
   this->numNulls = val;
 }
 
+const char* BinaryColumnStatsData::ascii_fingerprint = 
"22B0CB67183FCDB945892B9974518D06";
+const uint8_t BinaryColumnStatsData::binary_fingerprint[16] = 
{0x22,0xB0,0xCB,0x67,0x18,0x3F,0xCD,0xB9,0x45,0x89,0x2B,0x99,0x74,0x51,0x8D,0x06};
+
 uint32_t BinaryColumnStatsData::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -6092,7 +6230,7 @@ uint32_t 
BinaryColumnStatsData::read(::apache::thrift::protocol::TProtocol* ipro
 
 uint32_t BinaryColumnStatsData::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("BinaryColumnStatsData");
 
   xfer += oprot->writeFieldBegin("maxColLen", 
::apache::thrift::protocol::T_I64, 1);
@@ -6109,6 +6247,7 @@ uint32_t 
BinaryColumnStatsData::write(::apache::thrift::protocol::TProtocol* opr
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -6130,13 +6269,14 @@ BinaryColumnStatsData& 
BinaryColumnStatsData::operator=(const BinaryColumnStatsD
   numNulls = other288.numNulls;
   return *this;
 }
-void BinaryColumnStatsData::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const BinaryColumnStatsData& obj) {
+  using apache::thrift::to_string;
   out << "BinaryColumnStatsData(";
-  out << "maxColLen=" << to_string(maxColLen);
-  out << ", " << "avgColLen=" << to_string(avgColLen);
-  out << ", " << "numNulls=" << to_string(numNulls);
+  out << "maxColLen=" << to_string(obj.maxColLen);
+  out << ", " << "avgColLen=" << to_string(obj.avgColLen);
+  out << ", " << "numNulls=" << to_string(obj.numNulls);
   out << ")";
+  return out;
 }
 
 
@@ -6152,9 +6292,11 @@ void Decimal::__set_scale(const int16_t val) {
   this->scale = val;
 }
 
+const char* Decimal::ascii_fingerprint = "C4DDF6759F9B17C5C380806CE743DE8E";
+const uint8_t Decimal::binary_fingerprint[16] = 
{0xC4,0xDD,0xF6,0x75,0x9F,0x9B,0x17,0xC5,0xC3,0x80,0x80,0x6C,0xE7,0x43,0xDE,0x8E};
+
 uint32_t Decimal::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -6209,7 +6351,7 @@ uint32_t 
Decimal::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Decimal::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Decimal");
 
   xfer += oprot->writeFieldBegin("unscaled", 
::apache::thrift::protocol::T_STRING, 1);
@@ -6222,6 +6364,7 @@ uint32_t 
Decimal::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -6240,12 +6383,13 @@ Decimal& Decimal::operator=(const Decimal& other290) {
   scale = other290.scale;
   return *this;
 }
-void Decimal::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const Decimal& obj) {
+  using apache::thrift::to_string;
   out << "Decimal(";
-  out << "unscaled=" << to_string(unscaled);
-  out << ", " << "scale=" << to_string(scale);
+  out << "unscaled=" << to_string(obj.unscaled);
+  out << ", " << "scale=" << to_string(obj.scale);
   out << ")";
+  return out;
 }
 
 
@@ -6271,9 +6415,11 @@ void DecimalColumnStatsData::__set_numDVs(const int64_t 
val) {
   this->numDVs = val;
 }
 
+const char* DecimalColumnStatsData::ascii_fingerprint = 
"B6D47E7A28922BFA93FE05E9F1B04748";
+const uint8_t DecimalColumnStatsData::binary_fingerprint[16] = 
{0xB6,0xD4,0x7E,0x7A,0x28,0x92,0x2B,0xFA,0x93,0xFE,0x05,0xE9,0xF1,0xB0,0x47,0x48};
+
 uint32_t DecimalColumnStatsData::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -6344,7 +6490,7 @@ uint32_t 
DecimalColumnStatsData::read(::apache::thrift::protocol::TProtocol* ipr
 
 uint32_t DecimalColumnStatsData::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("DecimalColumnStatsData");
 
   if (this->__isset.lowValue) {
@@ -6367,6 +6513,7 @@ uint32_t 
DecimalColumnStatsData::write(::apache::thrift::protocol::TProtocol* op
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -6394,14 +6541,15 @@ DecimalColumnStatsData& 
DecimalColumnStatsData::operator=(const DecimalColumnSta
   __isset = other292.__isset;
   return *this;
 }
-void DecimalColumnStatsData::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const DecimalColumnStatsData& obj) 
{
+  using apache::thrift::to_string;
   out << "DecimalColumnStatsData(";
-  out << "lowValue="; (__isset.lowValue ? (out << to_string(lowValue)) : (out 
<< "<null>"));
-  out << ", " << "highValue="; (__isset.highValue ? (out << 
to_string(highValue)) : (out << "<null>"));
-  out << ", " << "numNulls=" << to_string(numNulls);
-  out << ", " << "numDVs=" << to_string(numDVs);
+  out << "lowValue="; (obj.__isset.lowValue ? (out << to_string(obj.lowValue)) 
: (out << "<null>"));
+  out << ", " << "highValue="; (obj.__isset.highValue ? (out << 
to_string(obj.highValue)) : (out << "<null>"));
+  out << ", " << "numNulls=" << to_string(obj.numNulls);
+  out << ", " << "numDVs=" << to_string(obj.numDVs);
   out << ")";
+  return out;
 }
 
 
@@ -6413,9 +6561,11 @@ void Date::__set_daysSinceEpoch(const int64_t val) {
   this->daysSinceEpoch = val;
 }
 
+const char* Date::ascii_fingerprint = "56A59CE7FFAF82BCA8A19FAACDE4FB75";
+const uint8_t Date::binary_fingerprint[16] = 
{0x56,0xA5,0x9C,0xE7,0xFF,0xAF,0x82,0xBC,0xA8,0xA1,0x9F,0xAA,0xCD,0xE4,0xFB,0x75};
+
 uint32_t Date::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -6459,7 +6609,7 @@ uint32_t 
Date::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Date::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Date");
 
   xfer += oprot->writeFieldBegin("daysSinceEpoch", 
::apache::thrift::protocol::T_I64, 1);
@@ -6468,6 +6618,7 @@ uint32_t 
Date::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -6483,11 +6634,12 @@ Date& Date::operator=(const Date& other294) {
   daysSinceEpoch = other294.daysSinceEpoch;
   return *this;
 }
-void Date::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const Date& obj) {
+  using apache::thrift::to_string;
   out << "Date(";
-  out << "daysSinceEpoch=" << to_string(daysSinceEpoch);
+  out << "daysSinceEpoch=" << to_string(obj.daysSinceEpoch);
   out << ")";
+  return out;
 }
 
 
@@ -6513,9 +6665,11 @@ void DateColumnStatsData::__set_numDVs(const int64_t 
val) {
   this->numDVs = val;
 }
 
+const char* DateColumnStatsData::ascii_fingerprint = 
"D0719F3BBA8248297BB5287552897F59";
+const uint8_t DateColumnStatsData::binary_fingerprint[16] = 
{0xD0,0x71,0x9F,0x3B,0xBA,0x82,0x48,0x29,0x7B,0xB5,0x28,0x75,0x52,0x89,0x7F,0x59};
+
 uint32_t DateColumnStatsData::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -6586,7 +6740,7 @@ uint32_t 
DateColumnStatsData::read(::apache::thrift::protocol::TProtocol* iprot)
 
 uint32_t DateColumnStatsData::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("DateColumnStatsData");
 
   if (this->__isset.lowValue) {
@@ -6609,6 +6763,7 @@ uint32_t 
DateColumnStatsData::write(::apache::thrift::protocol::TProtocol* oprot
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -6636,14 +6791,15 @@ DateColumnStatsData& 
DateColumnStatsData::operator=(const DateColumnStatsData& o
   __isset = other296.__isset;
   return *this;
 }
-void DateColumnStatsData::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
+std::ostream& operator<<(std::ostream& out, const DateColumnStatsData& obj) {
+  using apache::thrift::to_string;
   out << "DateColumnStatsData(";
-  out << "lowValue="; (__isset.lowValue ? (out << to_string(lowValue)) : (out 
<< "<null>"));
-  out << ", " << "highValue="; (__isset.highValue ? (out << 
to_string(highValue)) : (out << "<null>"));
-  out << ", " << "numNulls=" << to_string(numNulls);
-  out << ", " << "numDVs=" << to_string(numDVs);
+  out << "lowValue="; (obj.__isset.lowValue ? (out << to_string(obj.lowValue)) 
: (out << "<null>"));
+  out << ", " << "highValue="; (obj.__isset.highValue ? (out << 
to_string(obj.highValue)) : (out << "<null>"));
+  out << ", " << "numNulls=" << to_string(obj.numNulls);
+  out << ", " << "numDVs=" << to_string(obj.numDVs);
   out << ")";
+  return out;
 }
 
 
@@ -6679,9 +6835,11 @@ void ColumnStatisticsData::__set_dateStats(const 
DateColumnStatsData& val) {
   this->dateStats = val;
 }
 
+const char* ColumnStatisticsData::ascii_fingerprint = 
"15E449CA15A23E37F2D54C31ACA52106";
+const uint8_t ColumnStatisticsData::binary_fingerprint[16] = 
{0x15,0xE4,0x49,0xCA,0x15,0xA2,0x3E,0x37,0xF2,0xD5,0x4C,0x31,0xAC,0xA5,0x21,0x06};
+
 uint32_t ColumnStatisticsData::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -6770,7 +6928,7 @@ uint32_t 
ColumnStatisticsData::read(::apache::thrift::protocol::TProtocol* iprot
 
 uint32_t ColumnStatisticsData::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("ColumnStatisticsData");
 
   xfer += oprot->writeFieldBegin("booleanStats", 
::apache::thrift::protocol::T_STRUCT, 1);
@@ -6803,6 +6961,7 @@ uint32_t 
ColumnStatisticsData::write(::apache::thrift::protocol::TProtocol* opro
 
   xfer += oprot->writeFieldStop();

<TRUNCATED>

Reply via email to