You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by su...@apache.org on 2015/07/17 21:53:11 UTC

[19/48] hive git commit: HIVE-9152 - Dynamic Partition Pruning [Spark Branch] (Chao Sun, reviewed by Xuefu Zhang and Chengxiang Li)

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/ql/src/test/results/clientpositive/spark/udf_example_add.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/udf_example_add.q.out b/ql/src/test/results/clientpositive/spark/udf_example_add.q.out
index 7916679..587c68b 100644
--- a/ql/src/test/results/clientpositive/spark/udf_example_add.q.out
+++ b/ql/src/test/results/clientpositive/spark/udf_example_add.q.out
@@ -34,14 +34,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: src
-          Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
             expressions: 3 (type: int), 6 (type: int), 10 (type: int), 3.3000000000000003 (type: double), 6.6 (type: double), 11.0 (type: double), 10.4 (type: double)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
-            Statistics: Num rows: 500 Data size: 22000 Basic stats: COMPLETE Column stats: COMPLETE
             Limit
               Number of rows: 1
-              Statistics: Num rows: 1 Data size: 44 Basic stats: COMPLETE Column stats: COMPLETE
               ListSink
 
 PREHOOK: query: SELECT example_add(1, 2),

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/ql/src/test/results/clientpositive/spark/udf_in_file.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/udf_in_file.q.out b/ql/src/test/results/clientpositive/spark/udf_in_file.q.out
index 5ba62b0..be0627c 100644
--- a/ql/src/test/results/clientpositive/spark/udf_in_file.q.out
+++ b/ql/src/test/results/clientpositive/spark/udf_in_file.q.out
@@ -57,14 +57,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: value_src
-          Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: in_file(str_val, '../../data/files/test2.dat') (type: boolean), in_file(ch_val, '../../data/files/test2.dat') (type: boolean), in_file(vch_val, '../../data/files/test2.dat') (type: boolean), in_file(str_val_neg, '../../data/files/test2.dat') (type: boolean), in_file(ch_val_neg, '../../data/files/test2.dat') (type: boolean), in_file(vch_val_neg, '../../data/files/test2.dat') (type: boolean), in_file('303', '../../data/files/test2.dat') (type: boolean), in_file('304', '../../data/files/test2.dat') (type: boolean), in_file(null, '../../data/files/test2.dat') (type: boolean)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-            Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: NONE
             Limit
               Number of rows: 1
-              Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: NONE
               ListSink
 
 PREHOOK: query: SELECT in_file(str_val, "../../data/files/test2.dat"),

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/ql/src/test/results/clientpositive/spark/union_view.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/union_view.q.out b/ql/src/test/results/clientpositive/spark/union_view.q.out
index 31e0786..cce7710 100644
--- a/ql/src/test/results/clientpositive/spark/union_view.q.out
+++ b/ql/src/test/results/clientpositive/spark/union_view.q.out
@@ -54,14 +54,11 @@ STAGE PLANS:
         TableScan
           alias: src_union_1
           filterExpr: ((key = 86) and (ds = '1')) (type: boolean)
-          Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
           Filter Operator
             predicate: (key = 86) (type: boolean)
-            Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: 86 (type: int), value (type: string), '1' (type: string)
               outputColumnNames: _col0, _col1, _col2
-              Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
               ListSink
 
 STAGE DEPENDENCIES:
@@ -75,14 +72,11 @@ STAGE PLANS:
         TableScan
           alias: src_union_2
           filterExpr: ((key = 86) and (ds = '2')) (type: boolean)
-          Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE
           Filter Operator
             predicate: (key = 86) (type: boolean)
-            Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: 86 (type: int), value (type: string), '2' (type: string)
               outputColumnNames: _col0, _col1, _col2
-              Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
               ListSink
 
 STAGE DEPENDENCIES:
@@ -96,14 +90,11 @@ STAGE PLANS:
         TableScan
           alias: src_union_3
           filterExpr: ((key = 86) and (ds = '3')) (type: boolean)
-          Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE
           Filter Operator
             predicate: (key = 86) (type: boolean)
-            Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: 86 (type: int), value (type: string), '3' (type: string)
               outputColumnNames: _col0, _col1, _col2
-              Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
               ListSink
 
 86	val_86	1

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/ql/src/test/results/clientpositive/spark/vector_elt.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vector_elt.q.out b/ql/src/test/results/clientpositive/spark/vector_elt.q.out
index 49d1458..bb66867 100644
--- a/ql/src/test/results/clientpositive/spark/vector_elt.q.out
+++ b/ql/src/test/results/clientpositive/spark/vector_elt.q.out
@@ -16,17 +16,13 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alltypesorc
-          Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE
           Filter Operator
             predicate: (ctinyint > 0) (type: boolean)
-            Statistics: Num rows: 4096 Data size: 125745 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: ((UDFToInteger(ctinyint) % 2) + 1) (type: int), cstring1 (type: string), cint (type: int), elt(((UDFToInteger(ctinyint) % 2) + 1), cstring1, cint) (type: string)
               outputColumnNames: _col0, _col1, _col2, _col3
-              Statistics: Num rows: 4096 Data size: 125745 Basic stats: COMPLETE Column stats: NONE
               Limit
                 Number of rows: 10
-                Statistics: Num rows: 10 Data size: 300 Basic stats: COMPLETE Column stats: NONE
                 ListSink
 
 PREHOOK: query: SELECT (ctinyint % 2) + 1, cstring1, cint, elt((ctinyint % 2) + 1, cstring1, cint) 
