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:11:03 UTC

[10/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/ql/src/gen/thrift/gen-cpp/queryplan_types.cpp
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-cpp/queryplan_types.cpp b/ql/src/gen/thrift/gen-cpp/queryplan_types.cpp
index a1fb60b..e92d776 100644
--- a/ql/src/gen/thrift/gen-cpp/queryplan_types.cpp
+++ b/ql/src/gen/thrift/gen-cpp/queryplan_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
@@ -150,11 +150,9 @@ void Adjacency::__set_adjacencyType(const AdjacencyType::type val) {
   this->adjacencyType = val;
 }
 
-const char* Adjacency::ascii_fingerprint = "BC4F8C394677A1003AA9F56ED26D8204";
-const uint8_t Adjacency::binary_fingerprint[16] = {0xBC,0x4F,0x8C,0x39,0x46,0x77,0xA1,0x00,0x3A,0xA9,0xF5,0x6E,0xD2,0x6D,0x82,0x04};
-
 uint32_t Adjacency::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -225,7 +223,7 @@ uint32_t Adjacency::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Adjacency::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("Adjacency");
 
   xfer += oprot->writeFieldBegin("node", ::apache::thrift::protocol::T_STRING, 1);
@@ -250,7 +248,6 @@ uint32_t Adjacency::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -275,14 +272,13 @@ Adjacency& Adjacency::operator=(const Adjacency& other8) {
   __isset = other8.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const Adjacency& obj) {
-  using apache::thrift::to_string;
+void Adjacency::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "Adjacency(";
-  out << "node=" << to_string(obj.node);
-  out << ", " << "children=" << to_string(obj.children);
-  out << ", " << "adjacencyType=" << to_string(obj.adjacencyType);
+  out << "node=" << to_string(node);
+  out << ", " << "children=" << to_string(children);
+  out << ", " << "adjacencyType=" << to_string(adjacencyType);
   out << ")";
-  return out;
 }
 
 
@@ -302,11 +298,9 @@ void Graph::__set_adjacencyList(const std::vector<Adjacency> & val) {
   this->adjacencyList = val;
 }
 
-const char* Graph::ascii_fingerprint = "1F7FB604B3EF8F7AFB5DEAD15F2FC0B5";
-const uint8_t Graph::binary_fingerprint[16] = {0x1F,0x7F,0xB6,0x04,0xB3,0xEF,0x8F,0x7A,0xFB,0x5D,0xEA,0xD1,0x5F,0x2F,0xC0,0xB5};
-
 uint32_t Graph::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -389,7 +383,7 @@ uint32_t Graph::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Graph::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("Graph");
 
   xfer += oprot->writeFieldBegin("nodeType", ::apache::thrift::protocol::T_I32, 1);
@@ -422,7 +416,6 @@ uint32_t Graph::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -447,14 +440,13 @@ Graph& Graph::operator=(const Graph& other23) {
   __isset = other23.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const Graph& obj) {
-  using apache::thrift::to_string;
+void Graph::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "Graph(";
-  out << "nodeType=" << to_string(obj.nodeType);
-  out << ", " << "roots=" << to_string(obj.roots);
-  out << ", " << "adjacencyList=" << to_string(obj.adjacencyList);
+  out << "nodeType=" << to_string(nodeType);
+  out << ", " << "roots=" << to_string(roots);
+  out << ", " << "adjacencyList=" << to_string(adjacencyList);
   out << ")";
-  return out;
 }
 
 
@@ -486,11 +478,9 @@ void Operator::__set_started(const bool val) {
   this->started = val;
 }
 
-const char* Operator::ascii_fingerprint = "30917C758A752485AF223B697479DE6C";
-const uint8_t Operator::binary_fingerprint[16] = {0x30,0x91,0x7C,0x75,0x8A,0x75,0x24,0x85,0xAF,0x22,0x3B,0x69,0x74,0x79,0xDE,0x6C};
-
 uint32_t Operator::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -603,7 +593,7 @@ uint32_t Operator::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Operator::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("Operator");
 
   xfer += oprot->writeFieldBegin("operatorId", ::apache::thrift::protocol::T_STRING, 1);
@@ -650,7 +640,6 @@ uint32_t Operator::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -684,17 +673,16 @@ Operator& Operator::operator=(const Operator& other42) {
   __isset = other42.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const Operator& obj) {
-  using apache::thrift::to_string;
+void Operator::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "Operator(";
-  out << "operatorId=" << to_string(obj.operatorId);
-  out << ", " << "operatorType=" << to_string(obj.operatorType);
-  out << ", " << "operatorAttributes=" << to_string(obj.operatorAttributes);
-  out << ", " << "operatorCounters=" << to_string(obj.operatorCounters);
-  out << ", " << "done=" << to_string(obj.done);
-  out << ", " << "started=" << to_string(obj.started);
+  out << "operatorId=" << to_string(operatorId);
+  out << ", " << "operatorType=" << to_string(operatorType);
+  out << ", " << "operatorAttributes=" << to_string(operatorAttributes);
+  out << ", " << "operatorCounters=" << to_string(operatorCounters);
+  out << ", " << "done=" << to_string(done);
+  out << ", " << "started=" << to_string(started);
   out << ")";
-  return out;
 }
 
 
@@ -736,11 +724,9 @@ void Task::__set_started(const bool val) {
   this->started = val;
 }
 
-const char* Task::ascii_fingerprint = "AC741A136EFA51843AFC3A12F6A793D1";
-const uint8_t Task::binary_fingerprint[16] = {0xAC,0x74,0x1A,0x13,0x6E,0xFA,0x51,0x84,0x3A,0xFC,0x3A,0x12,0xF6,0xA7,0x93,0xD1};
-
 uint32_t Task::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -881,7 +867,7 @@ uint32_t Task::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Task::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("Task");
 
   xfer += oprot->writeFieldBegin("taskId", ::apache::thrift::protocol::T_STRING, 1);
@@ -946,7 +932,6 @@ uint32_t Task::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -986,19 +971,18 @@ Task& Task::operator=(const Task& other67) {
   __isset = other67.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const Task& obj) {
-  using apache::thrift::to_string;
+void Task::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "Task(";
-  out << "taskId=" << to_string(obj.taskId);
-  out << ", " << "taskType=" << to_string(obj.taskType);
-  out << ", " << "taskAttributes=" << to_string(obj.taskAttributes);
-  out << ", " << "taskCounters=" << to_string(obj.taskCounters);
-  out << ", " << "operatorGraph="; (obj.__isset.operatorGraph ? (out << to_string(obj.operatorGraph)) : (out << "<null>"));
-  out << ", " << "operatorList="; (obj.__isset.operatorList ? (out << to_string(obj.operatorList)) : (out << "<null>"));
-  out << ", " << "done=" << to_string(obj.done);
-  out << ", " << "started=" << to_string(obj.started);
+  out << "taskId=" << to_string(taskId);
+  out << ", " << "taskType=" << to_string(taskType);
+  out << ", " << "taskAttributes=" << to_string(taskAttributes);
+  out << ", " << "taskCounters=" << to_string(taskCounters);
+  out << ", " << "operatorGraph="; (__isset.operatorGraph ? (out << to_string(operatorGraph)) : (out << "<null>"));
+  out << ", " << "operatorList="; (__isset.operatorList ? (out << to_string(operatorList)) : (out << "<null>"));
+  out << ", " << "done=" << to_string(done);
+  out << ", " << "started=" << to_string(started);
   out << ")";
-  return out;
 }
 
 
@@ -1034,11 +1018,9 @@ void Stage::__set_started(const bool val) {
   this->started = val;
 }
 
-const char* Stage::ascii_fingerprint = "86EA3C7B0690AFED21A3D479E2B32378";
-const uint8_t Stage::binary_fingerprint[16] = {0x86,0xEA,0x3C,0x7B,0x06,0x90,0xAF,0xED,0x21,0xA3,0xD4,0x79,0xE2,0xB3,0x23,0x78};
-
 uint32_t Stage::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1171,7 +1153,7 @@ uint32_t Stage::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Stage::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("Stage");
 
   xfer += oprot->writeFieldBegin("stageId", ::apache::thrift::protocol::T_STRING, 1);
@@ -1230,7 +1212,6 @@ uint32_t Stage::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1267,18 +1248,17 @@ Stage& Stage::operator=(const Stage& other92) {
   __isset = other92.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const Stage& obj) {
-  using apache::thrift::to_string;
+void Stage::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "Stage(";
-  out << "stageId=" << to_string(obj.stageId);
-  out << ", " << "stageType=" << to_string(obj.stageType);
-  out << ", " << "stageAttributes=" << to_string(obj.stageAttributes);
-  out << ", " << "stageCounters=" << to_string(obj.stageCounters);
-  out << ", " << "taskList=" << to_string(obj.taskList);
-  out << ", " << "done=" << to_string(obj.done);
-  out << ", " << "started=" << to_string(obj.started);
+  out << "stageId=" << to_string(stageId);
+  out << ", " << "stageType=" << to_string(stageType);
+  out << ", " << "stageAttributes=" << to_string(stageAttributes);
+  out << ", " << "stageCounters=" << to_string(stageCounters);
+  out << ", " << "taskList=" << to_string(taskList);
+  out << ", " << "done=" << to_string(done);
+  out << ", " << "started=" << to_string(started);
   out << ")";
-  return out;
 }
 
 
@@ -1318,11 +1298,9 @@ void Query::__set_started(const bool val) {
   this->started = val;
 }
 
-const char* Query::ascii_fingerprint = "68300D63A5D40F2D17B9A9440FF626C1";
-const uint8_t Query::binary_fingerprint[16] = {0x68,0x30,0x0D,0x63,0xA5,0xD4,0x0F,0x2D,0x17,0xB9,0xA9,0x44,0x0F,0xF6,0x26,0xC1};
-
 uint32_t Query::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1461,7 +1439,7 @@ uint32_t Query::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Query::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("Query");
 
   xfer += oprot->writeFieldBegin("queryId", ::apache::thrift::protocol::T_STRING, 1);
@@ -1524,7 +1502,6 @@ uint32_t Query::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1564,19 +1541,18 @@ Query& Query::operator=(const Query& other116) {
   __isset = other116.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const Query& obj) {
-  using apache::thrift::to_string;
+void Query::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "Query(";
-  out << "queryId=" << to_string(obj.queryId);
-  out << ", " << "queryType=" << to_string(obj.queryType);
-  out << ", " << "queryAttributes=" << to_string(obj.queryAttributes);
-  out << ", " << "queryCounters=" << to_string(obj.queryCounters);
-  out << ", " << "stageGraph=" << to_string(obj.stageGraph);
-  out << ", " << "stageList=" << to_string(obj.stageList);
-  out << ", " << "done=" << to_string(obj.done);
-  out << ", " << "started=" << to_string(obj.started);
+  out << "queryId=" << to_string(queryId);
+  out << ", " << "queryType=" << to_string(queryType);
+  out << ", " << "queryAttributes=" << to_string(queryAttributes);
+  out << ", " << "queryCounters=" << to_string(queryCounters);
+  out << ", " << "stageGraph=" << to_string(stageGraph);
+  out << ", " << "stageList=" << to_string(stageList);
+  out << ", " << "done=" << to_string(done);
+  out << ", " << "started=" << to_string(started);
   out << ")";
-  return out;
 }
 
 
@@ -1596,11 +1572,9 @@ void QueryPlan::__set_started(const bool val) {
   this->started = val;
 }
 
-const char* QueryPlan::ascii_fingerprint = "3418D1B0C20C288C8406186700B772E3";
-const uint8_t QueryPlan::binary_fingerprint[16] = {0x34,0x18,0xD1,0xB0,0xC2,0x0C,0x28,0x8C,0x84,0x06,0x18,0x67,0x00,0xB7,0x72,0xE3};
-
 uint32_t QueryPlan::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1669,7 +1643,7 @@ uint32_t QueryPlan::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t QueryPlan::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("QueryPlan");
 
   xfer += oprot->writeFieldBegin("queries", ::apache::thrift::protocol::T_LIST, 1);
@@ -1694,7 +1668,6 @@ uint32_t QueryPlan::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -1719,14 +1692,13 @@ QueryPlan& QueryPlan::operator=(const QueryPlan& other124) {
   __isset = other124.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const QueryPlan& obj) {
-  using apache::thrift::to_string;
+void QueryPlan::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "QueryPlan(";
-  out << "queries=" << to_string(obj.queries);
-  out << ", " << "done=" << to_string(obj.done);
-  out << ", " << "started=" << to_string(obj.started);
+  out << "queries=" << to_string(queries);
+  out << ", " << "done=" << to_string(done);
+  out << ", " << "started=" << to_string(started);
   out << ")";
-  return out;
 }
 
 }}} // namespace

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-cpp/queryplan_types.h
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-cpp/queryplan_types.h b/ql/src/gen/thrift/gen-cpp/queryplan_types.h
index 932804d..ce37b2e 100644
--- a/ql/src/gen/thrift/gen-cpp/queryplan_types.h
+++ b/ql/src/gen/thrift/gen-cpp/queryplan_types.h
@@ -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
@@ -123,9 +123,6 @@ typedef struct _Adjacency__isset {
 class Adjacency {
  public:
 
-  static const char* ascii_fingerprint; // = "BC4F8C394677A1003AA9F56ED26D8204";
-  static const uint8_t binary_fingerprint[16]; // = {0xBC,0x4F,0x8C,0x39,0x46,0x77,0xA1,0x00,0x3A,0xA9,0xF5,0x6E,0xD2,0x6D,0x82,0x04};
-
   Adjacency(const Adjacency&);
   Adjacency& operator=(const Adjacency&);
   Adjacency() : node(), adjacencyType((AdjacencyType::type)0) {
@@ -163,11 +160,17 @@ class Adjacency {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Adjacency& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(Adjacency &a, Adjacency &b);
 
+inline std::ostream& operator<<(std::ostream& out, const Adjacency& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _Graph__isset {
   _Graph__isset() : nodeType(false), roots(false), adjacencyList(false) {}
   bool nodeType :1;
@@ -178,9 +181,6 @@ typedef struct _Graph__isset {
 class Graph {
  public:
 
-  static const char* ascii_fingerprint; // = "1F7FB604B3EF8F7AFB5DEAD15F2FC0B5";
-  static const uint8_t binary_fingerprint[16]; // = {0x1F,0x7F,0xB6,0x04,0xB3,0xEF,0x8F,0x7A,0xFB,0x5D,0xEA,0xD1,0x5F,0x2F,0xC0,0xB5};
-
   Graph(const Graph&);
   Graph& operator=(const Graph&);
   Graph() : nodeType((NodeType::type)0) {
@@ -218,11 +218,17 @@ class Graph {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Graph& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(Graph &a, Graph &b);
 
+inline std::ostream& operator<<(std::ostream& out, const Graph& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _Operator__isset {
   _Operator__isset() : operatorId(false), operatorType(false), operatorAttributes(false), operatorCounters(false), done(false), started(false) {}
   bool operatorId :1;
@@ -236,9 +242,6 @@ typedef struct _Operator__isset {
 class Operator {
  public:
 
-  static const char* ascii_fingerprint; // = "30917C758A752485AF223B697479DE6C";
-  static const uint8_t binary_fingerprint[16]; // = {0x30,0x91,0x7C,0x75,0x8A,0x75,0x24,0x85,0xAF,0x22,0x3B,0x69,0x74,0x79,0xDE,0x6C};
-
   Operator(const Operator&);
   Operator& operator=(const Operator&);
   Operator() : operatorId(), operatorType((OperatorType::type)0), done(0), started(0) {
@@ -291,11 +294,17 @@ class Operator {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Operator& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(Operator &a, Operator &b);
 
+inline std::ostream& operator<<(std::ostream& out, const Operator& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _Task__isset {
   _Task__isset() : taskId(false), taskType(false), taskAttributes(false), taskCounters(false), operatorGraph(false), operatorList(false), done(false), started(false) {}
   bool taskId :1;
@@ -311,9 +320,6 @@ typedef struct _Task__isset {
 class Task {
  public:
 
-  static const char* ascii_fingerprint; // = "AC741A136EFA51843AFC3A12F6A793D1";
-  static const uint8_t binary_fingerprint[16]; // = {0xAC,0x74,0x1A,0x13,0x6E,0xFA,0x51,0x84,0x3A,0xFC,0x3A,0x12,0xF6,0xA7,0x93,0xD1};
-
   Task(const Task&);
   Task& operator=(const Task&);
   Task() : taskId(), taskType((TaskType::type)0), done(0), started(0) {
@@ -380,11 +386,17 @@ class Task {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Task& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(Task &a, Task &b);
 
+inline std::ostream& operator<<(std::ostream& out, const Task& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _Stage__isset {
   _Stage__isset() : stageId(false), stageType(false), stageAttributes(false), stageCounters(false), taskList(false), done(false), started(false) {}
   bool stageId :1;
@@ -399,9 +411,6 @@ typedef struct _Stage__isset {
 class Stage {
  public:
 
-  static const char* ascii_fingerprint; // = "86EA3C7B0690AFED21A3D479E2B32378";
-  static const uint8_t binary_fingerprint[16]; // = {0x86,0xEA,0x3C,0x7B,0x06,0x90,0xAF,0xED,0x21,0xA3,0xD4,0x79,0xE2,0xB3,0x23,0x78};
-
   Stage(const Stage&);
   Stage& operator=(const Stage&);
   Stage() : stageId(), stageType((StageType::type)0), done(0), started(0) {
@@ -459,11 +468,17 @@ class Stage {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Stage& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(Stage &a, Stage &b);
 
+inline std::ostream& operator<<(std::ostream& out, const Stage& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _Query__isset {
   _Query__isset() : queryId(false), queryType(false), queryAttributes(false), queryCounters(false), stageGraph(false), stageList(false), done(false), started(false) {}
   bool queryId :1;
@@ -479,9 +494,6 @@ typedef struct _Query__isset {
 class Query {
  public:
 
-  static const char* ascii_fingerprint; // = "68300D63A5D40F2D17B9A9440FF626C1";
-  static const uint8_t binary_fingerprint[16]; // = {0x68,0x30,0x0D,0x63,0xA5,0xD4,0x0F,0x2D,0x17,0xB9,0xA9,0x44,0x0F,0xF6,0x26,0xC1};
-
   Query(const Query&);
   Query& operator=(const Query&);
   Query() : queryId(), queryType(), done(0), started(0) {
@@ -544,11 +556,17 @@ class Query {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Query& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(Query &a, Query &b);
 
+inline std::ostream& operator<<(std::ostream& out, const Query& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _QueryPlan__isset {
   _QueryPlan__isset() : queries(false), done(false), started(false) {}
   bool queries :1;
@@ -559,9 +577,6 @@ typedef struct _QueryPlan__isset {
 class QueryPlan {
  public:
 
-  static const char* ascii_fingerprint; // = "3418D1B0C20C288C8406186700B772E3";
-  static const uint8_t binary_fingerprint[16]; // = {0x34,0x18,0xD1,0xB0,0xC2,0x0C,0x28,0x8C,0x84,0x06,0x18,0x67,0x00,0xB7,0x72,0xE3};
-
   QueryPlan(const QueryPlan&);
   QueryPlan& operator=(const QueryPlan&);
   QueryPlan() : done(0), started(0) {
@@ -599,11 +614,17 @@ class QueryPlan {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const QueryPlan& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(QueryPlan &a, QueryPlan &b);
 
+inline std::ostream& operator<<(std::ostream& out, const QueryPlan& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 }}} // namespace
 
 #endif

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Adjacency.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Adjacency.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Adjacency.java
index 53b70d5..37edf2a 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Adjacency.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Adjacency.java
@@ -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
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-10-21")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Adjacency implements org.apache.thrift.TBase<Adjacency, Adjacency._Fields>, java.io.Serializable, Cloneable, Comparable<Adjacency> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Adjacency");
 

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/AdjacencyType.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/AdjacencyType.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/AdjacencyType.java
index 470cad2..7a716f8 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/AdjacencyType.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/AdjacencyType.java
@@ -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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Graph.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Graph.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Graph.java
index aeadd19..0b454df 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Graph.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Graph.java
@@ -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
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-10-21")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Graph implements org.apache.thrift.TBase<Graph, Graph._Fields>, java.io.Serializable, Cloneable, Comparable<Graph> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Graph");
 

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/NodeType.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/NodeType.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/NodeType.java
index 5fdbfa3..c3ce662 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/NodeType.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/NodeType.java
@@ -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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Operator.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Operator.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Operator.java
index 407bdbe..05dbb2d 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Operator.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Operator.java
@@ -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
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-10-21")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Operator implements org.apache.thrift.TBase<Operator, Operator._Fields>, java.io.Serializable, Cloneable, Comparable<Operator> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Operator");
 
@@ -457,10 +457,10 @@ public class Operator implements org.apache.thrift.TBase<Operator, Operator._Fie
       return getOperatorCounters();
 
     case DONE:
-      return Boolean.valueOf(isDone());
+      return isDone();
 
     case STARTED:
-      return Boolean.valueOf(isStarted());
+      return isStarted();
 
     }
     throw new IllegalStateException();

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/OperatorType.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/OperatorType.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/OperatorType.java
index 1d17dcb..a002348 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/OperatorType.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/OperatorType.java
@@ -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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Query.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Query.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Query.java
index e111cda..de553e1 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Query.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Query.java
@@ -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
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-10-21")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Query implements org.apache.thrift.TBase<Query, Query._Fields>, java.io.Serializable, Cloneable, Comparable<Query> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Query");
 
@@ -559,10 +559,10 @@ public class Query implements org.apache.thrift.TBase<Query, Query._Fields>, jav
       return getStageList();
 
     case DONE:
-      return Boolean.valueOf(isDone());
+      return isDone();
 
     case STARTED:
-      return Boolean.valueOf(isStarted());
+      return isStarted();
 
     }
     throw new IllegalStateException();

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/QueryPlan.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/QueryPlan.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/QueryPlan.java
index 920aac3..0e12279 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/QueryPlan.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/QueryPlan.java
@@ -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
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-10-21")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class QueryPlan implements org.apache.thrift.TBase<QueryPlan, QueryPlan._Fields>, java.io.Serializable, Cloneable, Comparable<QueryPlan> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("QueryPlan");
 
@@ -296,10 +296,10 @@ public class QueryPlan implements org.apache.thrift.TBase<QueryPlan, QueryPlan._
       return getQueries();
 
     case DONE:
-      return Boolean.valueOf(isDone());
+      return isDone();
 
     case STARTED:
-      return Boolean.valueOf(isStarted());
+      return isStarted();
 
     }
     throw new IllegalStateException();

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Stage.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Stage.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Stage.java
index 8a0d537..7f86eeb 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Stage.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Stage.java
@@ -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
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-10-21")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Stage implements org.apache.thrift.TBase<Stage, Stage._Fields>, java.io.Serializable, Cloneable, Comparable<Stage> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Stage");
 
@@ -524,10 +524,10 @@ public class Stage implements org.apache.thrift.TBase<Stage, Stage._Fields>, jav
       return getTaskList();
 
     case DONE:
-      return Boolean.valueOf(isDone());
+      return isDone();
 
     case STARTED:
-      return Boolean.valueOf(isStarted());
+      return isStarted();
 
     }
     throw new IllegalStateException();

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/StageType.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/StageType.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/StageType.java
index c7b0ff7..f20174c 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/StageType.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/StageType.java
@@ -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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Task.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Task.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Task.java
index 720599b..f978e42 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Task.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/Task.java
@@ -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
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-10-21")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Task implements org.apache.thrift.TBase<Task, Task._Fields>, java.io.Serializable, Cloneable, Comparable<Task> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Task");
 
@@ -568,10 +568,10 @@ public class Task implements org.apache.thrift.TBase<Task, Task._Fields>, java.i
       return getOperatorList();
 
     case DONE:
-      return Boolean.valueOf(isDone());
+      return isDone();
 
     case STARTED:
-      return Boolean.valueOf(isStarted());
+      return isStarted();
 
     }
     throw new IllegalStateException();

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/TaskType.java
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/TaskType.java b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/TaskType.java
index 8aad073..d77f008 100644
--- a/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/TaskType.java
+++ b/ql/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/ql/plan/api/TaskType.java
@@ -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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-php/Types.php
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-php/Types.php b/ql/src/gen/thrift/gen-php/Types.php
index 3dfff1d..e1693f3 100644
--- a/ql/src/gen/thrift/gen-php/Types.php
+++ b/ql/src/gen/thrift/gen-php/Types.php
@@ -1,8 +1,6 @@
 <?php
-namespace ;
-
 /**
- * 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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-py/queryplan/constants.py
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-py/queryplan/constants.py b/ql/src/gen/thrift/gen-py/queryplan/constants.py
index 99717a9..4a6492b 100644
--- a/ql/src/gen/thrift/gen-py/queryplan/constants.py
+++ b/ql/src/gen/thrift/gen-py/queryplan/constants.py
@@ -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
 #

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-py/queryplan/ttypes.py
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-py/queryplan/ttypes.py b/ql/src/gen/thrift/gen-py/queryplan/ttypes.py
index 6deb850..2073959 100644
--- a/ql/src/gen/thrift/gen-py/queryplan/ttypes.py
+++ b/ql/src/gen/thrift/gen-py/queryplan/ttypes.py
@@ -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
 #
@@ -223,7 +223,7 @@ class Adjacency:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.node = iprot.readString();
+          self.node = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 2:
@@ -231,14 +231,14 @@ class Adjacency:
           self.children = []
           (_etype3, _size0) = iprot.readListBegin()
           for _i4 in xrange(_size0):
-            _elem5 = iprot.readString();
+            _elem5 = iprot.readString()
             self.children.append(_elem5)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I32:
-          self.adjacencyType = iprot.readI32();
+          self.adjacencyType = iprot.readI32()
         else:
           iprot.skip(ftype)
       else:
@@ -322,7 +322,7 @@ class Graph:
         break
       if fid == 1:
         if ftype == TType.I32:
-          self.nodeType = iprot.readI32();
+          self.nodeType = iprot.readI32()
         else:
           iprot.skip(ftype)
       elif fid == 2:
@@ -330,7 +330,7 @@ class Graph:
           self.roots = []
           (_etype10, _size7) = iprot.readListBegin()
           for _i11 in xrange(_size7):
-            _elem12 = iprot.readString();
+            _elem12 = iprot.readString()
             self.roots.append(_elem12)
           iprot.readListEnd()
         else:
@@ -439,12 +439,12 @@ class Operator:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.operatorId = iprot.readString();
+          self.operatorId = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.operatorType = iprot.readI32();
+          self.operatorType = iprot.readI32()
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -452,8 +452,8 @@ class Operator:
           self.operatorAttributes = {}
           (_ktype22, _vtype23, _size21 ) = iprot.readMapBegin()
           for _i25 in xrange(_size21):
-            _key26 = iprot.readString();
-            _val27 = iprot.readString();
+            _key26 = iprot.readString()
+            _val27 = iprot.readString()
             self.operatorAttributes[_key26] = _val27
           iprot.readMapEnd()
         else:
@@ -463,20 +463,20 @@ class Operator:
           self.operatorCounters = {}
           (_ktype29, _vtype30, _size28 ) = iprot.readMapBegin()
           for _i32 in xrange(_size28):
-            _key33 = iprot.readString();
-            _val34 = iprot.readI64();
+            _key33 = iprot.readString()
+            _val34 = iprot.readI64()
             self.operatorCounters[_key33] = _val34
           iprot.readMapEnd()
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.BOOL:
-          self.done = iprot.readBool();
+          self.done = iprot.readBool()
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.BOOL:
-          self.started = iprot.readBool();
+          self.started = iprot.readBool()
         else:
           iprot.skip(ftype)
       else:
@@ -595,12 +595,12 @@ class Task:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.taskId = iprot.readString();
+          self.taskId = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.taskType = iprot.readI32();
+          self.taskType = iprot.readI32()
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -608,8 +608,8 @@ class Task:
           self.taskAttributes = {}
           (_ktype40, _vtype41, _size39 ) = iprot.readMapBegin()
           for _i43 in xrange(_size39):
-            _key44 = iprot.readString();
-            _val45 = iprot.readString();
+            _key44 = iprot.readString()
+            _val45 = iprot.readString()
             self.taskAttributes[_key44] = _val45
           iprot.readMapEnd()
         else:
@@ -619,8 +619,8 @@ class Task:
           self.taskCounters = {}
           (_ktype47, _vtype48, _size46 ) = iprot.readMapBegin()
           for _i50 in xrange(_size46):
-            _key51 = iprot.readString();
-            _val52 = iprot.readI64();
+            _key51 = iprot.readString()
+            _val52 = iprot.readI64()
             self.taskCounters[_key51] = _val52
           iprot.readMapEnd()
         else:
@@ -644,12 +644,12 @@ class Task:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.BOOL:
-          self.done = iprot.readBool();
+          self.done = iprot.readBool()
         else:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.BOOL:
-          self.started = iprot.readBool();
+          self.started = iprot.readBool()
         else:
           iprot.skip(ftype)
       else:
@@ -778,12 +778,12 @@ class Stage:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.stageId = iprot.readString();
+          self.stageId = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.stageType = iprot.readI32();
+          self.stageType = iprot.readI32()
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -791,8 +791,8 @@ class Stage:
           self.stageAttributes = {}
           (_ktype65, _vtype66, _size64 ) = iprot.readMapBegin()
           for _i68 in xrange(_size64):
-            _key69 = iprot.readString();
-            _val70 = iprot.readString();
+            _key69 = iprot.readString()
+            _val70 = iprot.readString()
             self.stageAttributes[_key69] = _val70
           iprot.readMapEnd()
         else:
@@ -802,8 +802,8 @@ class Stage:
           self.stageCounters = {}
           (_ktype72, _vtype73, _size71 ) = iprot.readMapBegin()
           for _i75 in xrange(_size71):
-            _key76 = iprot.readString();
-            _val77 = iprot.readI64();
+            _key76 = iprot.readString()
+            _val77 = iprot.readI64()
             self.stageCounters[_key76] = _val77
           iprot.readMapEnd()
         else:
@@ -821,12 +821,12 @@ class Stage:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.BOOL:
-          self.done = iprot.readBool();
+          self.done = iprot.readBool()
         else:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.BOOL:
-          self.started = iprot.readBool();
+          self.started = iprot.readBool()
         else:
           iprot.skip(ftype)
       else:
@@ -953,12 +953,12 @@ class Query:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.queryId = iprot.readString();
+          self.queryId = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.queryType = iprot.readString();
+          self.queryType = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -966,8 +966,8 @@ class Query:
           self.queryAttributes = {}
           (_ktype90, _vtype91, _size89 ) = iprot.readMapBegin()
           for _i93 in xrange(_size89):
-            _key94 = iprot.readString();
-            _val95 = iprot.readString();
+            _key94 = iprot.readString()
+            _val95 = iprot.readString()
             self.queryAttributes[_key94] = _val95
           iprot.readMapEnd()
         else:
@@ -977,8 +977,8 @@ class Query:
           self.queryCounters = {}
           (_ktype97, _vtype98, _size96 ) = iprot.readMapBegin()
           for _i100 in xrange(_size96):
-            _key101 = iprot.readString();
-            _val102 = iprot.readI64();
+            _key101 = iprot.readString()
+            _val102 = iprot.readI64()
             self.queryCounters[_key101] = _val102
           iprot.readMapEnd()
         else:
@@ -1002,12 +1002,12 @@ class Query:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.BOOL:
-          self.done = iprot.readBool();
+          self.done = iprot.readBool()
         else:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.BOOL:
-          self.started = iprot.readBool();
+          self.started = iprot.readBool()
         else:
           iprot.skip(ftype)
       else:
@@ -1135,12 +1135,12 @@ class QueryPlan:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.BOOL:
-          self.done = iprot.readBool();
+          self.done = iprot.readBool()
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.BOOL:
-          self.started = iprot.readBool();
+          self.started = iprot.readBool()
         else:
           iprot.skip(ftype)
       else:

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-rb/queryplan_constants.rb
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-rb/queryplan_constants.rb b/ql/src/gen/thrift/gen-rb/queryplan_constants.rb
index 428185e..e61608b 100644
--- a/ql/src/gen/thrift/gen-rb/queryplan_constants.rb
+++ b/ql/src/gen/thrift/gen-rb/queryplan_constants.rb
@@ -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
 #

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/ql/src/gen/thrift/gen-rb/queryplan_types.rb
----------------------------------------------------------------------
diff --git a/ql/src/gen/thrift/gen-rb/queryplan_types.rb b/ql/src/gen/thrift/gen-rb/queryplan_types.rb
index 1a22f07..f8b4034 100644
--- a/ql/src/gen/thrift/gen-rb/queryplan_types.rb
+++ b/ql/src/gen/thrift/gen-rb/queryplan_types.rb
@@ -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
 #

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/complex_constants.cpp
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/complex_constants.cpp b/serde/src/gen/thrift/gen-cpp/complex_constants.cpp
index aa146c6..a6df39c 100644
--- a/serde/src/gen/thrift/gen-cpp/complex_constants.cpp
+++ b/serde/src/gen/thrift/gen-cpp/complex_constants.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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/complex_constants.h
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/complex_constants.h b/serde/src/gen/thrift/gen-cpp/complex_constants.h
index 971cd2c..ee0bdca 100644
--- a/serde/src/gen/thrift/gen-cpp/complex_constants.h
+++ b/serde/src/gen/thrift/gen-cpp/complex_constants.h
@@ -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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/complex_types.cpp
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/complex_types.cpp b/serde/src/gen/thrift/gen-cpp/complex_types.cpp
index fb6fe25..36c1514 100644
--- a/serde/src/gen/thrift/gen-cpp/complex_types.cpp
+++ b/serde/src/gen/thrift/gen-cpp/complex_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
@@ -51,11 +51,9 @@ void PropValueUnion::__set_unionMStringString(const std::map<std::string, std::s
   this->unionMStringString = val;
 }
 
-const char* PropValueUnion::ascii_fingerprint = "123CD9D82D5B5054B5054EFD63FC8590";
-const uint8_t PropValueUnion::binary_fingerprint[16] = {0x12,0x3C,0xD9,0xD8,0x2D,0x5B,0x50,0x54,0xB5,0x05,0x4E,0xFD,0x63,0xFC,0x85,0x90};
-
 uint32_t PropValueUnion::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -171,7 +169,7 @@ uint32_t PropValueUnion::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t PropValueUnion::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("PropValueUnion");
 
   if (this->__isset.intValue) {
@@ -226,7 +224,6 @@ uint32_t PropValueUnion::write(::apache::thrift::protocol::TProtocol* oprot) con
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -263,18 +260,17 @@ PropValueUnion& PropValueUnion::operator=(const PropValueUnion& other15) {
   __isset = other15.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const PropValueUnion& obj) {
-  using apache::thrift::to_string;
+void PropValueUnion::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "PropValueUnion(";
-  out << "intValue="; (obj.__isset.intValue ? (out << to_string(obj.intValue)) : (out << "<null>"));
-  out << ", " << "longValue="; (obj.__isset.longValue ? (out << to_string(obj.longValue)) : (out << "<null>"));
-  out << ", " << "stringValue="; (obj.__isset.stringValue ? (out << to_string(obj.stringValue)) : (out << "<null>"));
-  out << ", " << "doubleValue="; (obj.__isset.doubleValue ? (out << to_string(obj.doubleValue)) : (out << "<null>"));
-  out << ", " << "flag="; (obj.__isset.flag ? (out << to_string(obj.flag)) : (out << "<null>"));
-  out << ", " << "lString=" << to_string(obj.lString);
-  out << ", " << "unionMStringString=" << to_string(obj.unionMStringString);
+  out << "intValue="; (__isset.intValue ? (out << to_string(intValue)) : (out << "<null>"));
+  out << ", " << "longValue="; (__isset.longValue ? (out << to_string(longValue)) : (out << "<null>"));
+  out << ", " << "stringValue="; (__isset.stringValue ? (out << to_string(stringValue)) : (out << "<null>"));
+  out << ", " << "doubleValue="; (__isset.doubleValue ? (out << to_string(doubleValue)) : (out << "<null>"));
+  out << ", " << "flag="; (__isset.flag ? (out << to_string(flag)) : (out << "<null>"));
+  out << ", " << "lString=" << to_string(lString);
+  out << ", " << "unionMStringString=" << to_string(unionMStringString);
   out << ")";
-  return out;
 }
 
 
@@ -294,11 +290,9 @@ void IntString::__set_underscore_int(const int32_t val) {
   this->underscore_int = val;
 }
 
-const char* IntString::ascii_fingerprint = "52C6DAB6CF51AF617111F6D3964C6503";
-const uint8_t IntString::binary_fingerprint[16] = {0x52,0xC6,0xDA,0xB6,0xCF,0x51,0xAF,0x61,0x71,0x11,0xF6,0xD3,0x96,0x4C,0x65,0x03};
-
 uint32_t IntString::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -355,7 +349,7 @@ uint32_t IntString::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t IntString::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("IntString");
 
   xfer += oprot->writeFieldBegin("myint", ::apache::thrift::protocol::T_I32, 1);
@@ -372,7 +366,6 @@ uint32_t IntString::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -397,14 +390,13 @@ IntString& IntString::operator=(const IntString& other17) {
   __isset = other17.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const IntString& obj) {
-  using apache::thrift::to_string;
+void IntString::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "IntString(";
-  out << "myint=" << to_string(obj.myint);
-  out << ", " << "myString=" << to_string(obj.myString);
-  out << ", " << "underscore_int=" << to_string(obj.underscore_int);
+  out << "myint=" << to_string(myint);
+  out << ", " << "myString=" << to_string(myString);
+  out << ", " << "underscore_int=" << to_string(underscore_int);
   out << ")";
-  return out;
 }
 
 
@@ -452,11 +444,9 @@ void Complex::__set_unionField3(const PropValueUnion& val) {
   this->unionField3 = val;
 }
 
-const char* Complex::ascii_fingerprint = "FFA84FEA7037F5858F2BFEDA73AD679A";
-const uint8_t Complex::binary_fingerprint[16] = {0xFF,0xA8,0x4F,0xEA,0x70,0x37,0xF5,0x85,0x8F,0x2B,0xFE,0xDA,0x73,0xAD,0x67,0x9A};
-
 uint32_t Complex::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -665,7 +655,7 @@ uint32_t Complex::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Complex::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("Complex");
 
   xfer += oprot->writeFieldBegin("aint", ::apache::thrift::protocol::T_I32, 1);
@@ -770,7 +760,6 @@ uint32_t Complex::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -816,21 +805,20 @@ Complex& Complex::operator=(const Complex& other69) {
   __isset = other69.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const Complex& obj) {
-  using apache::thrift::to_string;
+void Complex::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "Complex(";
-  out << "aint=" << to_string(obj.aint);
-  out << ", " << "aString=" << to_string(obj.aString);
-  out << ", " << "lint=" << to_string(obj.lint);
-  out << ", " << "lString=" << to_string(obj.lString);
-  out << ", " << "lintString=" << to_string(obj.lintString);
-  out << ", " << "mStringString=" << to_string(obj.mStringString);
-  out << ", " << "attributes=" << to_string(obj.attributes);
-  out << ", " << "unionField1=" << to_string(obj.unionField1);
-  out << ", " << "unionField2=" << to_string(obj.unionField2);
-  out << ", " << "unionField3=" << to_string(obj.unionField3);
+  out << "aint=" << to_string(aint);
+  out << ", " << "aString=" << to_string(aString);
+  out << ", " << "lint=" << to_string(lint);
+  out << ", " << "lString=" << to_string(lString);
+  out << ", " << "lintString=" << to_string(lintString);
+  out << ", " << "mStringString=" << to_string(mStringString);
+  out << ", " << "attributes=" << to_string(attributes);
+  out << ", " << "unionField1=" << to_string(unionField1);
+  out << ", " << "unionField2=" << to_string(unionField2);
+  out << ", " << "unionField3=" << to_string(unionField3);
   out << ")";
-  return out;
 }
 
 
@@ -846,11 +834,9 @@ void SetIntString::__set_aString(const std::string& val) {
   this->aString = val;
 }
 
-const char* SetIntString::ascii_fingerprint = "842B41C940D05DFB16183142A90DFC54";
-const uint8_t SetIntString::binary_fingerprint[16] = {0x84,0x2B,0x41,0xC9,0x40,0xD0,0x5D,0xFB,0x16,0x18,0x31,0x42,0xA9,0x0D,0xFC,0x54};
-
 uint32_t SetIntString::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -912,7 +898,7 @@ uint32_t SetIntString::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t SetIntString::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("SetIntString");
 
   xfer += oprot->writeFieldBegin("sIntString", ::apache::thrift::protocol::T_SET, 1);
@@ -933,7 +919,6 @@ uint32_t SetIntString::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -955,13 +940,12 @@ SetIntString& SetIntString::operator=(const SetIntString& other78) {
   __isset = other78.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const SetIntString& obj) {
-  using apache::thrift::to_string;
+void SetIntString::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "SetIntString(";
-  out << "sIntString=" << to_string(obj.sIntString);
-  out << ", " << "aString=" << to_string(obj.aString);
+  out << "sIntString=" << to_string(sIntString);
+  out << ", " << "aString=" << to_string(aString);
   out << ")";
-  return out;
 }
 
 

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/complex_types.h
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/complex_types.h b/serde/src/gen/thrift/gen-cpp/complex_types.h
index 2637720..38fa559 100644
--- a/serde/src/gen/thrift/gen-cpp/complex_types.h
+++ b/serde/src/gen/thrift/gen-cpp/complex_types.h
@@ -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
@@ -41,9 +41,6 @@ typedef struct _PropValueUnion__isset {
 class PropValueUnion {
  public:
 
-  static const char* ascii_fingerprint; // = "123CD9D82D5B5054B5054EFD63FC8590";
-  static const uint8_t binary_fingerprint[16]; // = {0x12,0x3C,0xD9,0xD8,0x2D,0x5B,0x50,0x54,0xB5,0x05,0x4E,0xFD,0x63,0xFC,0x85,0x90};
-
   PropValueUnion(const PropValueUnion&);
   PropValueUnion& operator=(const PropValueUnion&);
   PropValueUnion() : intValue(0), longValue(0), stringValue(), doubleValue(0), flag(0) {
@@ -111,11 +108,17 @@ class PropValueUnion {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const PropValueUnion& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(PropValueUnion &a, PropValueUnion &b);
 
+inline std::ostream& operator<<(std::ostream& out, const PropValueUnion& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _IntString__isset {
   _IntString__isset() : myint(false), myString(false), underscore_int(false) {}
   bool myint :1;
@@ -126,9 +129,6 @@ typedef struct _IntString__isset {
 class IntString {
  public:
 
-  static const char* ascii_fingerprint; // = "52C6DAB6CF51AF617111F6D3964C6503";
-  static const uint8_t binary_fingerprint[16]; // = {0x52,0xC6,0xDA,0xB6,0xCF,0x51,0xAF,0x61,0x71,0x11,0xF6,0xD3,0x96,0x4C,0x65,0x03};
-
   IntString(const IntString&);
   IntString& operator=(const IntString&);
   IntString() : myint(0), myString(), underscore_int(0) {
@@ -166,11 +166,17 @@ class IntString {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const IntString& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(IntString &a, IntString &b);
 
+inline std::ostream& operator<<(std::ostream& out, const IntString& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _Complex__isset {
   _Complex__isset() : aint(false), aString(false), lint(false), lString(false), lintString(false), mStringString(false), attributes(false), unionField1(false), unionField2(false), unionField3(false) {}
   bool aint :1;
@@ -188,9 +194,6 @@ typedef struct _Complex__isset {
 class Complex {
  public:
 
-  static const char* ascii_fingerprint; // = "FFA84FEA7037F5858F2BFEDA73AD679A";
-  static const uint8_t binary_fingerprint[16]; // = {0xFF,0xA8,0x4F,0xEA,0x70,0x37,0xF5,0x85,0x8F,0x2B,0xFE,0xDA,0x73,0xAD,0x67,0x9A};
-
   Complex(const Complex&);
   Complex& operator=(const Complex&);
   Complex() : aint(0), aString() {
@@ -263,11 +266,17 @@ class Complex {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const Complex& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(Complex &a, Complex &b);
 
+inline std::ostream& operator<<(std::ostream& out, const Complex& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _SetIntString__isset {
   _SetIntString__isset() : sIntString(false), aString(false) {}
   bool sIntString :1;
@@ -277,9 +286,6 @@ typedef struct _SetIntString__isset {
 class SetIntString {
  public:
 
-  static const char* ascii_fingerprint; // = "842B41C940D05DFB16183142A90DFC54";
-  static const uint8_t binary_fingerprint[16]; // = {0x84,0x2B,0x41,0xC9,0x40,0xD0,0x5D,0xFB,0x16,0x18,0x31,0x42,0xA9,0x0D,0xFC,0x54};
-
   SetIntString(const SetIntString&);
   SetIntString& operator=(const SetIntString&);
   SetIntString() : aString() {
@@ -312,11 +318,17 @@ class SetIntString {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const SetIntString& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(SetIntString &a, SetIntString &b);
 
+inline std::ostream& operator<<(std::ostream& out, const SetIntString& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 
 
 #endif

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/megastruct_constants.cpp
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/megastruct_constants.cpp b/serde/src/gen/thrift/gen-cpp/megastruct_constants.cpp
index 9a18a48..c3e3794 100644
--- a/serde/src/gen/thrift/gen-cpp/megastruct_constants.cpp
+++ b/serde/src/gen/thrift/gen-cpp/megastruct_constants.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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/megastruct_constants.h
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/megastruct_constants.h b/serde/src/gen/thrift/gen-cpp/megastruct_constants.h
index 1b0558f..e08f8a3 100644
--- a/serde/src/gen/thrift/gen-cpp/megastruct_constants.h
+++ b/serde/src/gen/thrift/gen-cpp/megastruct_constants.h
@@ -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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/megastruct_types.cpp
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/megastruct_types.cpp b/serde/src/gen/thrift/gen-cpp/megastruct_types.cpp
index 6123f7d..42f7e31 100644
--- a/serde/src/gen/thrift/gen-cpp/megastruct_types.cpp
+++ b/serde/src/gen/thrift/gen-cpp/megastruct_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
@@ -38,11 +38,9 @@ void MiniStruct::__set_my_enum(const MyEnum::type val) {
 __isset.my_enum = true;
 }
 
-const char* MiniStruct::ascii_fingerprint = "4ED2B10931906B61ED0B1592EE860A37";
-const uint8_t MiniStruct::binary_fingerprint[16] = {0x4E,0xD2,0xB1,0x09,0x31,0x90,0x6B,0x61,0xED,0x0B,0x15,0x92,0xEE,0x86,0x0A,0x37};
-
 uint32_t MiniStruct::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -93,7 +91,7 @@ uint32_t MiniStruct::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t MiniStruct::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("MiniStruct");
 
   if (this->__isset.my_string) {
@@ -108,7 +106,6 @@ uint32_t MiniStruct::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -130,13 +127,12 @@ MiniStruct& MiniStruct::operator=(const MiniStruct& other2) {
   __isset = other2.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const MiniStruct& obj) {
-  using apache::thrift::to_string;
+void MiniStruct::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "MiniStruct(";
-  out << "my_string="; (obj.__isset.my_string ? (out << to_string(obj.my_string)) : (out << "<null>"));
-  out << ", " << "my_enum="; (obj.__isset.my_enum ? (out << to_string(obj.my_enum)) : (out << "<null>"));
+  out << "my_string="; (__isset.my_string ? (out << to_string(my_string)) : (out << "<null>"));
+  out << ", " << "my_enum="; (__isset.my_enum ? (out << to_string(my_enum)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 
@@ -244,11 +240,9 @@ void MegaStruct::__set_my_structset(const std::set<MiniStruct> & val) {
 __isset.my_structset = true;
 }
 
-const char* MegaStruct::ascii_fingerprint = "9979EEF0CA19988228E64220A3AA9120";
-const uint8_t MegaStruct::binary_fingerprint[16] = {0x99,0x79,0xEE,0xF0,0xCA,0x19,0x98,0x82,0x28,0xE6,0x42,0x20,0xA3,0xAA,0x91,0x20};
-
 uint32_t MegaStruct::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -644,7 +638,7 @@ uint32_t MegaStruct::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t MegaStruct::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("MegaStruct");
 
   if (this->__isset.my_bool) {
@@ -867,7 +861,6 @@ uint32_t MegaStruct::write(::apache::thrift::protocol::TProtocol* oprot) const {
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -943,31 +936,30 @@ MegaStruct& MegaStruct::operator=(const MegaStruct& other110) {
   __isset = other110.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const MegaStruct& obj) {
-  using apache::thrift::to_string;
+void MegaStruct::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "MegaStruct(";
-  out << "my_bool="; (obj.__isset.my_bool ? (out << to_string(obj.my_bool)) : (out << "<null>"));
-  out << ", " << "my_byte="; (obj.__isset.my_byte ? (out << to_string(obj.my_byte)) : (out << "<null>"));
-  out << ", " << "my_16bit_int="; (obj.__isset.my_16bit_int ? (out << to_string(obj.my_16bit_int)) : (out << "<null>"));
-  out << ", " << "my_32bit_int="; (obj.__isset.my_32bit_int ? (out << to_string(obj.my_32bit_int)) : (out << "<null>"));
-  out << ", " << "my_64bit_int="; (obj.__isset.my_64bit_int ? (out << to_string(obj.my_64bit_int)) : (out << "<null>"));
-  out << ", " << "my_double="; (obj.__isset.my_double ? (out << to_string(obj.my_double)) : (out << "<null>"));
-  out << ", " << "my_string="; (obj.__isset.my_string ? (out << to_string(obj.my_string)) : (out << "<null>"));
-  out << ", " << "my_binary="; (obj.__isset.my_binary ? (out << to_string(obj.my_binary)) : (out << "<null>"));
-  out << ", " << "my_string_string_map="; (obj.__isset.my_string_string_map ? (out << to_string(obj.my_string_string_map)) : (out << "<null>"));
-  out << ", " << "my_string_enum_map="; (obj.__isset.my_string_enum_map ? (out << to_string(obj.my_string_enum_map)) : (out << "<null>"));
-  out << ", " << "my_enum_string_map="; (obj.__isset.my_enum_string_map ? (out << to_string(obj.my_enum_string_map)) : (out << "<null>"));
-  out << ", " << "my_enum_struct_map="; (obj.__isset.my_enum_struct_map ? (out << to_string(obj.my_enum_struct_map)) : (out << "<null>"));
-  out << ", " << "my_enum_stringlist_map="; (obj.__isset.my_enum_stringlist_map ? (out << to_string(obj.my_enum_stringlist_map)) : (out << "<null>"));
-  out << ", " << "my_enum_structlist_map="; (obj.__isset.my_enum_structlist_map ? (out << to_string(obj.my_enum_structlist_map)) : (out << "<null>"));
-  out << ", " << "my_stringlist="; (obj.__isset.my_stringlist ? (out << to_string(obj.my_stringlist)) : (out << "<null>"));
-  out << ", " << "my_structlist="; (obj.__isset.my_structlist ? (out << to_string(obj.my_structlist)) : (out << "<null>"));
-  out << ", " << "my_enumlist="; (obj.__isset.my_enumlist ? (out << to_string(obj.my_enumlist)) : (out << "<null>"));
-  out << ", " << "my_stringset="; (obj.__isset.my_stringset ? (out << to_string(obj.my_stringset)) : (out << "<null>"));
-  out << ", " << "my_enumset="; (obj.__isset.my_enumset ? (out << to_string(obj.my_enumset)) : (out << "<null>"));
-  out << ", " << "my_structset="; (obj.__isset.my_structset ? (out << to_string(obj.my_structset)) : (out << "<null>"));
+  out << "my_bool="; (__isset.my_bool ? (out << to_string(my_bool)) : (out << "<null>"));
+  out << ", " << "my_byte="; (__isset.my_byte ? (out << to_string(my_byte)) : (out << "<null>"));
+  out << ", " << "my_16bit_int="; (__isset.my_16bit_int ? (out << to_string(my_16bit_int)) : (out << "<null>"));
+  out << ", " << "my_32bit_int="; (__isset.my_32bit_int ? (out << to_string(my_32bit_int)) : (out << "<null>"));
+  out << ", " << "my_64bit_int="; (__isset.my_64bit_int ? (out << to_string(my_64bit_int)) : (out << "<null>"));
+  out << ", " << "my_double="; (__isset.my_double ? (out << to_string(my_double)) : (out << "<null>"));
+  out << ", " << "my_string="; (__isset.my_string ? (out << to_string(my_string)) : (out << "<null>"));
+  out << ", " << "my_binary="; (__isset.my_binary ? (out << to_string(my_binary)) : (out << "<null>"));
+  out << ", " << "my_string_string_map="; (__isset.my_string_string_map ? (out << to_string(my_string_string_map)) : (out << "<null>"));
+  out << ", " << "my_string_enum_map="; (__isset.my_string_enum_map ? (out << to_string(my_string_enum_map)) : (out << "<null>"));
+  out << ", " << "my_enum_string_map="; (__isset.my_enum_string_map ? (out << to_string(my_enum_string_map)) : (out << "<null>"));
+  out << ", " << "my_enum_struct_map="; (__isset.my_enum_struct_map ? (out << to_string(my_enum_struct_map)) : (out << "<null>"));
+  out << ", " << "my_enum_stringlist_map="; (__isset.my_enum_stringlist_map ? (out << to_string(my_enum_stringlist_map)) : (out << "<null>"));
+  out << ", " << "my_enum_structlist_map="; (__isset.my_enum_structlist_map ? (out << to_string(my_enum_structlist_map)) : (out << "<null>"));
+  out << ", " << "my_stringlist="; (__isset.my_stringlist ? (out << to_string(my_stringlist)) : (out << "<null>"));
+  out << ", " << "my_structlist="; (__isset.my_structlist ? (out << to_string(my_structlist)) : (out << "<null>"));
+  out << ", " << "my_enumlist="; (__isset.my_enumlist ? (out << to_string(my_enumlist)) : (out << "<null>"));
+  out << ", " << "my_stringset="; (__isset.my_stringset ? (out << to_string(my_stringset)) : (out << "<null>"));
+  out << ", " << "my_enumset="; (__isset.my_enumset ? (out << to_string(my_enumset)) : (out << "<null>"));
+  out << ", " << "my_structset="; (__isset.my_structset ? (out << to_string(my_structset)) : (out << "<null>"));
   out << ")";
-  return out;
 }
 
 

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/megastruct_types.h
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/megastruct_types.h b/serde/src/gen/thrift/gen-cpp/megastruct_types.h
index e4985dc..d04a814 100644
--- a/serde/src/gen/thrift/gen-cpp/megastruct_types.h
+++ b/serde/src/gen/thrift/gen-cpp/megastruct_types.h
@@ -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
@@ -41,9 +41,6 @@ typedef struct _MiniStruct__isset {
 class MiniStruct {
  public:
 
-  static const char* ascii_fingerprint; // = "4ED2B10931906B61ED0B1592EE860A37";
-  static const uint8_t binary_fingerprint[16]; // = {0x4E,0xD2,0xB1,0x09,0x31,0x90,0x6B,0x61,0xED,0x0B,0x15,0x92,0xEE,0x86,0x0A,0x37};
-
   MiniStruct(const MiniStruct&);
   MiniStruct& operator=(const MiniStruct&);
   MiniStruct() : my_string(), my_enum((MyEnum::type)0) {
@@ -80,11 +77,17 @@ class MiniStruct {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const MiniStruct& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(MiniStruct &a, MiniStruct &b);
 
+inline std::ostream& operator<<(std::ostream& out, const MiniStruct& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _MegaStruct__isset {
   _MegaStruct__isset() : my_bool(false), my_byte(false), my_16bit_int(false), my_32bit_int(false), my_64bit_int(false), my_double(false), my_string(false), my_binary(false), my_string_string_map(false), my_string_enum_map(false), my_enum_string_map(false), my_enum_struct_map(false), my_enum_stringlist_map(false), my_enum_structlist_map(false), my_stringlist(false), my_structlist(false), my_enumlist(false), my_stringset(false), my_enumset(false), my_structset(false) {}
   bool my_bool :1;
@@ -112,9 +115,6 @@ typedef struct _MegaStruct__isset {
 class MegaStruct {
  public:
 
-  static const char* ascii_fingerprint; // = "9979EEF0CA19988228E64220A3AA9120";
-  static const uint8_t binary_fingerprint[16]; // = {0x99,0x79,0xEE,0xF0,0xCA,0x19,0x98,0x82,0x28,0xE6,0x42,0x20,0xA3,0xAA,0x91,0x20};
-
   MegaStruct(const MegaStruct&);
   MegaStruct& operator=(const MegaStruct&);
   MegaStruct() : my_bool(0), my_byte(0), my_16bit_int(0), my_32bit_int(0), my_64bit_int(0), my_double(0), my_string(), my_binary() {
@@ -277,11 +277,17 @@ class MegaStruct {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  friend std::ostream& operator<<(std::ostream& out, const MegaStruct& obj);
+  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(MegaStruct &a, MegaStruct &b);
 
+inline std::ostream& operator<<(std::ostream& out, const MegaStruct& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 
 
 #endif

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/serde_constants.cpp
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/serde_constants.cpp b/serde/src/gen/thrift/gen-cpp/serde_constants.cpp
index d5d6999..243d3b8 100644
--- a/serde/src/gen/thrift/gen-cpp/serde_constants.cpp
+++ b/serde/src/gen/thrift/gen-cpp/serde_constants.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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/serde_constants.h
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/serde_constants.h b/serde/src/gen/thrift/gen-cpp/serde_constants.h
index cd48926..3566ead 100644
--- a/serde/src/gen/thrift/gen-cpp/serde_constants.h
+++ b/serde/src/gen/thrift/gen-cpp/serde_constants.h
@@ -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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/serde_types.cpp
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/serde_types.cpp b/serde/src/gen/thrift/gen-cpp/serde_types.cpp
index a37ff7c..c05f86d 100644
--- a/serde/src/gen/thrift/gen-cpp/serde_types.cpp
+++ b/serde/src/gen/thrift/gen-cpp/serde_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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/serde_types.h
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/serde_types.h b/serde/src/gen/thrift/gen-cpp/serde_types.h
index eb7659a..bdaab33 100644
--- a/serde/src/gen/thrift/gen-cpp/serde_types.h
+++ b/serde/src/gen/thrift/gen-cpp/serde_types.h
@@ -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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/testthrift_constants.cpp
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/testthrift_constants.cpp b/serde/src/gen/thrift/gen-cpp/testthrift_constants.cpp
index 0fa57e7..9538dae 100644
--- a/serde/src/gen/thrift/gen-cpp/testthrift_constants.cpp
+++ b/serde/src/gen/thrift/gen-cpp/testthrift_constants.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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/testthrift_constants.h
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/testthrift_constants.h b/serde/src/gen/thrift/gen-cpp/testthrift_constants.h
index cba3296..45fdc28 100644
--- a/serde/src/gen/thrift/gen-cpp/testthrift_constants.h
+++ b/serde/src/gen/thrift/gen-cpp/testthrift_constants.h
@@ -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

http://git-wip-us.apache.org/repos/asf/hive/blob/26535378/serde/src/gen/thrift/gen-cpp/testthrift_types.cpp
----------------------------------------------------------------------
diff --git a/serde/src/gen/thrift/gen-cpp/testthrift_types.cpp b/serde/src/gen/thrift/gen-cpp/testthrift_types.cpp
index 0cd19b9..c76e2fd 100644
--- a/serde/src/gen/thrift/gen-cpp/testthrift_types.cpp
+++ b/serde/src/gen/thrift/gen-cpp/testthrift_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
@@ -22,11 +22,9 @@ void InnerStruct::__set_field0(const int32_t val) {
   this->field0 = val;
 }
 
-const char* InnerStruct::ascii_fingerprint = "E86CACEB22240450EDCBEFC3A83970E4";
-const uint8_t InnerStruct::binary_fingerprint[16] = {0xE8,0x6C,0xAC,0xEB,0x22,0x24,0x04,0x50,0xED,0xCB,0xEF,0xC3,0xA8,0x39,0x70,0xE4};
-
 uint32_t InnerStruct::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -67,7 +65,7 @@ uint32_t InnerStruct::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t InnerStruct::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("InnerStruct");
 
   xfer += oprot->writeFieldBegin("field0", ::apache::thrift::protocol::T_I32, 1);
@@ -76,7 +74,6 @@ uint32_t InnerStruct::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -95,12 +92,11 @@ InnerStruct& InnerStruct::operator=(const InnerStruct& other1) {
   __isset = other1.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const InnerStruct& obj) {
-  using apache::thrift::to_string;
+void InnerStruct::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "InnerStruct(";
-  out << "field0=" << to_string(obj.field0);
+  out << "field0=" << to_string(field0);
   out << ")";
-  return out;
 }
 
 
@@ -120,11 +116,9 @@ void ThriftTestObj::__set_field3(const std::vector<InnerStruct> & val) {
   this->field3 = val;
 }
 
-const char* ThriftTestObj::ascii_fingerprint = "2BA5D8DAACFBBE6599779830A6185706";
-const uint8_t ThriftTestObj::binary_fingerprint[16] = {0x2B,0xA5,0xD8,0xDA,0xAC,0xFB,0xBE,0x65,0x99,0x77,0x98,0x30,0xA6,0x18,0x57,0x06};
-
 uint32_t ThriftTestObj::read(::apache::thrift::protocol::TProtocol* iprot) {
 
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -193,7 +187,7 @@ uint32_t ThriftTestObj::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t ThriftTestObj::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  oprot->incrementRecursionDepth();
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("ThriftTestObj");
 
   xfer += oprot->writeFieldBegin("field1", ::apache::thrift::protocol::T_I32, 1);
@@ -218,7 +212,6 @@ uint32_t ThriftTestObj::write(::apache::thrift::protocol::TProtocol* oprot) cons
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
-  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -243,14 +236,13 @@ ThriftTestObj& ThriftTestObj::operator=(const ThriftTestObj& other9) {
   __isset = other9.__isset;
   return *this;
 }
-std::ostream& operator<<(std::ostream& out, const ThriftTestObj& obj) {
-  using apache::thrift::to_string;
+void ThriftTestObj::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
   out << "ThriftTestObj(";
-  out << "field1=" << to_string(obj.field1);
-  out << ", " << "field2=" << to_string(obj.field2);
-  out << ", " << "field3=" << to_string(obj.field3);
+  out << "field1=" << to_string(field1);
+  out << ", " << "field2=" << to_string(field2);
+  out << ", " << "field3=" << to_string(field3);
   out << ")";
-  return out;
 }