You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2015/10/28 13:10:59 UTC

[06/55] [abbrv] hive git commit: HIVE-11591 : upgrade thrift to 0.9.3 and change generation to use undated annotations (Sergey Shelukhin, reviewed by Alan Gates)

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/service/src/gen/thrift/gen-cpp/TCLIService_types.cpp
----------------------------------------------------------------------
diff --git a/service/src/gen/thrift/gen-cpp/TCLIService_types.cpp b/service/src/gen/thrift/gen-cpp/TCLIService_types.cpp
index 742cfdc..b852379 100644
--- a/service/src/gen/thrift/gen-cpp/TCLIService_types.cpp
+++ b/service/src/gen/thrift/gen-cpp/TCLIService_types.cpp
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (0.9.2)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -280,11 +280,9 @@ void TTypeQualifierValue::__set_stringValue(const std::string& val) {
 __isset.stringValue = true;
 }
 
-const char* TTypeQualifierValue::ascii_fingerprint = "A7801670116150C65ACA43E6F679BA79";
-const uint8_t TTypeQualifierValue::binary_fingerprint[16] = {0xA7,0x80,0x16,0x70,0x11,0x61,0x50,0xC6,0x5A,0xCA,0x43,0xE6,0xF6,0x79,0xBA,0x79};
-
 uint32_t TTypeQualifierValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -333,7 +331,7 @@ uint32_t TTypeQualifierValue::read(::apache::thrift::protocol::TProtocol* iprot)
 
 uint32_t TTypeQualifierValue::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TTypeQualifierValue");
 
   if (this->__isset.i32Value) {
@@ -348,7 +346,6 @@ uint32_t TTypeQualifierValue::write(::apache::thrift::protocol::TProtocol* oprot
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -370,13 +367,12 @@ TTypeQualifierValue& TTypeQualifierValue::operator=(const TTypeQualifierValue& o
   __isset = other1.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TTypeQualifierValue& obj) {
-  using apache::thrift::to_string;
+void TTypeQualifierValue::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TTypeQualifierValue(";
-  out << "i32Value="; (obj.__isset.i32Value ? (out << to_string(obj.i32Value)) : (out << "<null>"));
-  out << ", " << "stringValue="; (obj.__isset.stringValue ? (out << to_string(obj.stringValue)) : (out << "<null>"));
+  out << "i32Value="; (__isset.i32Value ? (out << to_string(i32Value)) : (out << "<null>"));
+  out << ", " << "stringValue="; (__isset.stringValue ? (out << to_string(stringValue)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -388,11 +384,9 @@ void TTypeQualifiers::__set_qualifiers(const std::map<std::string, TTypeQualifie
   this->qualifiers = val;
 }
 
-const char* TTypeQualifiers::ascii_fingerprint = "6C72981CFA989214285648FA8C196C47";
-const uint8_t TTypeQualifiers::binary_fingerprint[16] = {0x6C,0x72,0x98,0x1C,0xFA,0x98,0x92,0x14,0x28,0x56,0x48,0xFA,0x8C,0x19,0x6C,0x47};
-
 uint32_t TTypeQualifiers::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -451,7 +445,7 @@ uint32_t TTypeQualifiers::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TTypeQualifiers::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TTypeQualifiers");
 
   xfer += oprot->writeFieldBegin("qualifiers", ::apache::thrift::protocol::T_MAP, 1);
@@ -469,7 +463,6 @@ uint32_t TTypeQualifiers::write(::apache::thrift::protocol::TProtocol* oprot) co
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -485,12 +478,11 @@ TTypeQualifiers& TTypeQualifiers::operator=(const TTypeQualifiers& other11) {
   qualifiers = other11.qualifiers;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TTypeQualifiers& obj) {
-  using apache::thrift::to_string;
+void TTypeQualifiers::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TTypeQualifiers(";
-  out << "qualifiers=" << to_string(obj.qualifiers);
+  out << "qualifiers=" << to_string(qualifiers);
   out << ")";
-  return out;
 }
 
 
@@ -507,11 +499,9 @@ void TPrimitiveTypeEntry::__set_typeQualifiers(const TTypeQualifiers& val) {
 __isset.typeQualifiers = true;
 }
 
-const char* TPrimitiveTypeEntry::ascii_fingerprint = "755674F6A5C8EB47868686AE386FBC1C";
-const uint8_t TPrimitiveTypeEntry::binary_fingerprint[16] = {0x75,0x56,0x74,0xF6,0xA5,0xC8,0xEB,0x47,0x86,0x86,0x86,0xAE,0x38,0x6F,0xBC,0x1C};
-
 uint32_t TPrimitiveTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -565,7 +555,7 @@ uint32_t TPrimitiveTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot)
 
 uint32_t TPrimitiveTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TPrimitiveTypeEntry");
 
   xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_I32, 1);
@@ -579,7 +569,6 @@ uint32_t TPrimitiveTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -601,13 +590,12 @@ TPrimitiveTypeEntry& TPrimitiveTypeEntry::operator=(const TPrimitiveTypeEntry& o
   __isset = other14.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TPrimitiveTypeEntry& obj) {
-  using apache::thrift::to_string;
+void TPrimitiveTypeEntry::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TPrimitiveTypeEntry(";
-  out << "type=" << to_string(obj.type);
-  out << ", " << "typeQualifiers="; (obj.__isset.typeQualifiers ? (out << to_string(obj.typeQualifiers)) : (out << "<null>"));
+  out << "type=" << to_string(type);
+  out << ", " << "typeQualifiers="; (__isset.typeQualifiers ? (out << to_string(typeQualifiers)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -619,11 +607,9 @@ void TArrayTypeEntry::__set_objectTypePtr(const TTypeEntryPtr val) {
   this->objectTypePtr = val;
 }
 
-const char* TArrayTypeEntry::ascii_fingerprint = "E86CACEB22240450EDCBEFC3A83970E4";
-const uint8_t TArrayTypeEntry::binary_fingerprint[16] = {0xE8,0x6C,0xAC,0xEB,0x22,0x24,0x04,0x50,0xED,0xCB,0xEF,0xC3,0xA8,0x39,0x70,0xE4};
-
 uint32_t TArrayTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -667,7 +653,7 @@ uint32_t TArrayTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TArrayTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TArrayTypeEntry");
 
   xfer += oprot->writeFieldBegin("objectTypePtr", ::apache::thrift::protocol::T_I32, 1);
@@ -676,7 +662,6 @@ uint32_t TArrayTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) co
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -692,12 +677,11 @@ TArrayTypeEntry& TArrayTypeEntry::operator=(const TArrayTypeEntry& other16) {
   objectTypePtr = other16.objectTypePtr;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TArrayTypeEntry& obj) {
-  using apache::thrift::to_string;
+void TArrayTypeEntry::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TArrayTypeEntry(";
-  out << "objectTypePtr=" << to_string(obj.objectTypePtr);
+  out << "objectTypePtr=" << to_string(objectTypePtr);
   out << ")";
-  return out;
 }
 
 
@@ -713,11 +697,9 @@ void TMapTypeEntry::__set_valueTypePtr(const TTypeEntryPtr val) {
   this->valueTypePtr = val;
 }
 
-const char* TMapTypeEntry::ascii_fingerprint = "989D1F1AE8D148D5E2119FFEC4BBBEE3";
-const uint8_t TMapTypeEntry::binary_fingerprint[16] = {0x98,0x9D,0x1F,0x1A,0xE8,0xD1,0x48,0xD5,0xE2,0x11,0x9F,0xFE,0xC4,0xBB,0xBE,0xE3};
-
 uint32_t TMapTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -772,7 +754,7 @@ uint32_t TMapTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TMapTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TMapTypeEntry");
 
   xfer += oprot->writeFieldBegin("keyTypePtr", ::apache::thrift::protocol::T_I32, 1);
@@ -785,7 +767,6 @@ uint32_t TMapTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) cons
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -804,13 +785,12 @@ TMapTypeEntry& TMapTypeEntry::operator=(const TMapTypeEntry& other18) {
   valueTypePtr = other18.valueTypePtr;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TMapTypeEntry& obj) {
-  using apache::thrift::to_string;
+void TMapTypeEntry::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TMapTypeEntry(";
-  out << "keyTypePtr=" << to_string(obj.keyTypePtr);
-  out << ", " << "valueTypePtr=" << to_string(obj.valueTypePtr);
+  out << "keyTypePtr=" << to_string(keyTypePtr);
+  out << ", " << "valueTypePtr=" << to_string(valueTypePtr);
   out << ")";
-  return out;
 }
 
 
@@ -822,11 +802,9 @@ void TStructTypeEntry::__set_nameToTypePtr(const std::map<std::string, TTypeEntr
   this->nameToTypePtr = val;
 }
 
-const char* TStructTypeEntry::ascii_fingerprint = "91F548CA159B4AB4291F5741AC161402";
-const uint8_t TStructTypeEntry::binary_fingerprint[16] = {0x91,0xF5,0x48,0xCA,0x15,0x9B,0x4A,0xB4,0x29,0x1F,0x57,0x41,0xAC,0x16,0x14,0x02};
-
 uint32_t TStructTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -885,7 +863,7 @@ uint32_t TStructTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TStructTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TStructTypeEntry");
 
   xfer += oprot->writeFieldBegin("nameToTypePtr", ::apache::thrift::protocol::T_MAP, 1);
@@ -903,7 +881,6 @@ uint32_t TStructTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) c
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -919,12 +896,11 @@ TStructTypeEntry& TStructTypeEntry::operator=(const TStructTypeEntry& other28) {
   nameToTypePtr = other28.nameToTypePtr;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TStructTypeEntry& obj) {
-  using apache::thrift::to_string;
+void TStructTypeEntry::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TStructTypeEntry(";
-  out << "nameToTypePtr=" << to_string(obj.nameToTypePtr);
+  out << "nameToTypePtr=" << to_string(nameToTypePtr);
   out << ")";
-  return out;
 }
 
 
@@ -936,11 +912,9 @@ void TUnionTypeEntry::__set_nameToTypePtr(const std::map<std::string, TTypeEntry
   this->nameToTypePtr = val;
 }
 
-const char* TUnionTypeEntry::ascii_fingerprint = "91F548CA159B4AB4291F5741AC161402";
-const uint8_t TUnionTypeEntry::binary_fingerprint[16] = {0x91,0xF5,0x48,0xCA,0x15,0x9B,0x4A,0xB4,0x29,0x1F,0x57,0x41,0xAC,0x16,0x14,0x02};
-
 uint32_t TUnionTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -999,7 +973,7 @@ uint32_t TUnionTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TUnionTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TUnionTypeEntry");
 
   xfer += oprot->writeFieldBegin("nameToTypePtr", ::apache::thrift::protocol::T_MAP, 1);
@@ -1017,7 +991,6 @@ uint32_t TUnionTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) co
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1033,12 +1006,11 @@ TUnionTypeEntry& TUnionTypeEntry::operator=(const TUnionTypeEntry& other38) {
   nameToTypePtr = other38.nameToTypePtr;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TUnionTypeEntry& obj) {
-  using apache::thrift::to_string;
+void TUnionTypeEntry::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TUnionTypeEntry(";
-  out << "nameToTypePtr=" << to_string(obj.nameToTypePtr);
+  out << "nameToTypePtr=" << to_string(nameToTypePtr);
   out << ")";
-  return out;
 }
 
 
@@ -1050,11 +1022,9 @@ void TUserDefinedTypeEntry::__set_typeClassName(const std::string& val) {
   this->typeClassName = val;
 }
 
-const char* TUserDefinedTypeEntry::ascii_fingerprint = "EFB929595D312AC8F305D5A794CFEDA1";
-const uint8_t TUserDefinedTypeEntry::binary_fingerprint[16] = {0xEF,0xB9,0x29,0x59,0x5D,0x31,0x2A,0xC8,0xF3,0x05,0xD5,0xA7,0x94,0xCF,0xED,0xA1};
-
 uint32_t TUserDefinedTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1098,7 +1068,7 @@ uint32_t TUserDefinedTypeEntry::read(::apache::thrift::protocol::TProtocol* ipro
 
 uint32_t TUserDefinedTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TUserDefinedTypeEntry");
 
   xfer += oprot->writeFieldBegin("typeClassName", ::apache::thrift::protocol::T_STRING, 1);
@@ -1107,7 +1077,6 @@ uint32_t TUserDefinedTypeEntry::write(::apache::thrift::protocol::TProtocol* opr
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1123,12 +1092,11 @@ TUserDefinedTypeEntry& TUserDefinedTypeEntry::operator=(const TUserDefinedTypeEn
   typeClassName = other40.typeClassName;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TUserDefinedTypeEntry& obj) {
-  using apache::thrift::to_string;
+void TUserDefinedTypeEntry::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TUserDefinedTypeEntry(";
-  out << "typeClassName=" << to_string(obj.typeClassName);
+  out << "typeClassName=" << to_string(typeClassName);
   out << ")";
-  return out;
 }
 
 
@@ -1160,11 +1128,9 @@ void TTypeEntry::__set_userDefinedTypeEntry(const TUserDefinedTypeEntry& val) {
   this->userDefinedTypeEntry = val;
 }
 
-const char* TTypeEntry::ascii_fingerprint = "2FE56D9097E325DAA7E933738C6D325F";
-const uint8_t TTypeEntry::binary_fingerprint[16] = {0x2F,0xE5,0x6D,0x90,0x97,0xE3,0x25,0xDA,0xA7,0xE9,0x33,0x73,0x8C,0x6D,0x32,0x5F};
-
 uint32_t TTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1245,7 +1211,7 @@ uint32_t TTypeEntry::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TTypeEntry");
 
   xfer += oprot->writeFieldBegin("primitiveEntry", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -1274,7 +1240,6 @@ uint32_t TTypeEntry::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1308,17 +1273,16 @@ TTypeEntry& TTypeEntry::operator=(const TTypeEntry& other42) {
   __isset = other42.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TTypeEntry& obj) {
-  using apache::thrift::to_string;
+void TTypeEntry::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TTypeEntry(";
-  out << "primitiveEntry=" << to_string(obj.primitiveEntry);
-  out << ", " << "arrayEntry=" << to_string(obj.arrayEntry);
-  out << ", " << "mapEntry=" << to_string(obj.mapEntry);
-  out << ", " << "structEntry=" << to_string(obj.structEntry);
-  out << ", " << "unionEntry=" << to_string(obj.unionEntry);
-  out << ", " << "userDefinedTypeEntry=" << to_string(obj.userDefinedTypeEntry);
+  out << "primitiveEntry=" << to_string(primitiveEntry);
+  out << ", " << "arrayEntry=" << to_string(arrayEntry);
+  out << ", " << "mapEntry=" << to_string(mapEntry);
+  out << ", " << "structEntry=" << to_string(structEntry);
+  out << ", " << "unionEntry=" << to_string(unionEntry);
+  out << ", " << "userDefinedTypeEntry=" << to_string(userDefinedTypeEntry);
   out << ")";
-  return out;
 }
 
 
@@ -1330,11 +1294,9 @@ void TTypeDesc::__set_types(const std::vector<TTypeEntry> & val) {
   this->types = val;
 }
 
-const char* TTypeDesc::ascii_fingerprint = "90B3C5A0B73419A84E85E0E48C452AA5";
-const uint8_t TTypeDesc::binary_fingerprint[16] = {0x90,0xB3,0xC5,0xA0,0xB7,0x34,0x19,0xA8,0x4E,0x85,0xE0,0xE4,0x8C,0x45,0x2A,0xA5};
-
 uint32_t TTypeDesc::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1390,7 +1352,7 @@ uint32_t TTypeDesc::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TTypeDesc::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TTypeDesc");
 
   xfer += oprot->writeFieldBegin("types", ::apache::thrift::protocol::T_LIST, 1);
@@ -1407,7 +1369,6 @@ uint32_t TTypeDesc::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1423,12 +1384,11 @@ TTypeDesc& TTypeDesc::operator=(const TTypeDesc& other50) {
   types = other50.types;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TTypeDesc& obj) {
-  using apache::thrift::to_string;
+void TTypeDesc::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TTypeDesc(";
-  out << "types=" << to_string(obj.types);
+  out << "types=" << to_string(types);
   out << ")";
-  return out;
 }
 
 
@@ -1453,11 +1413,9 @@ void TColumnDesc::__set_comment(const std::string& val) {
 __isset.comment = true;
 }
 
-const char* TColumnDesc::ascii_fingerprint = "EABED9009D5FCABFCA65612069F2A849";
-const uint8_t TColumnDesc::binary_fingerprint[16] = {0xEA,0xBE,0xD9,0x00,0x9D,0x5F,0xCA,0xBF,0xCA,0x65,0x61,0x20,0x69,0xF2,0xA8,0x49};
-
 uint32_t TColumnDesc::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1531,7 +1489,7 @@ uint32_t TColumnDesc::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TColumnDesc::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TColumnDesc");
 
   xfer += oprot->writeFieldBegin("columnName", ::apache::thrift::protocol::T_STRING, 1);
@@ -1553,7 +1511,6 @@ uint32_t TColumnDesc::write(::apache::thrift::protocol::TProtocol* oprot) const
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1581,15 +1538,14 @@ TColumnDesc& TColumnDesc::operator=(const TColumnDesc& other52) {
   __isset = other52.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TColumnDesc& obj) {
-  using apache::thrift::to_string;
+void TColumnDesc::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TColumnDesc(";
-  out << "columnName=" << to_string(obj.columnName);
-  out << ", " << "typeDesc=" << to_string(obj.typeDesc);
-  out << ", " << "position=" << to_string(obj.position);
-  out << ", " << "comment="; (obj.__isset.comment ? (out << to_string(obj.comment)) : (out << "<null>"));
+  out << "columnName=" << to_string(columnName);
+  out << ", " << "typeDesc=" << to_string(typeDesc);
+  out << ", " << "position=" << to_string(position);
+  out << ", " << "comment="; (__isset.comment ? (out << to_string(comment)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -1601,11 +1557,9 @@ void TTableSchema::__set_columns(const std::vector<TColumnDesc> & val) {
   this->columns = val;
 }
 
-const char* TTableSchema::ascii_fingerprint = "7A1811E49313E5977107FC667B20E39D";
-const uint8_t TTableSchema::binary_fingerprint[16] = {0x7A,0x18,0x11,0xE4,0x93,0x13,0xE5,0x97,0x71,0x07,0xFC,0x66,0x7B,0x20,0xE3,0x9D};
-
 uint32_t TTableSchema::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1661,7 +1615,7 @@ uint32_t TTableSchema::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TTableSchema::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TTableSchema");
 
   xfer += oprot->writeFieldBegin("columns", ::apache::thrift::protocol::T_LIST, 1);
@@ -1678,7 +1632,6 @@ uint32_t TTableSchema::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1694,12 +1647,11 @@ TTableSchema& TTableSchema::operator=(const TTableSchema& other60) {
   columns = other60.columns;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TTableSchema& obj) {
-  using apache::thrift::to_string;
+void TTableSchema::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TTableSchema(";
-  out << "columns=" << to_string(obj.columns);
+  out << "columns=" << to_string(columns);
   out << ")";
-  return out;
 }
 
 
@@ -1712,11 +1664,9 @@ void TBoolValue::__set_value(const bool val) {
 __isset.value = true;
 }
 
-const char* TBoolValue::ascii_fingerprint = "BF054652DEF86253C2BEE7D947F167DD";
-const uint8_t TBoolValue::binary_fingerprint[16] = {0xBF,0x05,0x46,0x52,0xDE,0xF8,0x62,0x53,0xC2,0xBE,0xE7,0xD9,0x47,0xF1,0x67,0xDD};
-
 uint32_t TBoolValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1757,7 +1707,7 @@ uint32_t TBoolValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TBoolValue::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TBoolValue");
 
   if (this->__isset.value) {
@@ -1767,7 +1717,6 @@ uint32_t TBoolValue::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1786,12 +1735,11 @@ TBoolValue& TBoolValue::operator=(const TBoolValue& other62) {
   __isset = other62.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TBoolValue& obj) {
-  using apache::thrift::to_string;
+void TBoolValue::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TBoolValue(";
-  out << "value="; (obj.__isset.value ? (out << to_string(obj.value)) : (out << "<null>"));
+  out << "value="; (__isset.value ? (out << to_string(value)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -1804,11 +1752,9 @@ void TByteValue::__set_value(const int8_t val) {
 __isset.value = true;
 }
 
-const char* TByteValue::ascii_fingerprint = "9C15298ACB5D04AEA9B52D5DDE6F9208";
-const uint8_t TByteValue::binary_fingerprint[16] = {0x9C,0x15,0x29,0x8A,0xCB,0x5D,0x04,0xAE,0xA9,0xB5,0x2D,0x5D,0xDE,0x6F,0x92,0x08};
-
 uint32_t TByteValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1849,7 +1795,7 @@ uint32_t TByteValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TByteValue::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TByteValue");
 
   if (this->__isset.value) {
@@ -1859,7 +1805,6 @@ uint32_t TByteValue::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1878,12 +1823,11 @@ TByteValue& TByteValue::operator=(const TByteValue& other64) {
   __isset = other64.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TByteValue& obj) {
-  using apache::thrift::to_string;
+void TByteValue::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TByteValue(";
-  out << "value="; (obj.__isset.value ? (out << to_string(obj.value)) : (out << "<null>"));
+  out << "value="; (__isset.value ? (out << to_string(value)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -1896,11 +1840,9 @@ void TI16Value::__set_value(const int16_t val) {
 __isset.value = true;
 }
 
-const char* TI16Value::ascii_fingerprint = "5DAC9C51C7E1106BF936FC71860BE9D5";
-const uint8_t TI16Value::binary_fingerprint[16] = {0x5D,0xAC,0x9C,0x51,0xC7,0xE1,0x10,0x6B,0xF9,0x36,0xFC,0x71,0x86,0x0B,0xE9,0xD5};
-
 uint32_t TI16Value::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1941,7 +1883,7 @@ uint32_t TI16Value::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TI16Value::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TI16Value");
 
   if (this->__isset.value) {
@@ -1951,7 +1893,6 @@ uint32_t TI16Value::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1970,12 +1911,11 @@ TI16Value& TI16Value::operator=(const TI16Value& other66) {
   __isset = other66.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TI16Value& obj) {
-  using apache::thrift::to_string;
+void TI16Value::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TI16Value(";
-  out << "value="; (obj.__isset.value ? (out << to_string(obj.value)) : (out << "<null>"));
+  out << "value="; (__isset.value ? (out << to_string(value)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -1988,11 +1928,9 @@ void TI32Value::__set_value(const int32_t val) {
 __isset.value = true;
 }
 
-const char* TI32Value::ascii_fingerprint = "E7A96B151330359E84C0A3AC91BCBACD";
-const uint8_t TI32Value::binary_fingerprint[16] = {0xE7,0xA9,0x6B,0x15,0x13,0x30,0x35,0x9E,0x84,0xC0,0xA3,0xAC,0x91,0xBC,0xBA,0xCD};
-
 uint32_t TI32Value::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2033,7 +1971,7 @@ uint32_t TI32Value::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TI32Value::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TI32Value");
 
   if (this->__isset.value) {
@@ -2043,7 +1981,6 @@ uint32_t TI32Value::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2062,12 +1999,11 @@ TI32Value& TI32Value::operator=(const TI32Value& other68) {
   __isset = other68.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TI32Value& obj) {
-  using apache::thrift::to_string;
+void TI32Value::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TI32Value(";
-  out << "value="; (obj.__isset.value ? (out << to_string(obj.value)) : (out << "<null>"));
+  out << "value="; (__isset.value ? (out << to_string(value)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -2080,11 +2016,9 @@ void TI64Value::__set_value(const int64_t val) {
 __isset.value = true;
 }
 
-const char* TI64Value::ascii_fingerprint = "148F3AAAC1D9859963D5E800D187BF26";
-const uint8_t TI64Value::binary_fingerprint[16] = {0x14,0x8F,0x3A,0xAA,0xC1,0xD9,0x85,0x99,0x63,0xD5,0xE8,0x00,0xD1,0x87,0xBF,0x26};
-
 uint32_t TI64Value::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2125,7 +2059,7 @@ uint32_t TI64Value::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TI64Value::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TI64Value");
 
   if (this->__isset.value) {
@@ -2135,7 +2069,6 @@ uint32_t TI64Value::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2154,12 +2087,11 @@ TI64Value& TI64Value::operator=(const TI64Value& other70) {
   __isset = other70.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TI64Value& obj) {
-  using apache::thrift::to_string;
+void TI64Value::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TI64Value(";
-  out << "value="; (obj.__isset.value ? (out << to_string(obj.value)) : (out << "<null>"));
+  out << "value="; (__isset.value ? (out << to_string(value)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -2172,11 +2104,9 @@ void TDoubleValue::__set_value(const double val) {
 __isset.value = true;
 }
 
-const char* TDoubleValue::ascii_fingerprint = "3586E570A474C4A8603B4FF74903B3A6";
-const uint8_t TDoubleValue::binary_fingerprint[16] = {0x35,0x86,0xE5,0x70,0xA4,0x74,0xC4,0xA8,0x60,0x3B,0x4F,0xF7,0x49,0x03,0xB3,0xA6};
-
 uint32_t TDoubleValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2217,7 +2147,7 @@ uint32_t TDoubleValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TDoubleValue::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TDoubleValue");
 
   if (this->__isset.value) {
@@ -2227,7 +2157,6 @@ uint32_t TDoubleValue::write(::apache::thrift::protocol::TProtocol* oprot) const
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2246,12 +2175,11 @@ TDoubleValue& TDoubleValue::operator=(const TDoubleValue& other72) {
   __isset = other72.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TDoubleValue& obj) {
-  using apache::thrift::to_string;
+void TDoubleValue::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TDoubleValue(";
-  out << "value="; (obj.__isset.value ? (out << to_string(obj.value)) : (out << "<null>"));
+  out << "value="; (__isset.value ? (out << to_string(value)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -2264,11 +2192,9 @@ void TStringValue::__set_value(const std::string& val) {
 __isset.value = true;
 }
 
-const char* TStringValue::ascii_fingerprint = "66E694018C17E5B65A59AE8F55CCA3CD";
-const uint8_t TStringValue::binary_fingerprint[16] = {0x66,0xE6,0x94,0x01,0x8C,0x17,0xE5,0xB6,0x5A,0x59,0xAE,0x8F,0x55,0xCC,0xA3,0xCD};
-
 uint32_t TStringValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2309,7 +2235,7 @@ uint32_t TStringValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TStringValue::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TStringValue");
 
   if (this->__isset.value) {
@@ -2319,7 +2245,6 @@ uint32_t TStringValue::write(::apache::thrift::protocol::TProtocol* oprot) const
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2338,12 +2263,11 @@ TStringValue& TStringValue::operator=(const TStringValue& other74) {
   __isset = other74.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TStringValue& obj) {
-  using apache::thrift::to_string;
+void TStringValue::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TStringValue(";
-  out << "value="; (obj.__isset.value ? (out << to_string(obj.value)) : (out << "<null>"));
+  out << "value="; (__isset.value ? (out << to_string(value)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -2379,11 +2303,9 @@ void TColumnValue::__set_stringVal(const TStringValue& val) {
   this->stringVal = val;
 }
 
-const char* TColumnValue::ascii_fingerprint = "C2DDD988447EA7999A8285AA38AAE9AD";
-const uint8_t TColumnValue::binary_fingerprint[16] = {0xC2,0xDD,0xD9,0x88,0x44,0x7E,0xA7,0x99,0x9A,0x82,0x85,0xAA,0x38,0xAA,0xE9,0xAD};
-
 uint32_t TColumnValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2472,7 +2394,7 @@ uint32_t TColumnValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TColumnValue::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TColumnValue");
 
   xfer += oprot->writeFieldBegin("boolVal", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -2505,7 +2427,6 @@ uint32_t TColumnValue::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2542,18 +2463,17 @@ TColumnValue& TColumnValue::operator=(const TColumnValue& other76) {
   __isset = other76.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TColumnValue& obj) {
-  using apache::thrift::to_string;
+void TColumnValue::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TColumnValue(";
-  out << "boolVal=" << to_string(obj.boolVal);
-  out << ", " << "byteVal=" << to_string(obj.byteVal);
-  out << ", " << "i16Val=" << to_string(obj.i16Val);
-  out << ", " << "i32Val=" << to_string(obj.i32Val);
-  out << ", " << "i64Val=" << to_string(obj.i64Val);
-  out << ", " << "doubleVal=" << to_string(obj.doubleVal);
-  out << ", " << "stringVal=" << to_string(obj.stringVal);
+  out << "boolVal=" << to_string(boolVal);
+  out << ", " << "byteVal=" << to_string(byteVal);
+  out << ", " << "i16Val=" << to_string(i16Val);
+  out << ", " << "i32Val=" << to_string(i32Val);
+  out << ", " << "i64Val=" << to_string(i64Val);
+  out << ", " << "doubleVal=" << to_string(doubleVal);
+  out << ", " << "stringVal=" << to_string(stringVal);
   out << ")";
-  return out;
 }
 
 
@@ -2565,11 +2485,9 @@ void TRow::__set_colVals(const std::vector<TColumnValue> & val) {
   this->colVals = val;
 }
 
-const char* TRow::ascii_fingerprint = "E73FD1FCA0CA58A669FC3E02FB68D534";
-const uint8_t TRow::binary_fingerprint[16] = {0xE7,0x3F,0xD1,0xFC,0xA0,0xCA,0x58,0xA6,0x69,0xFC,0x3E,0x02,0xFB,0x68,0xD5,0x34};
-
 uint32_t TRow::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2625,7 +2543,7 @@ uint32_t TRow::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TRow::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TRow");
 
   xfer += oprot->writeFieldBegin("colVals", ::apache::thrift::protocol::T_LIST, 1);
@@ -2642,7 +2560,6 @@ uint32_t TRow::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2658,12 +2575,11 @@ TRow& TRow::operator=(const TRow& other84) {
   colVals = other84.colVals;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TRow& obj) {
-  using apache::thrift::to_string;
+void TRow::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TRow(";
-  out << "colVals=" << to_string(obj.colVals);
+  out << "colVals=" << to_string(colVals);
   out << ")";
-  return out;
 }
 
 
@@ -2679,11 +2595,9 @@ void TBoolColumn::__set_nulls(const std::string& val) {
   this->nulls = val;
 }
 
-const char* TBoolColumn::ascii_fingerprint = "F9058324D96DB7F974D8ACDC01C54219";
-const uint8_t TBoolColumn::binary_fingerprint[16] = {0xF9,0x05,0x83,0x24,0xD9,0x6D,0xB7,0xF9,0x74,0xD8,0xAC,0xDC,0x01,0xC5,0x42,0x19};
-
 uint32_t TBoolColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2750,7 +2664,7 @@ uint32_t TBoolColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TBoolColumn::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TBoolColumn");
 
   xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 1);
@@ -2771,7 +2685,6 @@ uint32_t TBoolColumn::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2790,13 +2703,12 @@ TBoolColumn& TBoolColumn::operator=(const TBoolColumn& other92) {
   nulls = other92.nulls;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TBoolColumn& obj) {
-  using apache::thrift::to_string;
+void TBoolColumn::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TBoolColumn(";
-  out << "values=" << to_string(obj.values);
-  out << ", " << "nulls=" << to_string(obj.nulls);
+  out << "values=" << to_string(values);
+  out << ", " << "nulls=" << to_string(nulls);
   out << ")";
-  return out;
 }
 
 
@@ -2812,11 +2724,9 @@ void TByteColumn::__set_nulls(const std::string& val) {
   this->nulls = val;
 }
 
-const char* TByteColumn::ascii_fingerprint = "1CB300106BAA463A70BB2A2395900F48";
-const uint8_t TByteColumn::binary_fingerprint[16] = {0x1C,0xB3,0x00,0x10,0x6B,0xAA,0x46,0x3A,0x70,0xBB,0x2A,0x23,0x95,0x90,0x0F,0x48};
-
 uint32_t TByteColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2883,7 +2793,7 @@ uint32_t TByteColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TByteColumn::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TByteColumn");
 
   xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 1);
@@ -2904,7 +2814,6 @@ uint32_t TByteColumn::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -2923,13 +2832,12 @@ TByteColumn& TByteColumn::operator=(const TByteColumn& other100) {
   nulls = other100.nulls;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TByteColumn& obj) {
-  using apache::thrift::to_string;
+void TByteColumn::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TByteColumn(";
-  out << "values=" << to_string(obj.values);
-  out << ", " << "nulls=" << to_string(obj.nulls);
+  out << "values=" << to_string(values);
+  out << ", " << "nulls=" << to_string(nulls);
   out << ")";
-  return out;
 }
 
 
@@ -2945,11 +2853,9 @@ void TI16Column::__set_nulls(const std::string& val) {
   this->nulls = val;
 }
 
-const char* TI16Column::ascii_fingerprint = "6574CDB1F121C8DB47FB257A3F104BDB";
-const uint8_t TI16Column::binary_fingerprint[16] = {0x65,0x74,0xCD,0xB1,0xF1,0x21,0xC8,0xDB,0x47,0xFB,0x25,0x7A,0x3F,0x10,0x4B,0xDB};
-
 uint32_t TI16Column::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3016,7 +2922,7 @@ uint32_t TI16Column::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TI16Column::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TI16Column");
 
   xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 1);
@@ -3037,7 +2943,6 @@ uint32_t TI16Column::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3056,13 +2961,12 @@ TI16Column& TI16Column::operator=(const TI16Column& other108) {
   nulls = other108.nulls;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TI16Column& obj) {
-  using apache::thrift::to_string;
+void TI16Column::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TI16Column(";
-  out << "values=" << to_string(obj.values);
-  out << ", " << "nulls=" << to_string(obj.nulls);
+  out << "values=" << to_string(values);
+  out << ", " << "nulls=" << to_string(nulls);
   out << ")";
-  return out;
 }
 
 
@@ -3078,11 +2982,9 @@ void TI32Column::__set_nulls(const std::string& val) {
   this->nulls = val;
 }
 
-const char* TI32Column::ascii_fingerprint = "CCCCE89C7E9DA10280F5663700677313";
-const uint8_t TI32Column::binary_fingerprint[16] = {0xCC,0xCC,0xE8,0x9C,0x7E,0x9D,0xA1,0x02,0x80,0xF5,0x66,0x37,0x00,0x67,0x73,0x13};
-
 uint32_t TI32Column::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3149,7 +3051,7 @@ uint32_t TI32Column::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TI32Column::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TI32Column");
 
   xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 1);
@@ -3170,7 +3072,6 @@ uint32_t TI32Column::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3189,13 +3090,12 @@ TI32Column& TI32Column::operator=(const TI32Column& other116) {
   nulls = other116.nulls;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TI32Column& obj) {
-  using apache::thrift::to_string;
+void TI32Column::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TI32Column(";
-  out << "values=" << to_string(obj.values);
-  out << ", " << "nulls=" << to_string(obj.nulls);
+  out << "values=" << to_string(values);
+  out << ", " << "nulls=" << to_string(nulls);
   out << ")";
-  return out;
 }
 
 
@@ -3211,11 +3111,9 @@ void TI64Column::__set_nulls(const std::string& val) {
   this->nulls = val;
 }
 
-const char* TI64Column::ascii_fingerprint = "925353917FC0AF87976A2338011F5A31";
-const uint8_t TI64Column::binary_fingerprint[16] = {0x92,0x53,0x53,0x91,0x7F,0xC0,0xAF,0x87,0x97,0x6A,0x23,0x38,0x01,0x1F,0x5A,0x31};
-
 uint32_t TI64Column::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3282,7 +3180,7 @@ uint32_t TI64Column::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TI64Column::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TI64Column");
 
   xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 1);
@@ -3303,7 +3201,6 @@ uint32_t TI64Column::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3322,13 +3219,12 @@ TI64Column& TI64Column::operator=(const TI64Column& other124) {
   nulls = other124.nulls;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TI64Column& obj) {
-  using apache::thrift::to_string;
+void TI64Column::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TI64Column(";
-  out << "values=" << to_string(obj.values);
-  out << ", " << "nulls=" << to_string(obj.nulls);
+  out << "values=" << to_string(values);
+  out << ", " << "nulls=" << to_string(nulls);
   out << ")";
-  return out;
 }
 
 
@@ -3344,11 +3240,9 @@ void TDoubleColumn::__set_nulls(const std::string& val) {
   this->nulls = val;
 }
 
-const char* TDoubleColumn::ascii_fingerprint = "8FF1C050A8D7FD247AEB23CD71539C09";
-const uint8_t TDoubleColumn::binary_fingerprint[16] = {0x8F,0xF1,0xC0,0x50,0xA8,0xD7,0xFD,0x24,0x7A,0xEB,0x23,0xCD,0x71,0x53,0x9C,0x09};
-
 uint32_t TDoubleColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3415,7 +3309,7 @@ uint32_t TDoubleColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TDoubleColumn::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TDoubleColumn");
 
   xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 1);
@@ -3436,7 +3330,6 @@ uint32_t TDoubleColumn::write(::apache::thrift::protocol::TProtocol* oprot) cons
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3455,13 +3348,12 @@ TDoubleColumn& TDoubleColumn::operator=(const TDoubleColumn& other132) {
   nulls = other132.nulls;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TDoubleColumn& obj) {
-  using apache::thrift::to_string;
+void TDoubleColumn::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TDoubleColumn(";
-  out << "values=" << to_string(obj.values);
-  out << ", " << "nulls=" << to_string(obj.nulls);
+  out << "values=" << to_string(values);
+  out << ", " << "nulls=" << to_string(nulls);
   out << ")";
-  return out;
 }
 
 
@@ -3477,11 +3369,9 @@ void TStringColumn::__set_nulls(const std::string& val) {
   this->nulls = val;
 }
 
-const char* TStringColumn::ascii_fingerprint = "BE556BF7091B2DABBA1863D5E458B15F";
-const uint8_t TStringColumn::binary_fingerprint[16] = {0xBE,0x55,0x6B,0xF7,0x09,0x1B,0x2D,0xAB,0xBA,0x18,0x63,0xD5,0xE4,0x58,0xB1,0x5F};
-
 uint32_t TStringColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3548,7 +3438,7 @@ uint32_t TStringColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TStringColumn::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TStringColumn");
 
   xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 1);
@@ -3569,7 +3459,6 @@ uint32_t TStringColumn::write(::apache::thrift::protocol::TProtocol* oprot) cons
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3588,13 +3477,12 @@ TStringColumn& TStringColumn::operator=(const TStringColumn& other140) {
   nulls = other140.nulls;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TStringColumn& obj) {
-  using apache::thrift::to_string;
+void TStringColumn::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TStringColumn(";
-  out << "values=" << to_string(obj.values);
-  out << ", " << "nulls=" << to_string(obj.nulls);
+  out << "values=" << to_string(values);
+  out << ", " << "nulls=" << to_string(nulls);
   out << ")";
-  return out;
 }
 
 
@@ -3610,11 +3498,9 @@ void TBinaryColumn::__set_nulls(const std::string& val) {
   this->nulls = val;
 }
 
-const char* TBinaryColumn::ascii_fingerprint = "BE556BF7091B2DABBA1863D5E458B15F";
-const uint8_t TBinaryColumn::binary_fingerprint[16] = {0xBE,0x55,0x6B,0xF7,0x09,0x1B,0x2D,0xAB,0xBA,0x18,0x63,0xD5,0xE4,0x58,0xB1,0x5F};
-
 uint32_t TBinaryColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3681,7 +3567,7 @@ uint32_t TBinaryColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TBinaryColumn::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TBinaryColumn");
 
   xfer += oprot->writeFieldBegin("values", ::apache::thrift::protocol::T_LIST, 1);
@@ -3702,7 +3588,6 @@ uint32_t TBinaryColumn::write(::apache::thrift::protocol::TProtocol* oprot) cons
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3721,13 +3606,12 @@ TBinaryColumn& TBinaryColumn::operator=(const TBinaryColumn& other148) {
   nulls = other148.nulls;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TBinaryColumn& obj) {
-  using apache::thrift::to_string;
+void TBinaryColumn::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TBinaryColumn(";
-  out << "values=" << to_string(obj.values);
-  out << ", " << "nulls=" << to_string(obj.nulls);
+  out << "values=" << to_string(values);
+  out << ", " << "nulls=" << to_string(nulls);
   out << ")";
-  return out;
 }
 
 
@@ -3767,11 +3651,9 @@ void TColumn::__set_binaryVal(const TBinaryColumn& val) {
   this->binaryVal = val;
 }
 
-const char* TColumn::ascii_fingerprint = "E6ADD10B4CDDE61A19E8878CC7039A17";
-const uint8_t TColumn::binary_fingerprint[16] = {0xE6,0xAD,0xD1,0x0B,0x4C,0xDD,0xE6,0x1A,0x19,0xE8,0x87,0x8C,0xC7,0x03,0x9A,0x17};
-
 uint32_t TColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -3868,7 +3750,7 @@ uint32_t TColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TColumn::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TColumn");
 
   xfer += oprot->writeFieldBegin("boolVal", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -3905,7 +3787,6 @@ uint32_t TColumn::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -3945,19 +3826,18 @@ TColumn& TColumn::operator=(const TColumn& other150) {
   __isset = other150.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TColumn& obj) {
-  using apache::thrift::to_string;
+void TColumn::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TColumn(";
-  out << "boolVal=" << to_string(obj.boolVal);
-  out << ", " << "byteVal=" << to_string(obj.byteVal);
-  out << ", " << "i16Val=" << to_string(obj.i16Val);
-  out << ", " << "i32Val=" << to_string(obj.i32Val);
-  out << ", " << "i64Val=" << to_string(obj.i64Val);
-  out << ", " << "doubleVal=" << to_string(obj.doubleVal);
-  out << ", " << "stringVal=" << to_string(obj.stringVal);
-  out << ", " << "binaryVal=" << to_string(obj.binaryVal);
+  out << "boolVal=" << to_string(boolVal);
+  out << ", " << "byteVal=" << to_string(byteVal);
+  out << ", " << "i16Val=" << to_string(i16Val);
+  out << ", " << "i32Val=" << to_string(i32Val);
+  out << ", " << "i64Val=" << to_string(i64Val);
+  out << ", " << "doubleVal=" << to_string(doubleVal);
+  out << ", " << "stringVal=" << to_string(stringVal);
+  out << ", " << "binaryVal=" << to_string(binaryVal);
   out << ")";
-  return out;
 }
 
 
@@ -3978,11 +3858,9 @@ void TRowSet::__set_columns(const std::vector<TColumn> & val) {
 __isset.columns = true;
 }
 
-const char* TRowSet::ascii_fingerprint = "46DA30A870489C7A58105AE0080DAEBF";
-const uint8_t TRowSet::binary_fingerprint[16] = {0x46,0xDA,0x30,0xA8,0x70,0x48,0x9C,0x7A,0x58,0x10,0x5A,0xE0,0x08,0x0D,0xAE,0xBF};
-
 uint32_t TRowSet::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4069,7 +3947,7 @@ uint32_t TRowSet::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TRowSet::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TRowSet");
 
   xfer += oprot->writeFieldBegin("startRowOffset", ::apache::thrift::protocol::T_I64, 1);
@@ -4103,7 +3981,6 @@ uint32_t TRowSet::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4128,14 +4005,13 @@ TRowSet& TRowSet::operator=(const TRowSet& other164) {
   __isset = other164.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TRowSet& obj) {
-  using apache::thrift::to_string;
+void TRowSet::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TRowSet(";
-  out << "startRowOffset=" << to_string(obj.startRowOffset);
-  out << ", " << "rows=" << to_string(obj.rows);
-  out << ", " << "columns="; (obj.__isset.columns ? (out << to_string(obj.columns)) : (out << "<null>"));
+  out << "startRowOffset=" << to_string(startRowOffset);
+  out << ", " << "rows=" << to_string(rows);
+  out << ", " << "columns="; (__isset.columns ? (out << to_string(columns)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -4167,11 +4043,9 @@ void TStatus::__set_errorMessage(const std::string& val) {
 __isset.errorMessage = true;
 }
 
-const char* TStatus::ascii_fingerprint = "D5DEF49634A59C615C1B3A6F7D0DADB5";
-const uint8_t TStatus::binary_fingerprint[16] = {0xD5,0xDE,0xF4,0x96,0x34,0xA5,0x9C,0x61,0x5C,0x1B,0x3A,0x6F,0x7D,0x0D,0xAD,0xB5};
-
 uint32_t TStatus::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4261,7 +4135,7 @@ uint32_t TStatus::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TStatus::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TStatus");
 
   xfer += oprot->writeFieldBegin("statusCode", ::apache::thrift::protocol::T_I32, 1);
@@ -4298,7 +4172,6 @@ uint32_t TStatus::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4329,16 +4202,15 @@ TStatus& TStatus::operator=(const TStatus& other173) {
   __isset = other173.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TStatus& obj) {
-  using apache::thrift::to_string;
+void TStatus::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TStatus(";
-  out << "statusCode=" << to_string(obj.statusCode);
-  out << ", " << "infoMessages="; (obj.__isset.infoMessages ? (out << to_string(obj.infoMessages)) : (out << "<null>"));
-  out << ", " << "sqlState="; (obj.__isset.sqlState ? (out << to_string(obj.sqlState)) : (out << "<null>"));
-  out << ", " << "errorCode="; (obj.__isset.errorCode ? (out << to_string(obj.errorCode)) : (out << "<null>"));
-  out << ", " << "errorMessage="; (obj.__isset.errorMessage ? (out << to_string(obj.errorMessage)) : (out << "<null>"));
+  out << "statusCode=" << to_string(statusCode);
+  out << ", " << "infoMessages="; (__isset.infoMessages ? (out << to_string(infoMessages)) : (out << "<null>"));
+  out << ", " << "sqlState="; (__isset.sqlState ? (out << to_string(sqlState)) : (out << "<null>"));
+  out << ", " << "errorCode="; (__isset.errorCode ? (out << to_string(errorCode)) : (out << "<null>"));
+  out << ", " << "errorMessage="; (__isset.errorMessage ? (out << to_string(errorMessage)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -4354,11 +4226,9 @@ void THandleIdentifier::__set_secret(const std::string& val) {
   this->secret = val;
 }
 
-const char* THandleIdentifier::ascii_fingerprint = "07A9615F837F7D0A952B595DD3020972";
-const uint8_t THandleIdentifier::binary_fingerprint[16] = {0x07,0xA9,0x61,0x5F,0x83,0x7F,0x7D,0x0A,0x95,0x2B,0x59,0x5D,0xD3,0x02,0x09,0x72};
-
 uint32_t THandleIdentifier::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4413,7 +4283,7 @@ uint32_t THandleIdentifier::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t THandleIdentifier::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("THandleIdentifier");
 
   xfer += oprot->writeFieldBegin("guid", ::apache::thrift::protocol::T_STRING, 1);
@@ -4426,7 +4296,6 @@ uint32_t THandleIdentifier::write(::apache::thrift::protocol::TProtocol* oprot)
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4445,13 +4314,12 @@ THandleIdentifier& THandleIdentifier::operator=(const THandleIdentifier& other17
   secret = other175.secret;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const THandleIdentifier& obj) {
-  using apache::thrift::to_string;
+void THandleIdentifier::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "THandleIdentifier(";
-  out << "guid=" << to_string(obj.guid);
-  out << ", " << "secret=" << to_string(obj.secret);
+  out << "guid=" << to_string(guid);
+  out << ", " << "secret=" << to_string(secret);
   out << ")";
-  return out;
 }
 
 
@@ -4463,11 +4331,9 @@ void TSessionHandle::__set_sessionId(const THandleIdentifier& val) {
   this->sessionId = val;
 }
 
-const char* TSessionHandle::ascii_fingerprint = "A756D3DBE614FB13F70BF7F7B6EB3D73";
-const uint8_t TSessionHandle::binary_fingerprint[16] = {0xA7,0x56,0xD3,0xDB,0xE6,0x14,0xFB,0x13,0xF7,0x0B,0xF7,0xF7,0xB6,0xEB,0x3D,0x73};
-
 uint32_t TSessionHandle::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4511,7 +4377,7 @@ uint32_t TSessionHandle::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TSessionHandle::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TSessionHandle");
 
   xfer += oprot->writeFieldBegin("sessionId", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -4520,7 +4386,6 @@ uint32_t TSessionHandle::write(::apache::thrift::protocol::TProtocol* oprot) con
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4536,12 +4401,11 @@ TSessionHandle& TSessionHandle::operator=(const TSessionHandle& other177) {
   sessionId = other177.sessionId;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TSessionHandle& obj) {
-  using apache::thrift::to_string;
+void TSessionHandle::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TSessionHandle(";
-  out << "sessionId=" << to_string(obj.sessionId);
+  out << "sessionId=" << to_string(sessionId);
   out << ")";
-  return out;
 }
 
 
@@ -4566,11 +4430,9 @@ void TOperationHandle::__set_modifiedRowCount(const double val) {
 __isset.modifiedRowCount = true;
 }
 
-const char* TOperationHandle::ascii_fingerprint = "29FD80F4F96804A30FCC59C23D2E5349";
-const uint8_t TOperationHandle::binary_fingerprint[16] = {0x29,0xFD,0x80,0xF4,0xF9,0x68,0x04,0xA3,0x0F,0xCC,0x59,0xC2,0x3D,0x2E,0x53,0x49};
-
 uint32_t TOperationHandle::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4646,7 +4508,7 @@ uint32_t TOperationHandle::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TOperationHandle::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TOperationHandle");
 
   xfer += oprot->writeFieldBegin("operationId", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -4668,7 +4530,6 @@ uint32_t TOperationHandle::write(::apache::thrift::protocol::TProtocol* oprot) c
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4696,15 +4557,14 @@ TOperationHandle& TOperationHandle::operator=(const TOperationHandle& other180)
   __isset = other180.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TOperationHandle& obj) {
-  using apache::thrift::to_string;
+void TOperationHandle::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TOperationHandle(";
-  out << "operationId=" << to_string(obj.operationId);
-  out << ", " << "operationType=" << to_string(obj.operationType);
-  out << ", " << "hasResultSet=" << to_string(obj.hasResultSet);
-  out << ", " << "modifiedRowCount="; (obj.__isset.modifiedRowCount ? (out << to_string(obj.modifiedRowCount)) : (out << "<null>"));
+  out << "operationId=" << to_string(operationId);
+  out << ", " << "operationType=" << to_string(operationType);
+  out << ", " << "hasResultSet=" << to_string(hasResultSet);
+  out << ", " << "modifiedRowCount="; (__isset.modifiedRowCount ? (out << to_string(modifiedRowCount)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -4731,11 +4591,9 @@ void TOpenSessionReq::__set_configuration(const std::map<std::string, std::strin
 __isset.configuration = true;
 }
 
-const char* TOpenSessionReq::ascii_fingerprint = "C8FD0F306A16C16BDA7B57F58BFAE5B2";
-const uint8_t TOpenSessionReq::binary_fingerprint[16] = {0xC8,0xFD,0x0F,0x30,0x6A,0x16,0xC1,0x6B,0xDA,0x7B,0x57,0xF5,0x8B,0xFA,0xE5,0xB2};
-
 uint32_t TOpenSessionReq::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -4820,7 +4678,7 @@ uint32_t TOpenSessionReq::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TOpenSessionReq::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TOpenSessionReq");
 
   xfer += oprot->writeFieldBegin("client_protocol", ::apache::thrift::protocol::T_I32, 1);
@@ -4853,7 +4711,6 @@ uint32_t TOpenSessionReq::write(::apache::thrift::protocol::TProtocol* oprot) co
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -4881,15 +4738,14 @@ TOpenSessionReq& TOpenSessionReq::operator=(const TOpenSessionReq& other191) {
   __isset = other191.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TOpenSessionReq& obj) {
-  using apache::thrift::to_string;
+void TOpenSessionReq::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TOpenSessionReq(";
-  out << "client_protocol=" << to_string(obj.client_protocol);
-  out << ", " << "username="; (obj.__isset.username ? (out << to_string(obj.username)) : (out << "<null>"));
-  out << ", " << "password="; (obj.__isset.password ? (out << to_string(obj.password)) : (out << "<null>"));
-  out << ", " << "configuration="; (obj.__isset.configuration ? (out << to_string(obj.configuration)) : (out << "<null>"));
+  out << "client_protocol=" << to_string(client_protocol);
+  out << ", " << "username="; (__isset.username ? (out << to_string(username)) : (out << "<null>"));
+  out << ", " << "password="; (__isset.password ? (out << to_string(password)) : (out << "<null>"));
+  out << ", " << "configuration="; (__isset.configuration ? (out << to_string(configuration)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -4915,11 +4771,9 @@ void TOpenSessionResp::__set_configuration(const std::map<std::string, std::stri
 __isset.configuration = true;
 }
 
-const char* TOpenSessionResp::ascii_fingerprint = "CFE7D7F4E9EC671F2518ED74FEE9F163";
-const uint8_t TOpenSessionResp::binary_fingerprint[16] = {0xCF,0xE7,0xD7,0xF4,0xE9,0xEC,0x67,0x1F,0x25,0x18,0xED,0x74,0xFE,0xE9,0xF1,0x63};
-
 uint32_t TOpenSessionResp::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5007,7 +4861,7 @@ uint32_t TOpenSessionResp::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TOpenSessionResp::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TOpenSessionResp");
 
   xfer += oprot->writeFieldBegin("status", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -5039,7 +4893,6 @@ uint32_t TOpenSessionResp::write(::apache::thrift::protocol::TProtocol* oprot) c
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5067,15 +4920,14 @@ TOpenSessionResp& TOpenSessionResp::operator=(const TOpenSessionResp& other202)
   __isset = other202.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TOpenSessionResp& obj) {
-  using apache::thrift::to_string;
+void TOpenSessionResp::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TOpenSessionResp(";
-  out << "status=" << to_string(obj.status);
-  out << ", " << "serverProtocolVersion=" << to_string(obj.serverProtocolVersion);
-  out << ", " << "sessionHandle="; (obj.__isset.sessionHandle ? (out << to_string(obj.sessionHandle)) : (out << "<null>"));
-  out << ", " << "configuration="; (obj.__isset.configuration ? (out << to_string(obj.configuration)) : (out << "<null>"));
+  out << "status=" << to_string(status);
+  out << ", " << "serverProtocolVersion=" << to_string(serverProtocolVersion);
+  out << ", " << "sessionHandle="; (__isset.sessionHandle ? (out << to_string(sessionHandle)) : (out << "<null>"));
+  out << ", " << "configuration="; (__isset.configuration ? (out << to_string(configuration)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -5087,11 +4939,9 @@ void TCloseSessionReq::__set_sessionHandle(const TSessionHandle& val) {
   this->sessionHandle = val;
 }
 
-const char* TCloseSessionReq::ascii_fingerprint = "82377107F8BD0526960537D5A112E6EF";
-const uint8_t TCloseSessionReq::binary_fingerprint[16] = {0x82,0x37,0x71,0x07,0xF8,0xBD,0x05,0x26,0x96,0x05,0x37,0xD5,0xA1,0x12,0xE6,0xEF};
-
 uint32_t TCloseSessionReq::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5135,7 +4985,7 @@ uint32_t TCloseSessionReq::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TCloseSessionReq::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TCloseSessionReq");
 
   xfer += oprot->writeFieldBegin("sessionHandle", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -5144,7 +4994,6 @@ uint32_t TCloseSessionReq::write(::apache::thrift::protocol::TProtocol* oprot) c
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5160,12 +5009,11 @@ TCloseSessionReq& TCloseSessionReq::operator=(const TCloseSessionReq& other204)
   sessionHandle = other204.sessionHandle;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TCloseSessionReq& obj) {
-  using apache::thrift::to_string;
+void TCloseSessionReq::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TCloseSessionReq(";
-  out << "sessionHandle=" << to_string(obj.sessionHandle);
+  out << "sessionHandle=" << to_string(sessionHandle);
   out << ")";
-  return out;
 }
 
 
@@ -5177,11 +5025,9 @@ void TCloseSessionResp::__set_status(const TStatus& val) {
   this->status = val;
 }
 
-const char* TCloseSessionResp::ascii_fingerprint = "7142E89F09DC7C5F6FA916C7393F46C2";
-const uint8_t TCloseSessionResp::binary_fingerprint[16] = {0x71,0x42,0xE8,0x9F,0x09,0xDC,0x7C,0x5F,0x6F,0xA9,0x16,0xC7,0x39,0x3F,0x46,0xC2};
-
 uint32_t TCloseSessionResp::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5225,7 +5071,7 @@ uint32_t TCloseSessionResp::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TCloseSessionResp::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TCloseSessionResp");
 
   xfer += oprot->writeFieldBegin("status", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -5234,7 +5080,6 @@ uint32_t TCloseSessionResp::write(::apache::thrift::protocol::TProtocol* oprot)
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5250,12 +5095,11 @@ TCloseSessionResp& TCloseSessionResp::operator=(const TCloseSessionResp& other20
   status = other206.status;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TCloseSessionResp& obj) {
-  using apache::thrift::to_string;
+void TCloseSessionResp::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TCloseSessionResp(";
-  out << "status=" << to_string(obj.status);
+  out << "status=" << to_string(status);
   out << ")";
-  return out;
 }
 
 
@@ -5287,11 +5131,9 @@ void TGetInfoValue::__set_lenValue(const int64_t val) {
   this->lenValue = val;
 }
 
-const char* TGetInfoValue::ascii_fingerprint = "057FED11279FD7248CFE73EE82ED579E";
-const uint8_t TGetInfoValue::binary_fingerprint[16] = {0x05,0x7F,0xED,0x11,0x27,0x9F,0xD7,0x24,0x8C,0xFE,0x73,0xEE,0x82,0xED,0x57,0x9E};
-
 uint32_t TGetInfoValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5372,7 +5214,7 @@ uint32_t TGetInfoValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TGetInfoValue::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TGetInfoValue");
 
   xfer += oprot->writeFieldBegin("stringValue", ::apache::thrift::protocol::T_STRING, 1);
@@ -5401,7 +5243,6 @@ uint32_t TGetInfoValue::write(::apache::thrift::protocol::TProtocol* oprot) cons
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5435,17 +5276,16 @@ TGetInfoValue& TGetInfoValue::operator=(const TGetInfoValue& other208) {
   __isset = other208.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TGetInfoValue& obj) {
-  using apache::thrift::to_string;
+void TGetInfoValue::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TGetInfoValue(";
-  out << "stringValue=" << to_string(obj.stringValue);
-  out << ", " << "smallIntValue=" << to_string(obj.smallIntValue);
-  out << ", " << "integerBitmask=" << to_string(obj.integerBitmask);
-  out << ", " << "integerFlag=" << to_string(obj.integerFlag);
-  out << ", " << "binaryValue=" << to_string(obj.binaryValue);
-  out << ", " << "lenValue=" << to_string(obj.lenValue);
+  out << "stringValue=" << to_string(stringValue);
+  out << ", " << "smallIntValue=" << to_string(smallIntValue);
+  out << ", " << "integerBitmask=" << to_string(integerBitmask);
+  out << ", " << "integerFlag=" << to_string(integerFlag);
+  out << ", " << "binaryValue=" << to_string(binaryValue);
+  out << ", " << "lenValue=" << to_string(lenValue);
   out << ")";
-  return out;
 }
 
 
@@ -5461,11 +5301,9 @@ void TGetInfoReq::__set_infoType(const TGetInfoType::type val) {
   this->infoType = val;
 }
 
-const char* TGetInfoReq::ascii_fingerprint = "95675B1A0BADE5F7EDE323809DB679B2";
-const uint8_t TGetInfoReq::binary_fingerprint[16] = {0x95,0x67,0x5B,0x1A,0x0B,0xAD,0xE5,0xF7,0xED,0xE3,0x23,0x80,0x9D,0xB6,0x79,0xB2};
-
 uint32_t TGetInfoReq::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5522,7 +5360,7 @@ uint32_t TGetInfoReq::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TGetInfoReq::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TGetInfoReq");
 
   xfer += oprot->writeFieldBegin("sessionHandle", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -5535,7 +5373,6 @@ uint32_t TGetInfoReq::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5554,13 +5391,12 @@ TGetInfoReq& TGetInfoReq::operator=(const TGetInfoReq& other211) {
   infoType = other211.infoType;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TGetInfoReq& obj) {
-  using apache::thrift::to_string;
+void TGetInfoReq::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TGetInfoReq(";
-  out << "sessionHandle=" << to_string(obj.sessionHandle);
-  out << ", " << "infoType=" << to_string(obj.infoType);
+  out << "sessionHandle=" << to_string(sessionHandle);
+  out << ", " << "infoType=" << to_string(infoType);
   out << ")";
-  return out;
 }
 
 
@@ -5576,11 +5412,9 @@ void TGetInfoResp::__set_infoValue(const TGetInfoValue& val) {
   this->infoValue = val;
 }
 
-const char* TGetInfoResp::ascii_fingerprint = "72AFA10A82728B51FDE91092012868DE";
-const uint8_t TGetInfoResp::binary_fingerprint[16] = {0x72,0xAF,0xA1,0x0A,0x82,0x72,0x8B,0x51,0xFD,0xE9,0x10,0x92,0x01,0x28,0x68,0xDE};
-
 uint32_t TGetInfoResp::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5635,7 +5469,7 @@ uint32_t TGetInfoResp::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TGetInfoResp::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TGetInfoResp");
 
   xfer += oprot->writeFieldBegin("status", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -5648,7 +5482,6 @@ uint32_t TGetInfoResp::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5667,13 +5500,12 @@ TGetInfoResp& TGetInfoResp::operator=(const TGetInfoResp& other213) {
   infoValue = other213.infoValue;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TGetInfoResp& obj) {
-  using apache::thrift::to_string;
+void TGetInfoResp::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TGetInfoResp(";
-  out << "status=" << to_string(obj.status);
-  out << ", " << "infoValue=" << to_string(obj.infoValue);
+  out << "status=" << to_string(status);
+  out << ", " << "infoValue=" << to_string(infoValue);
   out << ")";
-  return out;
 }
 
 
@@ -5699,11 +5531,9 @@ void TExecuteStatementReq::__set_runAsync(const bool val) {
 __isset.runAsync = true;
 }
 
-const char* TExecuteStatementReq::ascii_fingerprint = "FED75DB77E66D76EC1939A51FB0D96FA";
-const uint8_t TExecuteStatementReq::binary_fingerprint[16] = {0xFE,0xD7,0x5D,0xB7,0x7E,0x66,0xD7,0x6E,0xC1,0x93,0x9A,0x51,0xFB,0x0D,0x96,0xFA};
-
 uint32_t TExecuteStatementReq::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5789,7 +5619,7 @@ uint32_t TExecuteStatementReq::read(::apache::thrift::protocol::TProtocol* iprot
 
 uint32_t TExecuteStatementReq::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TExecuteStatementReq");
 
   xfer += oprot->writeFieldBegin("sessionHandle", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -5821,7 +5651,6 @@ uint32_t TExecuteStatementReq::write(::apache::thrift::protocol::TProtocol* opro
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5849,15 +5678,14 @@ TExecuteStatementReq& TExecuteStatementReq::operator=(const TExecuteStatementReq
   __isset = other223.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TExecuteStatementReq& obj) {
-  using apache::thrift::to_string;
+void TExecuteStatementReq::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TExecuteStatementReq(";
-  out << "sessionHandle=" << to_string(obj.sessionHandle);
-  out << ", " << "statement=" << to_string(obj.statement);
-  out << ", " << "confOverlay="; (obj.__isset.confOverlay ? (out << to_string(obj.confOverlay)) : (out << "<null>"));
-  out << ", " << "runAsync="; (obj.__isset.runAsync ? (out << to_string(obj.runAsync)) : (out << "<null>"));
+  out << "sessionHandle=" << to_string(sessionHandle);
+  out << ", " << "statement=" << to_string(statement);
+  out << ", " << "confOverlay="; (__isset.confOverlay ? (out << to_string(confOverlay)) : (out << "<null>"));
+  out << ", " << "runAsync="; (__isset.runAsync ? (out << to_string(runAsync)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -5874,11 +5702,9 @@ void TExecuteStatementResp::__set_operationHandle(const TOperationHandle& val) {
 __isset.operationHandle = true;
 }
 
-const char* TExecuteStatementResp::ascii_fingerprint = "02A075A0FF88D3A172916D8F23C7B286";
-const uint8_t TExecuteStatementResp::binary_fingerprint[16] = {0x02,0xA0,0x75,0xA0,0xFF,0x88,0xD3,0xA1,0x72,0x91,0x6D,0x8F,0x23,0xC7,0xB2,0x86};
-
 uint32_t TExecuteStatementResp::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -5930,7 +5756,7 @@ uint32_t TExecuteStatementResp::read(::apache::thrift::protocol::TProtocol* ipro
 
 uint32_t TExecuteStatementResp::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TExecuteStatementResp");
 
   xfer += oprot->writeFieldBegin("status", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -5944,7 +5770,6 @@ uint32_t TExecuteStatementResp::write(::apache::thrift::protocol::TProtocol* opr
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -5966,13 +5791,12 @@ TExecuteStatementResp& TExecuteStatementResp::operator=(const TExecuteStatementR
   __isset = other225.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TExecuteStatementResp& obj) {
-  using apache::thrift::to_string;
+void TExecuteStatementResp::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "TExecuteStatementResp(";
-  out << "status=" << to_string(obj.status);
-  out << ", " << "operationHandle="; (obj.__isset.operationHandle ? (out << to_string(obj.operationHandle)) : (out << "<null>"));
+  out << "status=" << to_string(status);
+  out << ", " << "operationHandle="; (__isset.operationHandle ? (out << to_string(operationHandle)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -5984,11 +5808,9 @@ void TGetTypeInfoReq::__set_sessionHandle(const TSessionHandle& val) {
   this->sessionHandle = val;
 }
 
-const char* TGetTypeInfoReq::ascii_fingerprint = "82377107F8BD0526960537D5A112E6EF";
-const uint8_t TGetTypeInfoReq::binary_fingerprint[16] = {0x82,0x37,0x71,0x07,0xF8,0xBD,0x05,0x26,0x96,0x05,0x37,0xD5,0xA1,0x12,0xE6,0xEF};
-
 uint32_t TGetTypeInfoReq::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -6032,7 +5854,7 @@ uint32_t TGetTypeInfoReq::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t TGetTypeInfoReq::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("TGetTypeInfoReq");
 
   xfer += oprot->writeFieldBegin("sessionHandle", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -6041,7 +5863,6 @@ uint32_t TGetTypeInfoReq::write(::apache::thrift::protocol::TProtocol* oprot) co
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -6057,12 +5878,11 @@ TGetTypeInfoReq& TGetTypeInfoReq::operator=(const TGetTypeInfoReq& other227) {
   sessionHandle = other227.sessionHandle;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const TGetTypeInfoReq& obj) {
-  using apache::thrift::to_str

<TRUNCATED>