@@ -87,14 +83,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alltypesorc
-          Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
             expressions: 'defg' (type: string), 'cc' (type: string), 'abc' (type: string), '2' (type: string), '12345' (type: string), '123456789012' (type: string), '1.25' (type: string), '16.0' (type: string), null (type: string), null (type: string)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-            Statistics: Num rows: 12288 Data size: 8687616 Basic stats: COMPLETE Column stats: COMPLETE
             Limit
               Number of rows: 1
-              Statistics: Num rows: 1 Data size: 707 Basic stats: COMPLETE Column stats: COMPLETE
               ListSink
 
 PREHOOK: query: SELECT elt(2, 'abc', 'defg'),

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/ql/src/test/results/clientpositive/spark/vector_string_concat.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vector_string_concat.q.out b/ql/src/test/results/clientpositive/spark/vector_string_concat.q.out
index b78aec9..5a2f9e4 100644
--- a/ql/src/test/results/clientpositive/spark/vector_string_concat.q.out
+++ b/ql/src/test/results/clientpositive/spark/vector_string_concat.q.out
@@ -117,14 +117,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: over1korc
-          Statistics: Num rows: 1049 Data size: 311170 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: s (type: string), concat(concat('      ', s), '      ') (type: string), concat(concat('|', rtrim(concat(concat('      ', s), '      '))), '|') (type: string)
             outputColumnNames: _col0, _col1, _col2
-            Statistics: Num rows: 1049 Data size: 311170 Basic stats: COMPLETE Column stats: NONE
             Limit
               Number of rows: 20
-              Statistics: Num rows: 20 Data size: 5920 Basic stats: COMPLETE Column stats: NONE
               ListSink
 
 PREHOOK: query: SELECT s AS `string`,

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/ql/src/test/results/clientpositive/spark/vectorization_decimal_date.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_decimal_date.q.out b/ql/src/test/results/clientpositive/spark/vectorization_decimal_date.q.out
index 19799b3..c20033c 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_decimal_date.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_decimal_date.q.out
@@ -22,17 +22,13 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: date_decimal_test
-          Statistics: Num rows: 12288 Data size: 1651260 Basic stats: COMPLETE Column stats: NONE
           Filter Operator
             predicate: (cint is not null and cdouble is not null) (type: boolean)
-            Statistics: Num rows: 3072 Data size: 412815 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: cdate (type: date), cdecimal (type: decimal(20,10))
               outputColumnNames: _col0, _col1
-              Statistics: Num rows: 3072 Data size: 412815 Basic stats: COMPLETE Column stats: NONE
               Limit
                 Number of rows: 10
-                Statistics: Num rows: 10 Data size: 1340 Basic stats: COMPLETE Column stats: NONE
                 ListSink
 
 PREHOOK: query: SELECT cdate, cdecimal from date_decimal_test where cint IS NOT NULL AND cdouble IS NOT NULL LIMIT 10

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/ql/src/test/results/clientpositive/spark/vectorization_div0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorization_div0.q.out b/ql/src/test/results/clientpositive/spark/vectorization_div0.q.out
index 5887839..71f4b09 100644
--- a/ql/src/test/results/clientpositive/spark/vectorization_div0.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorization_div0.q.out
@@ -16,14 +16,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alltypesorc
-          Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: (cdouble / 0.0) (type: double)
             outputColumnNames: _col0
-            Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE
             Limit
               Number of rows: 100
-              Statistics: Num rows: 100 Data size: 3000 Basic stats: COMPLETE Column stats: NONE
               ListSink
 
 PREHOOK: query: select cdouble / 0.0 from alltypesorc limit 100

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/ql/src/test/results/clientpositive/spark/vectorized_case.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorized_case.q.out b/ql/src/test/results/clientpositive/spark/vectorized_case.q.out
index 0e1e9d3..7f824f1 100644
--- a/ql/src/test/results/clientpositive/spark/vectorized_case.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorized_case.q.out
@@ -44,14 +44,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alltypesorc
-          Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE
           Filter Operator
             predicate: ((csmallint = 418) or ((csmallint = 12205) or (csmallint = 10583))) (type: boolean)
-            Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: csmallint (type: smallint), CASE WHEN ((csmallint = 418)) THEN ('a') WHEN ((csmallint = 12205)) THEN ('b') ELSE ('c') END (type: string), CASE (csmallint) WHEN (418) THEN ('a') WHEN (12205) THEN ('b') ELSE ('c') END (type: string)
               outputColumnNames: _col0, _col1, _col2
-              Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE
               ListSink
 
 PREHOOK: query: select 

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out b/ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out
index 470d9a9..444b9e0 100644
--- a/ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out
@@ -116,14 +116,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alltypesorc
-          Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE
           Filter Operator
             predicate: (((cbigint % 500) = 0) and (sin(cfloat) >= -1.0)) (type: boolean)
-            Statistics: Num rows: 2048 Data size: 62872 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: cdouble (type: double), round(cdouble, 2) (type: double), floor(cdouble) (type: bigint), ceil(cdouble) (type: bigint), rand() (type: double), rand(98007) (type: double), exp(ln(cdouble)) (type: double), ln(cdouble) (type: double), ln(cfloat) (type: double), log10(cdouble) (type: double), log2(cdouble) (type: double), log2((cdouble - 15601.0)) (type: double), log2(cfloat) (type: double), log2(cbigint) (type: double), log2(cint) (type: double), log2(csmallint) (type: double), log2(ctinyint) (type: double), log(2.0, cdouble) (type: double), power(log2(cdouble), 2.0) (type: double), power(log2(cdouble), 2.0) (type: double), sqrt(cdouble) (type: double), sqrt(cbigint) (type: double), bin(cbigint) (type: string), hex(cdouble) (type: string), conv(cbigint, 10, 16) (type: string), abs(cdouble) (type: double), abs(ctinyint) (type: int), (cint pmod 3) (type: int), sin(cdouble) (type: double), asin(cdouble) (type: double), cos(cdouble) (type: double), acos(cdouble) (
 type: double), atan(cdouble) (type: double), degrees(cdouble) (type: double), radians(cdouble) (type: double), cdouble (type: double), cbigint (type: bigint), (- cdouble) (type: double), sign(cdouble) (type: double), sign(cbigint) (type: double), cos(((- sin(log(cdouble))) + 3.14159)) (type: double)
               outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31, _col32, _col33, _col34, _col35, _col36, _col37, _col38, _col39, _col40
-              Statistics: Num rows: 2048 Data size: 62872 Basic stats: COMPLETE Column stats: NONE
               ListSink
 
 PREHOOK: query: select

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/ql/src/test/results/clientpositive/spark/vectorized_string_funcs.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorized_string_funcs.q.out b/ql/src/test/results/clientpositive/spark/vectorized_string_funcs.q.out
index ef98ae9..0463d31 100644
--- a/ql/src/test/results/clientpositive/spark/vectorized_string_funcs.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorized_string_funcs.q.out
@@ -56,14 +56,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alltypesorc
-          Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE
           Filter Operator
             predicate: ((((cbigint % 237) = 0) and (length(substr(cstring1, 1, 2)) <= 2)) and (cstring1 like '%')) (type: boolean)
-            Statistics: Num rows: 1024 Data size: 31436 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: substr(cstring1, 1, 2) (type: string), substr(cstring1, 2) (type: string), lower(cstring1) (type: string), upper(cstring1) (type: string), upper(cstring1) (type: string), length(cstring1) (type: int), trim(cstring1) (type: string), ltrim(cstring1) (type: string), rtrim(cstring1) (type: string), concat(cstring1, cstring2) (type: string), concat('>', cstring1) (type: string), concat(cstring1, '<') (type: string), concat(substr(cstring1, 1, 2), substr(cstring2, 1, 2)) (type: string)
               outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12
-              Statistics: Num rows: 1024 Data size: 31436 Basic stats: COMPLETE Column stats: NONE
               ListSink
 
 PREHOOK: query: select 

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/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 768fc38..aa146c6 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.0)
+ * Autogenerated by Thrift Compiler (0.9.2)
  *
  * 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/42216997/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 6b115df..971cd2c 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.0)
+ * Autogenerated by Thrift Compiler (0.9.2)
  *
  * 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/42216997/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 411e1b0..fb6fe25 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.0)
+ * Autogenerated by Thrift Compiler (0.9.2)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -7,9 +7,50 @@
 #include "complex_types.h"
 
 #include <algorithm>
+#include <ostream>
 
+#include <thrift/TToString.h>
 
 
+
+
+PropValueUnion::~PropValueUnion() throw() {
+}
+
+
+void PropValueUnion::__set_intValue(const int32_t val) {
+  this->intValue = val;
+__isset.intValue = true;
+}
+
+void PropValueUnion::__set_longValue(const int64_t val) {
+  this->longValue = val;
+__isset.longValue = true;
+}
+
+void PropValueUnion::__set_stringValue(const std::string& val) {
+  this->stringValue = val;
+__isset.stringValue = true;
+}
+
+void PropValueUnion::__set_doubleValue(const double val) {
+  this->doubleValue = val;
+__isset.doubleValue = true;
+}
+
+void PropValueUnion::__set_flag(const bool val) {
+  this->flag = val;
+__isset.flag = true;
+}
+
+void PropValueUnion::__set_lString(const std::vector<std::string> & val) {
+  this->lString = val;
+}
+
+void PropValueUnion::__set_unionMStringString(const std::map<std::string, std::string> & val) {
+  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};
 
@@ -130,6 +171,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();
   xfer += oprot->writeStructBegin("PropValueUnion");
 
   if (this->__isset.intValue) {
@@ -184,6 +226,7 @@ uint32_t PropValueUnion::write(::apache::thrift::protocol::TProtocol* oprot) con
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -199,6 +242,58 @@ void swap(PropValueUnion &a, PropValueUnion &b) {
   swap(a.__isset, b.__isset);
 }
 
+PropValueUnion::PropValueUnion(const PropValueUnion& other14) {
+  intValue = other14.intValue;
+  longValue = other14.longValue;
+  stringValue = other14.stringValue;
+  doubleValue = other14.doubleValue;
+  flag = other14.flag;
+  lString = other14.lString;
+  unionMStringString = other14.unionMStringString;
+  __isset = other14.__isset;
+}
+PropValueUnion& PropValueUnion::operator=(const PropValueUnion& other15) {
+  intValue = other15.intValue;
+  longValue = other15.longValue;
+  stringValue = other15.stringValue;
+  doubleValue = other15.doubleValue;
+  flag = other15.flag;
+  lString = other15.lString;
+  unionMStringString = other15.unionMStringString;
+  __isset = other15.__isset;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const PropValueUnion& obj) {
+  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 << ")";
+  return out;
+}
+
+
+IntString::~IntString() throw() {
+}
+
+
+void IntString::__set_myint(const int32_t val) {
+  this->myint = val;
+}
+
+void IntString::__set_myString(const std::string& val) {
+  this->myString = val;
+}
+
+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};
 
@@ -260,6 +355,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();
   xfer += oprot->writeStructBegin("IntString");
 
   xfer += oprot->writeFieldBegin("myint", ::apache::thrift::protocol::T_I32, 1);
@@ -276,6 +372,7 @@ uint32_t IntString::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -287,6 +384,74 @@ void swap(IntString &a, IntString &b) {
   swap(a.__isset, b.__isset);
 }
 
+IntString::IntString(const IntString& other16) {
+  myint = other16.myint;
+  myString = other16.myString;
+  underscore_int = other16.underscore_int;
+  __isset = other16.__isset;
+}
+IntString& IntString::operator=(const IntString& other17) {
+  myint = other17.myint;
+  myString = other17.myString;
+  underscore_int = other17.underscore_int;
+  __isset = other17.__isset;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const IntString& obj) {
+  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 << ")";
+  return out;
+}
+
+
+Complex::~Complex() throw() {
+}
+
+
+void Complex::__set_aint(const int32_t val) {
+  this->aint = val;
+}
+
+void Complex::__set_aString(const std::string& val) {
+  this->aString = val;
+}
+
+void Complex::__set_lint(const std::vector<int32_t> & val) {
+  this->lint = val;
+}
+
+void Complex::__set_lString(const std::vector<std::string> & val) {
+  this->lString = val;
+}
+
+void Complex::__set_lintString(const std::vector<IntString> & val) {
+  this->lintString = val;
+}
+
+void Complex::__set_mStringString(const std::map<std::string, std::string> & val) {
+  this->mStringString = val;
+}
+
+void Complex::__set_attributes(const std::map<std::string, std::map<std::string, std::map<std::string, PropValueUnion> > > & val) {
+  this->attributes = val;
+}
+
+void Complex::__set_unionField1(const PropValueUnion& val) {
+  this->unionField1 = val;
+}
+
+void Complex::__set_unionField2(const PropValueUnion& val) {
+  this->unionField2 = val;
+}
+
+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};
 
@@ -330,14 +495,14 @@ uint32_t Complex::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->lint.clear();
-            uint32_t _size14;
-            ::apache::thrift::protocol::TType _etype17;
-            xfer += iprot->readListBegin(_etype17, _size14);
-            this->lint.resize(_size14);
-            uint32_t _i18;
-            for (_i18 = 0; _i18 < _size14; ++_i18)
+            uint32_t _size18;
+            ::apache::thrift::protocol::TType _etype21;
+            xfer += iprot->readListBegin(_etype21, _size18);
+            this->lint.resize(_size18);
+            uint32_t _i22;
+            for (_i22 = 0; _i22 < _size18; ++_i22)
             {
-              xfer += iprot->readI32(this->lint[_i18]);
+              xfer += iprot->readI32(this->lint[_i22]);
             }
             xfer += iprot->readListEnd();
           }
@@ -350,14 +515,14 @@ uint32_t Complex::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->lString.clear();
-            uint32_t _size19;
-            ::apache::thrift::protocol::TType _etype22;
-            xfer += iprot->readListBegin(_etype22, _size19);
-            this->lString.resize(_size19);
-            uint32_t _i23;
-            for (_i23 = 0; _i23 < _size19; ++_i23)
+            uint32_t _size23;
+            ::apache::thrift::protocol::TType _etype26;
+            xfer += iprot->readListBegin(_etype26, _size23);
+            this->lString.resize(_size23);
+            uint32_t _i27;
+            for (_i27 = 0; _i27 < _size23; ++_i27)
             {
-              xfer += iprot->readString(this->lString[_i23]);
+              xfer += iprot->readString(this->lString[_i27]);
             }
             xfer += iprot->readListEnd();
           }
@@ -370,14 +535,14 @@ uint32_t Complex::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->lintString.clear();
-            uint32_t _size24;
-            ::apache::thrift::protocol::TType _etype27;
-            xfer += iprot->readListBegin(_etype27, _size24);
-            this->lintString.resize(_size24);
-            uint32_t _i28;
-            for (_i28 = 0; _i28 < _size24; ++_i28)
+            uint32_t _size28;
+            ::apache::thrift::protocol::TType _etype31;
+            xfer += iprot->readListBegin(_etype31, _size28);
+            this->lintString.resize(_size28);
+            uint32_t _i32;
+            for (_i32 = 0; _i32 < _size28; ++_i32)
             {
-              xfer += this->lintString[_i28].read(iprot);
+              xfer += this->lintString[_i32].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -390,17 +555,17 @@ uint32_t Complex::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->mStringString.clear();
-            uint32_t _size29;
-            ::apache::thrift::protocol::TType _ktype30;
-            ::apache::thrift::protocol::TType _vtype31;
-            xfer += iprot->readMapBegin(_ktype30, _vtype31, _size29);
-            uint32_t _i33;
-            for (_i33 = 0; _i33 < _size29; ++_i33)
+            uint32_t _size33;
+            ::apache::thrift::protocol::TType _ktype34;
+            ::apache::thrift::protocol::TType _vtype35;
+            xfer += iprot->readMapBegin(_ktype34, _vtype35, _size33);
+            uint32_t _i37;
+            for (_i37 = 0; _i37 < _size33; ++_i37)
             {
-              std::string _key34;
-              xfer += iprot->readString(_key34);
-              std::string& _val35 = this->mStringString[_key34];
-              xfer += iprot->readString(_val35);
+              std::string _key38;
+              xfer += iprot->readString(_key38);
+              std::string& _val39 = this->mStringString[_key38];
+              xfer += iprot->readString(_val39);
             }
             xfer += iprot->readMapEnd();
           }
@@ -413,41 +578,41 @@ uint32_t Complex::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->attributes.clear();
-            uint32_t _size36;
-            ::apache::thrift::protocol::TType _ktype37;
-            ::apache::thrift::protocol::TType _vtype38;
-            xfer += iprot->readMapBegin(_ktype37, _vtype38, _size36);
-            uint32_t _i40;
-            for (_i40 = 0; _i40 < _size36; ++_i40)
+            uint32_t _size40;
+            ::apache::thrift::protocol::TType _ktype41;
+            ::apache::thrift::protocol::TType _vtype42;
+            xfer += iprot->readMapBegin(_ktype41, _vtype42, _size40);
+            uint32_t _i44;
+            for (_i44 = 0; _i44 < _size40; ++_i44)
             {
-              std::string _key41;
-              xfer += iprot->readString(_key41);
-              std::map<std::string, std::map<std::string, PropValueUnion> > & _val42 = this->attributes[_key41];
+              std::string _key45;
+              xfer += iprot->readString(_key45);
+              std::map<std::string, std::map<std::string, PropValueUnion> > & _val46 = this->attributes[_key45];
               {
-                _val42.clear();
-                uint32_t _size43;
-                ::apache::thrift::protocol::TType _ktype44;
-                ::apache::thrift::protocol::TType _vtype45;
-                xfer += iprot->readMapBegin(_ktype44, _vtype45, _size43);
-                uint32_t _i47;
-                for (_i47 = 0; _i47 < _size43; ++_i47)
+                _val46.clear();
+                uint32_t _size47;
+                ::apache::thrift::protocol::TType _ktype48;
+                ::apache::thrift::protocol::TType _vtype49;
+                xfer += iprot->readMapBegin(_ktype48, _vtype49, _size47);
+                uint32_t _i51;
+                for (_i51 = 0; _i51 < _size47; ++_i51)
                 {
-                  std::string _key48;
-                  xfer += iprot->readString(_key48);
-                  std::map<std::string, PropValueUnion> & _val49 = _val42[_key48];
+                  std::string _key52;
+                  xfer += iprot->readString(_key52);
+                  std::map<std::string, PropValueUnion> & _val53 = _val46[_key52];
                   {
-                    _val49.clear();
-                    uint32_t _size50;
-                    ::apache::thrift::protocol::TType _ktype51;
-                    ::apache::thrift::protocol::TType _vtype52;
-                    xfer += iprot->readMapBegin(_ktype51, _vtype52, _size50);
-                    uint32_t _i54;
-                    for (_i54 = 0; _i54 < _size50; ++_i54)
+                    _val53.clear();
+                    uint32_t _size54;
+                    ::apache::thrift::protocol::TType _ktype55;
+                    ::apache::thrift::protocol::TType _vtype56;
+                    xfer += iprot->readMapBegin(_ktype55, _vtype56, _size54);
+                    uint32_t _i58;
+                    for (_i58 = 0; _i58 < _size54; ++_i58)
                     {
-                      std::string _key55;
-                      xfer += iprot->readString(_key55);
-                      PropValueUnion& _val56 = _val49[_key55];
-                      xfer += _val56.read(iprot);
+                      std::string _key59;
+                      xfer += iprot->readString(_key59);
+                      PropValueUnion& _val60 = _val53[_key59];
+                      xfer += _val60.read(iprot);
                     }
                     xfer += iprot->readMapEnd();
                   }
@@ -500,6 +665,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();
   xfer += oprot->writeStructBegin("Complex");
 
   xfer += oprot->writeFieldBegin("aint", ::apache::thrift::protocol::T_I32, 1);
@@ -513,10 +679,10 @@ uint32_t Complex::write(::apache::thrift::protocol::TProtocol* oprot) const {
   xfer += oprot->writeFieldBegin("lint", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I32, static_cast<uint32_t>(this->lint.size()));
-    std::vector<int32_t> ::const_iterator _iter57;
-    for (_iter57 = this->lint.begin(); _iter57 != this->lint.end(); ++_iter57)
+    std::vector<int32_t> ::const_iterator _iter61;
+    for (_iter61 = this->lint.begin(); _iter61 != this->lint.end(); ++_iter61)
     {
-      xfer += oprot->writeI32((*_iter57));
+      xfer += oprot->writeI32((*_iter61));
     }
     xfer += oprot->writeListEnd();
   }
@@ -525,10 +691,10 @@ uint32_t Complex::write(::apache::thrift::protocol::TProtocol* oprot) const {
   xfer += oprot->writeFieldBegin("lString", ::apache::thrift::protocol::T_LIST, 4);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->lString.size()));
-    std::vector<std::string> ::const_iterator _iter58;
-    for (_iter58 = this->lString.begin(); _iter58 != this->lString.end(); ++_iter58)
+    std::vector<std::string> ::const_iterator _iter62;
+    for (_iter62 = this->lString.begin(); _iter62 != this->lString.end(); ++_iter62)
     {
-      xfer += oprot->writeString((*_iter58));
+      xfer += oprot->writeString((*_iter62));
     }
     xfer += oprot->writeListEnd();
   }
@@ -537,10 +703,10 @@ uint32_t Complex::write(::apache::thrift::protocol::TProtocol* oprot) const {
   xfer += oprot->writeFieldBegin("lintString", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->lintString.size()));
-    std::vector<IntString> ::const_iterator _iter59;
-    for (_iter59 = this->lintString.begin(); _iter59 != this->lintString.end(); ++_iter59)
+    std::vector<IntString> ::const_iterator _iter63;
+    for (_iter63 = this->lintString.begin(); _iter63 != this->lintString.end(); ++_iter63)
     {
-      xfer += (*_iter59).write(oprot);
+      xfer += (*_iter63).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
@@ -549,11 +715,11 @@ uint32_t Complex::write(::apache::thrift::protocol::TProtocol* oprot) const {
   xfer += oprot->writeFieldBegin("mStringString", ::apache::thrift::protocol::T_MAP, 6);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->mStringString.size()));
-    std::map<std::string, std::string> ::const_iterator _iter60;
-    for (_iter60 = this->mStringString.begin(); _iter60 != this->mStringString.end(); ++_iter60)
+    std::map<std::string, std::string> ::const_iterator _iter64;
+    for (_iter64 = this->mStringString.begin(); _iter64 != this->mStringString.end(); ++_iter64)
     {
-      xfer += oprot->writeString(_iter60->first);
-      xfer += oprot->writeString(_iter60->second);
+      xfer += oprot->writeString(_iter64->first);
+      xfer += oprot->writeString(_iter64->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -562,23 +728,23 @@ uint32_t Complex::write(::apache::thrift::protocol::TProtocol* oprot) const {
   xfer += oprot->writeFieldBegin("attributes", ::apache::thrift::protocol::T_MAP, 7);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_MAP, static_cast<uint32_t>(this->attributes.size()));
-    std::map<std::string, std::map<std::string, std::map<std::string, PropValueUnion> > > ::const_iterator _iter61;
-    for (_iter61 = this->attributes.begin(); _iter61 != this->attributes.end(); ++_iter61)
+    std::map<std::string, std::map<std::string, std::map<std::string, PropValueUnion> > > ::const_iterator _iter65;
+    for (_iter65 = this->attributes.begin(); _iter65 != this->attributes.end(); ++_iter65)
     {
-      xfer += oprot->writeString(_iter61->first);
+      xfer += oprot->writeString(_iter65->first);
       {
-        xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_MAP, static_cast<uint32_t>(_iter61->second.size()));
-        std::map<std::string, std::map<std::string, PropValueUnion> > ::const_iterator _iter62;
-        for (_iter62 = _iter61->second.begin(); _iter62 != _iter61->second.end(); ++_iter62)
+        xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_MAP, static_cast<uint32_t>(_iter65->second.size()));
+        std::map<std::string, std::map<std::string, PropValueUnion> > ::const_iterator _iter66;
+        for (_iter66 = _iter65->second.begin(); _iter66 != _iter65->second.end(); ++_iter66)
         {
-          xfer += oprot->writeString(_iter62->first);
+          xfer += oprot->writeString(_iter66->first);
           {
-            xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(_iter62->second.size()));
-            std::map<std::string, PropValueUnion> ::const_iterator _iter63;
-            for (_iter63 = _iter62->second.begin(); _iter63 != _iter62->second.end(); ++_iter63)
+            xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(_iter66->second.size()));
+            std::map<std::string, PropValueUnion> ::const_iterator _iter67;
+            for (_iter67 = _iter66->second.begin(); _iter67 != _iter66->second.end(); ++_iter67)
             {
-              xfer += oprot->writeString(_iter63->first);
-              xfer += _iter63->second.write(oprot);
+              xfer += oprot->writeString(_iter67->first);
+              xfer += _iter67->second.write(oprot);
             }
             xfer += oprot->writeMapEnd();
           }
@@ -604,6 +770,7 @@ uint32_t Complex::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -622,6 +789,63 @@ void swap(Complex &a, Complex &b) {
   swap(a.__isset, b.__isset);
 }
 
+Complex::Complex(const Complex& other68) {
+  aint = other68.aint;
+  aString = other68.aString;
+  lint = other68.lint;
+  lString = other68.lString;
+  lintString = other68.lintString;
+  mStringString = other68.mStringString;
+  attributes = other68.attributes;
+  unionField1 = other68.unionField1;
+  unionField2 = other68.unionField2;
+  unionField3 = other68.unionField3;
+  __isset = other68.__isset;
+}
+Complex& Complex::operator=(const Complex& other69) {
+  aint = other69.aint;
+  aString = other69.aString;
+  lint = other69.lint;
+  lString = other69.lString;
+  lintString = other69.lintString;
+  mStringString = other69.mStringString;
+  attributes = other69.attributes;
+  unionField1 = other69.unionField1;
+  unionField2 = other69.unionField2;
+  unionField3 = other69.unionField3;
+  __isset = other69.__isset;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const Complex& obj) {
+  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 << ")";
+  return out;
+}
+
+
+SetIntString::~SetIntString() throw() {
+}
+
+
+void SetIntString::__set_sIntString(const std::set<IntString> & val) {
+  this->sIntString = val;
+}
+
+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};
 
@@ -649,15 +873,15 @@ uint32_t SetIntString::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_SET) {
           {
             this->sIntString.clear();
-            uint32_t _size64;
-            ::apache::thrift::protocol::TType _etype67;
-            xfer += iprot->readSetBegin(_etype67, _size64);
-            uint32_t _i68;
-            for (_i68 = 0; _i68 < _size64; ++_i68)
+            uint32_t _size70;
+            ::apache::thrift::protocol::TType _etype73;
+            xfer += iprot->readSetBegin(_etype73, _size70);
+            uint32_t _i74;
+            for (_i74 = 0; _i74 < _size70; ++_i74)
             {
-              IntString _elem69;
-              xfer += _elem69.read(iprot);
-              this->sIntString.insert(_elem69);
+              IntString _elem75;
+              xfer += _elem75.read(iprot);
+              this->sIntString.insert(_elem75);
             }
             xfer += iprot->readSetEnd();
           }
@@ -688,15 +912,16 @@ 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();
   xfer += oprot->writeStructBegin("SetIntString");
 
   xfer += oprot->writeFieldBegin("sIntString", ::apache::thrift::protocol::T_SET, 1);
   {
     xfer += oprot->writeSetBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->sIntString.size()));
-    std::set<IntString> ::const_iterator _iter70;
-    for (_iter70 = this->sIntString.begin(); _iter70 != this->sIntString.end(); ++_iter70)
+    std::set<IntString> ::const_iterator _iter76;
+    for (_iter76 = this->sIntString.begin(); _iter76 != this->sIntString.end(); ++_iter76)
     {
-      xfer += (*_iter70).write(oprot);
+      xfer += (*_iter76).write(oprot);
     }
     xfer += oprot->writeSetEnd();
   }
@@ -708,6 +933,7 @@ uint32_t SetIntString::write(::apache::thrift::protocol::TProtocol* oprot) const
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
   return xfer;
 }
 
@@ -718,4 +944,24 @@ void swap(SetIntString &a, SetIntString &b) {
   swap(a.__isset, b.__isset);
 }
 
+SetIntString::SetIntString(const SetIntString& other77) {
+  sIntString = other77.sIntString;
+  aString = other77.aString;
+  __isset = other77.__isset;
+}
+SetIntString& SetIntString::operator=(const SetIntString& other78) {
+  sIntString = other78.sIntString;
+  aString = other78.aString;
+  __isset = other78.__isset;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const SetIntString& obj) {
+  using apache::thrift::to_string;
+  out << "SetIntString(";
+  out << "sIntString=" << to_string(obj.sIntString);
+  out << ", " << "aString=" << to_string(obj.aString);
+  out << ")";
+  return out;
+}
+
 

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/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 3f4c760..2637720 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.0)
+ * Autogenerated by Thrift Compiler (0.9.2)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -7,24 +7,35 @@
 #ifndef complex_TYPES_H
 #define complex_TYPES_H
 
+#include <iosfwd>
+
 #include <thrift/Thrift.h>
 #include <thrift/TApplicationException.h>
 #include <thrift/protocol/TProtocol.h>
 #include <thrift/transport/TTransport.h>
 
+#include <thrift/cxxfunctional.h>
+
+
+
 
+class PropValueUnion;
 
+class IntString;
 
+class Complex;
+
+class SetIntString;
 
 typedef struct _PropValueUnion__isset {
   _PropValueUnion__isset() : intValue(false), longValue(false), stringValue(false), doubleValue(false), flag(false), lString(false), unionMStringString(false) {}
-  bool intValue;
-  bool longValue;
-  bool stringValue;
-  bool doubleValue;
-  bool flag;
-  bool lString;
-  bool unionMStringString;
+  bool intValue :1;
+  bool longValue :1;
+  bool stringValue :1;
+  bool doubleValue :1;
+  bool flag :1;
+  bool lString :1;
+  bool unionMStringString :1;
 } _PropValueUnion__isset;
 
 class PropValueUnion {
@@ -33,11 +44,12 @@ class PropValueUnion {
   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) {
   }
 
-  virtual ~PropValueUnion() throw() {}
-
+  virtual ~PropValueUnion() throw();
   int32_t intValue;
   int64_t longValue;
   std::string stringValue;
@@ -48,38 +60,19 @@ class PropValueUnion {
 
   _PropValueUnion__isset __isset;
 
-  void __set_intValue(const int32_t val) {
-    intValue = val;
-    __isset.intValue = true;
-  }
+  void __set_intValue(const int32_t val);
 
-  void __set_longValue(const int64_t val) {
-    longValue = val;
-    __isset.longValue = true;
-  }
+  void __set_longValue(const int64_t val);
 
-  void __set_stringValue(const std::string& val) {
-    stringValue = val;
-    __isset.stringValue = true;
-  }
+  void __set_stringValue(const std::string& val);
 
-  void __set_doubleValue(const double val) {
-    doubleValue = val;
-    __isset.doubleValue = true;
-  }
+  void __set_doubleValue(const double val);
 
-  void __set_flag(const bool val) {
-    flag = val;
-    __isset.flag = true;
-  }
+  void __set_flag(const bool val);
 
-  void __set_lString(const std::vector<std::string> & val) {
-    lString = val;
-  }
+  void __set_lString(const std::vector<std::string> & val);
 
-  void __set_unionMStringString(const std::map<std::string, std::string> & val) {
-    unionMStringString = val;
-  }
+  void __set_unionMStringString(const std::map<std::string, std::string> & val);
 
   bool operator == (const PropValueUnion & rhs) const
   {
@@ -118,15 +111,16 @@ 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);
 };
 
 void swap(PropValueUnion &a, PropValueUnion &b);
 
 typedef struct _IntString__isset {
   _IntString__isset() : myint(false), myString(false), underscore_int(false) {}
-  bool myint;
-  bool myString;
-  bool underscore_int;
+  bool myint :1;
+  bool myString :1;
+  bool underscore_int :1;
 } _IntString__isset;
 
 class IntString {
@@ -135,28 +129,23 @@ class IntString {
   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) {
   }
 
-  virtual ~IntString() throw() {}
-
+  virtual ~IntString() throw();
   int32_t myint;
   std::string myString;
   int32_t underscore_int;
 
   _IntString__isset __isset;
 
-  void __set_myint(const int32_t val) {
-    myint = val;
-  }
+  void __set_myint(const int32_t val);
 
-  void __set_myString(const std::string& val) {
-    myString = val;
-  }
+  void __set_myString(const std::string& val);
 
-  void __set_underscore_int(const int32_t val) {
-    underscore_int = val;
-  }
+  void __set_underscore_int(const int32_t val);
 
   bool operator == (const IntString & rhs) const
   {
@@ -177,22 +166,23 @@ 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);
 };
 
 void swap(IntString &a, IntString &b);
 
 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;
-  bool aString;
-  bool lint;
-  bool lString;
-  bool lintString;
-  bool mStringString;
-  bool attributes;
-  bool unionField1;
-  bool unionField2;
-  bool unionField3;
+  bool aint :1;
+  bool aString :1;
+  bool lint :1;
+  bool lString :1;
+  bool lintString :1;
+  bool mStringString :1;
+  bool attributes :1;
+  bool unionField1 :1;
+  bool unionField2 :1;
+  bool unionField3 :1;
 } _Complex__isset;
 
 class Complex {
@@ -201,11 +191,12 @@ class Complex {
   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() {
   }
 
-  virtual ~Complex() throw() {}
-
+  virtual ~Complex() throw();
   int32_t aint;
   std::string aString;
   std::vector<int32_t>  lint;
@@ -219,45 +210,25 @@ class Complex {
 
   _Complex__isset __isset;
 
-  void __set_aint(const int32_t val) {
-    aint = val;
-  }
+  void __set_aint(const int32_t val);
 
-  void __set_aString(const std::string& val) {
-    aString = val;
-  }
+  void __set_aString(const std::string& val);
 
-  void __set_lint(const std::vector<int32_t> & val) {
-    lint = val;
-  }
+  void __set_lint(const std::vector<int32_t> & val);
 
-  void __set_lString(const std::vector<std::string> & val) {
-    lString = val;
-  }
+  void __set_lString(const std::vector<std::string> & val);
 
-  void __set_lintString(const std::vector<IntString> & val) {
-    lintString = val;
-  }
+  void __set_lintString(const std::vector<IntString> & val);
 
-  void __set_mStringString(const std::map<std::string, std::string> & val) {
-    mStringString = val;
-  }
+  void __set_mStringString(const std::map<std::string, std::string> & val);
 
-  void __set_attributes(const std::map<std::string, std::map<std::string, std::map<std::string, PropValueUnion> > > & val) {
-    attributes = val;
-  }
+  void __set_attributes(const std::map<std::string, std::map<std::string, std::map<std::string, PropValueUnion> > > & val);
 
-  void __set_unionField1(const PropValueUnion& val) {
-    unionField1 = val;
-  }
+  void __set_unionField1(const PropValueUnion& val);
 
-  void __set_unionField2(const PropValueUnion& val) {
-    unionField2 = val;
-  }
+  void __set_unionField2(const PropValueUnion& val);
 
-  void __set_unionField3(const PropValueUnion& val) {
-    unionField3 = val;
-  }
+  void __set_unionField3(const PropValueUnion& val);
 
   bool operator == (const Complex & rhs) const
   {
@@ -292,14 +263,15 @@ 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);
 };
 
 void swap(Complex &a, Complex &b);
 
 typedef struct _SetIntString__isset {
   _SetIntString__isset() : sIntString(false), aString(false) {}
-  bool sIntString;
-  bool aString;
+  bool sIntString :1;
+  bool aString :1;
 } _SetIntString__isset;
 
 class SetIntString {
@@ -308,23 +280,20 @@ class SetIntString {
   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() {
   }
 
-  virtual ~SetIntString() throw() {}
-
+  virtual ~SetIntString() throw();
   std::set<IntString>  sIntString;
   std::string aString;
 
   _SetIntString__isset __isset;
 
-  void __set_sIntString(const std::set<IntString> & val) {
-    sIntString = val;
-  }
+  void __set_sIntString(const std::set<IntString> & val);
 
-  void __set_aString(const std::string& val) {
-    aString = val;
-  }
+  void __set_aString(const std::string& val);
 
   bool operator == (const SetIntString & rhs) const
   {
@@ -343,6 +312,7 @@ 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);
 };
 
 void swap(SetIntString &a, SetIntString &b);

http://git-wip-us.apache.org/repos/asf/hive/blob/42216997/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 4bd82a1..9a18a48 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.0)
+ * Autogenerated by Thrift Compiler (0.9.2)
  *
  * 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/42216997/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 9897f8f..1b0558f 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.0)
+ * Autogenerated by Thrift Compiler (0.9.2)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated