You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by no...@apache.org on 2016/01/26 23:07:50 UTC

[1/2] parquet-cpp git commit: PARQUET-469: Roll back Thrift thirdparty and compiled sources to 0.9.0

Repository: parquet-cpp
Updated Branches:
  refs/heads/master b31baa0b0 -> 7555cff7d


http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/7555cff7/src/parquet/thrift/parquet_types.h
----------------------------------------------------------------------
diff --git a/src/parquet/thrift/parquet_types.h b/src/parquet/thrift/parquet_types.h
index 5da94c8..466daf4 100644
--- a/src/parquet/thrift/parquet_types.h
+++ b/src/parquet/thrift/parquet_types.h
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (0.9.3)
+ * Autogenerated by Thrift Compiler (0.9.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -7,14 +7,11 @@
 #ifndef parquet_TYPES_H
 #define parquet_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>
 
 
 namespace parquet {
@@ -108,51 +105,25 @@ struct PageType {
 
 extern const std::map<int, const char*> _PageType_VALUES_TO_NAMES;
 
-class Statistics;
-
-class SchemaElement;
-
-class DataPageHeader;
-
-class IndexPageHeader;
-
-class DictionaryPageHeader;
-
-class DataPageHeaderV2;
-
-class PageHeader;
-
-class KeyValue;
-
-class SortingColumn;
-
-class PageEncodingStats;
-
-class ColumnMetaData;
-
-class ColumnChunk;
-
-class RowGroup;
-
-class FileMetaData;
-
 typedef struct _Statistics__isset {
   _Statistics__isset() : max(false), min(false), null_count(false), distinct_count(false) {}
-  bool max :1;
-  bool min :1;
-  bool null_count :1;
-  bool distinct_count :1;
+  bool max;
+  bool min;
+  bool null_count;
+  bool distinct_count;
 } _Statistics__isset;
 
 class Statistics {
  public:
 
-  Statistics(const Statistics&);
-  Statistics& operator=(const Statistics&);
+  static const char* ascii_fingerprint; // = "CE004821871820DD79A8FD98BB101F6D";
+  static const uint8_t binary_fingerprint[16]; // = {0xCE,0x00,0x48,0x21,0x87,0x18,0x20,0xDD,0x79,0xA8,0xFD,0x98,0xBB,0x10,0x1F,0x6D};
+
   Statistics() : max(), min(), null_count(0), distinct_count(0) {
   }
 
-  virtual ~Statistics() throw();
+  virtual ~Statistics() throw() {}
+
   std::string max;
   std::string min;
   int64_t null_count;
@@ -160,13 +131,25 @@ class Statistics {
 
   _Statistics__isset __isset;
 
-  void __set_max(const std::string& val);
+  void __set_max(const std::string& val) {
+    max = val;
+    __isset.max = true;
+  }
 
-  void __set_min(const std::string& val);
+  void __set_min(const std::string& val) {
+    min = val;
+    __isset.min = true;
+  }
 
-  void __set_null_count(const int64_t val);
+  void __set_null_count(const int64_t val) {
+    null_count = val;
+    __isset.null_count = true;
+  }
 
-  void __set_distinct_count(const int64_t val);
+  void __set_distinct_count(const int64_t val) {
+    distinct_count = val;
+    __isset.distinct_count = true;
+  }
 
   bool operator == (const Statistics & rhs) const
   {
@@ -197,38 +180,33 @@ class Statistics {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(Statistics &a, Statistics &b);
 
-inline std::ostream& operator<<(std::ostream& out, const Statistics& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 typedef struct _SchemaElement__isset {
   _SchemaElement__isset() : type(false), type_length(false), repetition_type(false), num_children(false), converted_type(false), scale(false), precision(false), field_id(false) {}
-  bool type :1;
-  bool type_length :1;
-  bool repetition_type :1;
-  bool num_children :1;
-  bool converted_type :1;
-  bool scale :1;
-  bool precision :1;
-  bool field_id :1;
+  bool type;
+  bool type_length;
+  bool repetition_type;
+  bool num_children;
+  bool converted_type;
+  bool scale;
+  bool precision;
+  bool field_id;
 } _SchemaElement__isset;
 
 class SchemaElement {
  public:
 
-  SchemaElement(const SchemaElement&);
-  SchemaElement& operator=(const SchemaElement&);
+  static const char* ascii_fingerprint; // = "22DC89BFD9E48E604F01FB8CFDFB8229";
+  static const uint8_t binary_fingerprint[16]; // = {0x22,0xDC,0x89,0xBF,0xD9,0xE4,0x8E,0x60,0x4F,0x01,0xFB,0x8C,0xFD,0xFB,0x82,0x29};
+
   SchemaElement() : type((Type::type)0), type_length(0), repetition_type((FieldRepetitionType::type)0), name(), num_children(0), converted_type((ConvertedType::type)0), scale(0), precision(0), field_id(0) {
   }
 
-  virtual ~SchemaElement() throw();
+  virtual ~SchemaElement() throw() {}
+
   Type::type type;
   int32_t type_length;
   FieldRepetitionType::type repetition_type;
@@ -241,23 +219,49 @@ class SchemaElement {
 
   _SchemaElement__isset __isset;
 
-  void __set_type(const Type::type val);
+  void __set_type(const Type::type val) {
+    type = val;
+    __isset.type = true;
+  }
 
-  void __set_type_length(const int32_t val);
+  void __set_type_length(const int32_t val) {
+    type_length = val;
+    __isset.type_length = true;
+  }
 
-  void __set_repetition_type(const FieldRepetitionType::type val);
+  void __set_repetition_type(const FieldRepetitionType::type val) {
+    repetition_type = val;
+    __isset.repetition_type = true;
+  }
 
-  void __set_name(const std::string& val);
+  void __set_name(const std::string& val) {
+    name = val;
+  }
 
-  void __set_num_children(const int32_t val);
+  void __set_num_children(const int32_t val) {
+    num_children = val;
+    __isset.num_children = true;
+  }
 
-  void __set_converted_type(const ConvertedType::type val);
+  void __set_converted_type(const ConvertedType::type val) {
+    converted_type = val;
+    __isset.converted_type = true;
+  }
 
-  void __set_scale(const int32_t val);
+  void __set_scale(const int32_t val) {
+    scale = val;
+    __isset.scale = true;
+  }
 
-  void __set_precision(const int32_t val);
+  void __set_precision(const int32_t val) {
+    precision = val;
+    __isset.precision = true;
+  }
 
-  void __set_field_id(const int32_t val);
+  void __set_field_id(const int32_t val) {
+    field_id = val;
+    __isset.field_id = true;
+  }
 
   bool operator == (const SchemaElement & rhs) const
   {
@@ -306,31 +310,26 @@ class SchemaElement {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(SchemaElement &a, SchemaElement &b);
 
-inline std::ostream& operator<<(std::ostream& out, const SchemaElement& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 typedef struct _DataPageHeader__isset {
   _DataPageHeader__isset() : statistics(false) {}
-  bool statistics :1;
+  bool statistics;
 } _DataPageHeader__isset;
 
 class DataPageHeader {
  public:
 
-  DataPageHeader(const DataPageHeader&);
-  DataPageHeader& operator=(const DataPageHeader&);
+  static const char* ascii_fingerprint; // = "5FC1792B0483E9C984475384165040B1";
+  static const uint8_t binary_fingerprint[16]; // = {0x5F,0xC1,0x79,0x2B,0x04,0x83,0xE9,0xC9,0x84,0x47,0x53,0x84,0x16,0x50,0x40,0xB1};
+
   DataPageHeader() : num_values(0), encoding((Encoding::type)0), definition_level_encoding((Encoding::type)0), repetition_level_encoding((Encoding::type)0) {
   }
 
-  virtual ~DataPageHeader() throw();
+  virtual ~DataPageHeader() throw() {}
+
   int32_t num_values;
   Encoding::type encoding;
   Encoding::type definition_level_encoding;
@@ -339,15 +338,26 @@ class DataPageHeader {
 
   _DataPageHeader__isset __isset;
 
-  void __set_num_values(const int32_t val);
+  void __set_num_values(const int32_t val) {
+    num_values = val;
+  }
 
-  void __set_encoding(const Encoding::type val);
+  void __set_encoding(const Encoding::type val) {
+    encoding = val;
+  }
 
-  void __set_definition_level_encoding(const Encoding::type val);
+  void __set_definition_level_encoding(const Encoding::type val) {
+    definition_level_encoding = val;
+  }
 
-  void __set_repetition_level_encoding(const Encoding::type val);
+  void __set_repetition_level_encoding(const Encoding::type val) {
+    repetition_level_encoding = val;
+  }
 
-  void __set_statistics(const Statistics& val);
+  void __set_statistics(const Statistics& val) {
+    statistics = val;
+    __isset.statistics = true;
+  }
 
   bool operator == (const DataPageHeader & rhs) const
   {
@@ -374,27 +384,22 @@ class DataPageHeader {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(DataPageHeader &a, DataPageHeader &b);
 
-inline std::ostream& operator<<(std::ostream& out, const DataPageHeader& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 
 class IndexPageHeader {
  public:
 
-  IndexPageHeader(const IndexPageHeader&);
-  IndexPageHeader& operator=(const IndexPageHeader&);
+  static const char* ascii_fingerprint; // = "99914B932BD37A50B983C5E7C90AE93B";
+  static const uint8_t binary_fingerprint[16]; // = {0x99,0x91,0x4B,0x93,0x2B,0xD3,0x7A,0x50,0xB9,0x83,0xC5,0xE7,0xC9,0x0A,0xE9,0x3B};
+
   IndexPageHeader() {
   }
 
-  virtual ~IndexPageHeader() throw();
+  virtual ~IndexPageHeader() throw() {}
+
 
   bool operator == (const IndexPageHeader & /* rhs */) const
   {
@@ -409,42 +414,44 @@ class IndexPageHeader {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(IndexPageHeader &a, IndexPageHeader &b);
 
-inline std::ostream& operator<<(std::ostream& out, const IndexPageHeader& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 typedef struct _DictionaryPageHeader__isset {
   _DictionaryPageHeader__isset() : is_sorted(false) {}
-  bool is_sorted :1;
+  bool is_sorted;
 } _DictionaryPageHeader__isset;
 
 class DictionaryPageHeader {
  public:
 
-  DictionaryPageHeader(const DictionaryPageHeader&);
-  DictionaryPageHeader& operator=(const DictionaryPageHeader&);
+  static const char* ascii_fingerprint; // = "B149E4528254D495610C22AE4BD539C5";
+  static const uint8_t binary_fingerprint[16]; // = {0xB1,0x49,0xE4,0x52,0x82,0x54,0xD4,0x95,0x61,0x0C,0x22,0xAE,0x4B,0xD5,0x39,0xC5};
+
   DictionaryPageHeader() : num_values(0), encoding((Encoding::type)0), is_sorted(0) {
   }
 
-  virtual ~DictionaryPageHeader() throw();
+  virtual ~DictionaryPageHeader() throw() {}
+
   int32_t num_values;
   Encoding::type encoding;
   bool is_sorted;
 
   _DictionaryPageHeader__isset __isset;
 
-  void __set_num_values(const int32_t val);
+  void __set_num_values(const int32_t val) {
+    num_values = val;
+  }
 
-  void __set_encoding(const Encoding::type val);
+  void __set_encoding(const Encoding::type val) {
+    encoding = val;
+  }
 
-  void __set_is_sorted(const bool val);
+  void __set_is_sorted(const bool val) {
+    is_sorted = val;
+    __isset.is_sorted = true;
+  }
 
   bool operator == (const DictionaryPageHeader & rhs) const
   {
@@ -467,32 +474,27 @@ class DictionaryPageHeader {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(DictionaryPageHeader &a, DictionaryPageHeader &b);
 
-inline std::ostream& operator<<(std::ostream& out, const DictionaryPageHeader& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 typedef struct _DataPageHeaderV2__isset {
   _DataPageHeaderV2__isset() : is_compressed(true), statistics(false) {}
-  bool is_compressed :1;
-  bool statistics :1;
+  bool is_compressed;
+  bool statistics;
 } _DataPageHeaderV2__isset;
 
 class DataPageHeaderV2 {
  public:
 
-  DataPageHeaderV2(const DataPageHeaderV2&);
-  DataPageHeaderV2& operator=(const DataPageHeaderV2&);
+  static const char* ascii_fingerprint; // = "69FF2F6BD1A443440D5E46ABA5A3A919";
+  static const uint8_t binary_fingerprint[16]; // = {0x69,0xFF,0x2F,0x6B,0xD1,0xA4,0x43,0x44,0x0D,0x5E,0x46,0xAB,0xA5,0xA3,0xA9,0x19};
+
   DataPageHeaderV2() : num_values(0), num_nulls(0), num_rows(0), encoding((Encoding::type)0), definition_levels_byte_length(0), repetition_levels_byte_length(0), is_compressed(true) {
   }
 
-  virtual ~DataPageHeaderV2() throw();
+  virtual ~DataPageHeaderV2() throw() {}
+
   int32_t num_values;
   int32_t num_nulls;
   int32_t num_rows;
@@ -504,21 +506,39 @@ class DataPageHeaderV2 {
 
   _DataPageHeaderV2__isset __isset;
 
-  void __set_num_values(const int32_t val);
+  void __set_num_values(const int32_t val) {
+    num_values = val;
+  }
 
-  void __set_num_nulls(const int32_t val);
+  void __set_num_nulls(const int32_t val) {
+    num_nulls = val;
+  }
 
-  void __set_num_rows(const int32_t val);
+  void __set_num_rows(const int32_t val) {
+    num_rows = val;
+  }
 
-  void __set_encoding(const Encoding::type val);
+  void __set_encoding(const Encoding::type val) {
+    encoding = val;
+  }
 
-  void __set_definition_levels_byte_length(const int32_t val);
+  void __set_definition_levels_byte_length(const int32_t val) {
+    definition_levels_byte_length = val;
+  }
 
-  void __set_repetition_levels_byte_length(const int32_t val);
+  void __set_repetition_levels_byte_length(const int32_t val) {
+    repetition_levels_byte_length = val;
+  }
 
-  void __set_is_compressed(const bool val);
+  void __set_is_compressed(const bool val) {
+    is_compressed = val;
+    __isset.is_compressed = true;
+  }
 
-  void __set_statistics(const Statistics& val);
+  void __set_statistics(const Statistics& val) {
+    statistics = val;
+    __isset.statistics = true;
+  }
 
   bool operator == (const DataPageHeaderV2 & rhs) const
   {
@@ -553,35 +573,30 @@ class DataPageHeaderV2 {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(DataPageHeaderV2 &a, DataPageHeaderV2 &b);
 
-inline std::ostream& operator<<(std::ostream& out, const DataPageHeaderV2& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 typedef struct _PageHeader__isset {
   _PageHeader__isset() : crc(false), data_page_header(false), index_page_header(false), dictionary_page_header(false), data_page_header_v2(false) {}
-  bool crc :1;
-  bool data_page_header :1;
-  bool index_page_header :1;
-  bool dictionary_page_header :1;
-  bool data_page_header_v2 :1;
+  bool crc;
+  bool data_page_header;
+  bool index_page_header;
+  bool dictionary_page_header;
+  bool data_page_header_v2;
 } _PageHeader__isset;
 
 class PageHeader {
  public:
 
-  PageHeader(const PageHeader&);
-  PageHeader& operator=(const PageHeader&);
+  static const char* ascii_fingerprint; // = "B5BD2BDF3756C883A58B30B9C9F204A0";
+  static const uint8_t binary_fingerprint[16]; // = {0xB5,0xBD,0x2B,0xDF,0x37,0x56,0xC8,0x83,0xA5,0x8B,0x30,0xB9,0xC9,0xF2,0x04,0xA0};
+
   PageHeader() : type((PageType::type)0), uncompressed_page_size(0), compressed_page_size(0), crc(0) {
   }
 
-  virtual ~PageHeader() throw();
+  virtual ~PageHeader() throw() {}
+
   PageType::type type;
   int32_t uncompressed_page_size;
   int32_t compressed_page_size;
@@ -593,21 +608,42 @@ class PageHeader {
 
   _PageHeader__isset __isset;
 
-  void __set_type(const PageType::type val);
+  void __set_type(const PageType::type val) {
+    type = val;
+  }
 
-  void __set_uncompressed_page_size(const int32_t val);
+  void __set_uncompressed_page_size(const int32_t val) {
+    uncompressed_page_size = val;
+  }
 
-  void __set_compressed_page_size(const int32_t val);
+  void __set_compressed_page_size(const int32_t val) {
+    compressed_page_size = val;
+  }
 
-  void __set_crc(const int32_t val);
+  void __set_crc(const int32_t val) {
+    crc = val;
+    __isset.crc = true;
+  }
 
-  void __set_data_page_header(const DataPageHeader& val);
+  void __set_data_page_header(const DataPageHeader& val) {
+    data_page_header = val;
+    __isset.data_page_header = true;
+  }
 
-  void __set_index_page_header(const IndexPageHeader& val);
+  void __set_index_page_header(const IndexPageHeader& val) {
+    index_page_header = val;
+    __isset.index_page_header = true;
+  }
 
-  void __set_dictionary_page_header(const DictionaryPageHeader& val);
+  void __set_dictionary_page_header(const DictionaryPageHeader& val) {
+    dictionary_page_header = val;
+    __isset.dictionary_page_header = true;
+  }
 
-  void __set_data_page_header_v2(const DataPageHeaderV2& val);
+  void __set_data_page_header_v2(const DataPageHeaderV2& val) {
+    data_page_header_v2 = val;
+    __isset.data_page_header_v2 = true;
+  }
 
   bool operator == (const PageHeader & rhs) const
   {
@@ -648,39 +684,39 @@ class PageHeader {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(PageHeader &a, PageHeader &b);
 
-inline std::ostream& operator<<(std::ostream& out, const PageHeader& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 typedef struct _KeyValue__isset {
   _KeyValue__isset() : value(false) {}
-  bool value :1;
+  bool value;
 } _KeyValue__isset;
 
 class KeyValue {
  public:
 
-  KeyValue(const KeyValue&);
-  KeyValue& operator=(const KeyValue&);
+  static const char* ascii_fingerprint; // = "5B708A954C550ECA9C1A49D3C5CAFAB9";
+  static const uint8_t binary_fingerprint[16]; // = {0x5B,0x70,0x8A,0x95,0x4C,0x55,0x0E,0xCA,0x9C,0x1A,0x49,0xD3,0xC5,0xCA,0xFA,0xB9};
+
   KeyValue() : key(), value() {
   }
 
-  virtual ~KeyValue() throw();
+  virtual ~KeyValue() throw() {}
+
   std::string key;
   std::string value;
 
   _KeyValue__isset __isset;
 
-  void __set_key(const std::string& val);
+  void __set_key(const std::string& val) {
+    key = val;
+  }
 
-  void __set_value(const std::string& val);
+  void __set_value(const std::string& val) {
+    value = val;
+    __isset.value = true;
+  }
 
   bool operator == (const KeyValue & rhs) const
   {
@@ -701,36 +737,37 @@ class KeyValue {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(KeyValue &a, KeyValue &b);
 
-inline std::ostream& operator<<(std::ostream& out, const KeyValue& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 
 class SortingColumn {
  public:
 
-  SortingColumn(const SortingColumn&);
-  SortingColumn& operator=(const SortingColumn&);
+  static const char* ascii_fingerprint; // = "F079C2D58A783AD90F9BE05D10DBBC6F";
+  static const uint8_t binary_fingerprint[16]; // = {0xF0,0x79,0xC2,0xD5,0x8A,0x78,0x3A,0xD9,0x0F,0x9B,0xE0,0x5D,0x10,0xDB,0xBC,0x6F};
+
   SortingColumn() : column_idx(0), descending(0), nulls_first(0) {
   }
 
-  virtual ~SortingColumn() throw();
+  virtual ~SortingColumn() throw() {}
+
   int32_t column_idx;
   bool descending;
   bool nulls_first;
 
-  void __set_column_idx(const int32_t val);
+  void __set_column_idx(const int32_t val) {
+    column_idx = val;
+  }
 
-  void __set_descending(const bool val);
+  void __set_descending(const bool val) {
+    descending = val;
+  }
 
-  void __set_nulls_first(const bool val);
+  void __set_nulls_first(const bool val) {
+    nulls_first = val;
+  }
 
   bool operator == (const SortingColumn & rhs) const
   {
@@ -751,36 +788,37 @@ class SortingColumn {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(SortingColumn &a, SortingColumn &b);
 
-inline std::ostream& operator<<(std::ostream& out, const SortingColumn& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 
 class PageEncodingStats {
  public:
 
-  PageEncodingStats(const PageEncodingStats&);
-  PageEncodingStats& operator=(const PageEncodingStats&);
+  static const char* ascii_fingerprint; // = "5F1BEE04836FAA3055D3EE2492AE44FB";
+  static const uint8_t binary_fingerprint[16]; // = {0x5F,0x1B,0xEE,0x04,0x83,0x6F,0xAA,0x30,0x55,0xD3,0xEE,0x24,0x92,0xAE,0x44,0xFB};
+
   PageEncodingStats() : page_type((PageType::type)0), encoding((Encoding::type)0), count(0) {
   }
 
-  virtual ~PageEncodingStats() throw();
+  virtual ~PageEncodingStats() throw() {}
+
   PageType::type page_type;
   Encoding::type encoding;
   int32_t count;
 
-  void __set_page_type(const PageType::type val);
+  void __set_page_type(const PageType::type val) {
+    page_type = val;
+  }
 
-  void __set_encoding(const Encoding::type val);
+  void __set_encoding(const Encoding::type val) {
+    encoding = val;
+  }
 
-  void __set_count(const int32_t val);
+  void __set_count(const int32_t val) {
+    count = val;
+  }
 
   bool operator == (const PageEncodingStats & rhs) const
   {
@@ -801,35 +839,30 @@ class PageEncodingStats {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(PageEncodingStats &a, PageEncodingStats &b);
 
-inline std::ostream& operator<<(std::ostream& out, const PageEncodingStats& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 typedef struct _ColumnMetaData__isset {
   _ColumnMetaData__isset() : key_value_metadata(false), index_page_offset(false), dictionary_page_offset(false), statistics(false), encoding_stats(false) {}
-  bool key_value_metadata :1;
-  bool index_page_offset :1;
-  bool dictionary_page_offset :1;
-  bool statistics :1;
-  bool encoding_stats :1;
+  bool key_value_metadata;
+  bool index_page_offset;
+  bool dictionary_page_offset;
+  bool statistics;
+  bool encoding_stats;
 } _ColumnMetaData__isset;
 
 class ColumnMetaData {
  public:
 
-  ColumnMetaData(const ColumnMetaData&);
-  ColumnMetaData& operator=(const ColumnMetaData&);
+  static const char* ascii_fingerprint; // = "AEE7317B6DB9719FE828388D537DBD71";
+  static const uint8_t binary_fingerprint[16]; // = {0xAE,0xE7,0x31,0x7B,0x6D,0xB9,0x71,0x9F,0xE8,0x28,0x38,0x8D,0x53,0x7D,0xBD,0x71};
+
   ColumnMetaData() : type((Type::type)0), codec((CompressionCodec::type)0), num_values(0), total_uncompressed_size(0), total_compressed_size(0), data_page_offset(0), index_page_offset(0), dictionary_page_offset(0) {
   }
 
-  virtual ~ColumnMetaData() throw();
+  virtual ~ColumnMetaData() throw() {}
+
   Type::type type;
   std::vector<Encoding::type>  encodings;
   std::vector<std::string>  path_in_schema;
@@ -846,31 +879,62 @@ class ColumnMetaData {
 
   _ColumnMetaData__isset __isset;
 
-  void __set_type(const Type::type val);
+  void __set_type(const Type::type val) {
+    type = val;
+  }
 
-  void __set_encodings(const std::vector<Encoding::type> & val);
+  void __set_encodings(const std::vector<Encoding::type> & val) {
+    encodings = val;
+  }
 
-  void __set_path_in_schema(const std::vector<std::string> & val);
+  void __set_path_in_schema(const std::vector<std::string> & val) {
+    path_in_schema = val;
+  }
 
-  void __set_codec(const CompressionCodec::type val);
+  void __set_codec(const CompressionCodec::type val) {
+    codec = val;
+  }
 
-  void __set_num_values(const int64_t val);
+  void __set_num_values(const int64_t val) {
+    num_values = val;
+  }
 
-  void __set_total_uncompressed_size(const int64_t val);
+  void __set_total_uncompressed_size(const int64_t val) {
+    total_uncompressed_size = val;
+  }
 
-  void __set_total_compressed_size(const int64_t val);
+  void __set_total_compressed_size(const int64_t val) {
+    total_compressed_size = val;
+  }
 
-  void __set_key_value_metadata(const std::vector<KeyValue> & val);
+  void __set_key_value_metadata(const std::vector<KeyValue> & val) {
+    key_value_metadata = val;
+    __isset.key_value_metadata = true;
+  }
 
-  void __set_data_page_offset(const int64_t val);
+  void __set_data_page_offset(const int64_t val) {
+    data_page_offset = val;
+  }
 
-  void __set_index_page_offset(const int64_t val);
+  void __set_index_page_offset(const int64_t val) {
+    index_page_offset = val;
+    __isset.index_page_offset = true;
+  }
 
-  void __set_dictionary_page_offset(const int64_t val);
+  void __set_dictionary_page_offset(const int64_t val) {
+    dictionary_page_offset = val;
+    __isset.dictionary_page_offset = true;
+  }
 
-  void __set_statistics(const Statistics& val);
+  void __set_statistics(const Statistics& val) {
+    statistics = val;
+    __isset.statistics = true;
+  }
 
-  void __set_encoding_stats(const std::vector<PageEncodingStats> & val);
+  void __set_encoding_stats(const std::vector<PageEncodingStats> & val) {
+    encoding_stats = val;
+    __isset.encoding_stats = true;
+  }
 
   bool operator == (const ColumnMetaData & rhs) const
   {
@@ -921,43 +985,46 @@ class ColumnMetaData {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(ColumnMetaData &a, ColumnMetaData &b);
 
-inline std::ostream& operator<<(std::ostream& out, const ColumnMetaData& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 typedef struct _ColumnChunk__isset {
   _ColumnChunk__isset() : file_path(false), meta_data(false) {}
-  bool file_path :1;
-  bool meta_data :1;
+  bool file_path;
+  bool meta_data;
 } _ColumnChunk__isset;
 
 class ColumnChunk {
  public:
 
-  ColumnChunk(const ColumnChunk&);
-  ColumnChunk& operator=(const ColumnChunk&);
+  static const char* ascii_fingerprint; // = "F9F2DFFF1A7805AEF05AA10B23AF3108";
+  static const uint8_t binary_fingerprint[16]; // = {0xF9,0xF2,0xDF,0xFF,0x1A,0x78,0x05,0xAE,0xF0,0x5A,0xA1,0x0B,0x23,0xAF,0x31,0x08};
+
   ColumnChunk() : file_path(), file_offset(0) {
   }
 
-  virtual ~ColumnChunk() throw();
+  virtual ~ColumnChunk() throw() {}
+
   std::string file_path;
   int64_t file_offset;
   ColumnMetaData meta_data;
 
   _ColumnChunk__isset __isset;
 
-  void __set_file_path(const std::string& val);
+  void __set_file_path(const std::string& val) {
+    file_path = val;
+    __isset.file_path = true;
+  }
 
-  void __set_file_offset(const int64_t val);
+  void __set_file_offset(const int64_t val) {
+    file_offset = val;
+  }
 
-  void __set_meta_data(const ColumnMetaData& val);
+  void __set_meta_data(const ColumnMetaData& val) {
+    meta_data = val;
+    __isset.meta_data = true;
+  }
 
   bool operator == (const ColumnChunk & rhs) const
   {
@@ -982,31 +1049,26 @@ class ColumnChunk {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(ColumnChunk &a, ColumnChunk &b);
 
-inline std::ostream& operator<<(std::ostream& out, const ColumnChunk& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 typedef struct _RowGroup__isset {
   _RowGroup__isset() : sorting_columns(false) {}
-  bool sorting_columns :1;
+  bool sorting_columns;
 } _RowGroup__isset;
 
 class RowGroup {
  public:
 
-  RowGroup(const RowGroup&);
-  RowGroup& operator=(const RowGroup&);
+  static const char* ascii_fingerprint; // = "9BCFCB6790B06809B46424957993EDA6";
+  static const uint8_t binary_fingerprint[16]; // = {0x9B,0xCF,0xCB,0x67,0x90,0xB0,0x68,0x09,0xB4,0x64,0x24,0x95,0x79,0x93,0xED,0xA6};
+
   RowGroup() : total_byte_size(0), num_rows(0) {
   }
 
-  virtual ~RowGroup() throw();
+  virtual ~RowGroup() throw() {}
+
   std::vector<ColumnChunk>  columns;
   int64_t total_byte_size;
   int64_t num_rows;
@@ -1014,13 +1076,22 @@ class RowGroup {
 
   _RowGroup__isset __isset;
 
-  void __set_columns(const std::vector<ColumnChunk> & val);
+  void __set_columns(const std::vector<ColumnChunk> & val) {
+    columns = val;
+  }
 
-  void __set_total_byte_size(const int64_t val);
+  void __set_total_byte_size(const int64_t val) {
+    total_byte_size = val;
+  }
 
-  void __set_num_rows(const int64_t val);
+  void __set_num_rows(const int64_t val) {
+    num_rows = val;
+  }
 
-  void __set_sorting_columns(const std::vector<SortingColumn> & val);
+  void __set_sorting_columns(const std::vector<SortingColumn> & val) {
+    sorting_columns = val;
+    __isset.sorting_columns = true;
+  }
 
   bool operator == (const RowGroup & rhs) const
   {
@@ -1045,32 +1116,27 @@ class RowGroup {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(RowGroup &a, RowGroup &b);
 
-inline std::ostream& operator<<(std::ostream& out, const RowGroup& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 typedef struct _FileMetaData__isset {
   _FileMetaData__isset() : key_value_metadata(false), created_by(false) {}
-  bool key_value_metadata :1;
-  bool created_by :1;
+  bool key_value_metadata;
+  bool created_by;
 } _FileMetaData__isset;
 
 class FileMetaData {
  public:
 
-  FileMetaData(const FileMetaData&);
-  FileMetaData& operator=(const FileMetaData&);
+  static const char* ascii_fingerprint; // = "D76119B1A4F2B4F404F095255FBDBD9A";
+  static const uint8_t binary_fingerprint[16]; // = {0xD7,0x61,0x19,0xB1,0xA4,0xF2,0xB4,0xF4,0x04,0xF0,0x95,0x25,0x5F,0xBD,0xBD,0x9A};
+
   FileMetaData() : version(0), num_rows(0), created_by() {
   }
 
-  virtual ~FileMetaData() throw();
+  virtual ~FileMetaData() throw() {}
+
   int32_t version;
   std::vector<SchemaElement>  schema;
   int64_t num_rows;
@@ -1080,17 +1146,31 @@ class FileMetaData {
 
   _FileMetaData__isset __isset;
 
-  void __set_version(const int32_t val);
+  void __set_version(const int32_t val) {
+    version = val;
+  }
 
-  void __set_schema(const std::vector<SchemaElement> & val);
+  void __set_schema(const std::vector<SchemaElement> & val) {
+    schema = val;
+  }
 
-  void __set_num_rows(const int64_t val);
+  void __set_num_rows(const int64_t val) {
+    num_rows = val;
+  }
 
-  void __set_row_groups(const std::vector<RowGroup> & val);
+  void __set_row_groups(const std::vector<RowGroup> & val) {
+    row_groups = val;
+  }
 
-  void __set_key_value_metadata(const std::vector<KeyValue> & val);
+  void __set_key_value_metadata(const std::vector<KeyValue> & val) {
+    key_value_metadata = val;
+    __isset.key_value_metadata = true;
+  }
 
-  void __set_created_by(const std::string& val);
+  void __set_created_by(const std::string& val) {
+    created_by = val;
+    __isset.created_by = true;
+  }
 
   bool operator == (const FileMetaData & rhs) const
   {
@@ -1121,17 +1201,10 @@ class FileMetaData {
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
 };
 
 void swap(FileMetaData &a, FileMetaData &b);
 
-inline std::ostream& operator<<(std::ostream& out, const FileMetaData& obj)
-{
-  obj.printTo(out);
-  return out;
-}
-
 } // namespace
 
 #endif

http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/7555cff7/thirdparty/build_thirdparty.sh
----------------------------------------------------------------------
diff --git a/thirdparty/build_thirdparty.sh b/thirdparty/build_thirdparty.sh
index 5205fe8..5e5cf6a 100755
--- a/thirdparty/build_thirdparty.sh
+++ b/thirdparty/build_thirdparty.sh
@@ -90,6 +90,7 @@ if [ -n "$F_ALL" -o -n "$F_THRIFT" ]; then
     # such a way that ./configure can find them
     cd $TP_DIR/$THRIFT_BASEDIR
     ./configure CXXFLAGS='-fPIC' --without-qt4 --without-c_glib --without-csharp --without-java --without-erlang --without-nodejs --without-lua --without-python --without-perl --without-php --without-php_extension --without-ruby --without-haskell --without-go --without-d --with-cpp --prefix=$PREFIX
+	make clean
     make install
   fi
 fi

http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/7555cff7/thirdparty/versions.sh
----------------------------------------------------------------------
diff --git a/thirdparty/versions.sh b/thirdparty/versions.sh
index 112352d..9fa2d31 100755
--- a/thirdparty/versions.sh
+++ b/thirdparty/versions.sh
@@ -6,7 +6,7 @@ SNAPPY_VERSION=1.1.3
 SNAPPY_URL="https://github.com/google/snappy/releases/download/${SNAPPY_VERSION}/snappy-${SNAPPY_VERSION}.tar.gz"
 SNAPPY_BASEDIR=snappy-$SNAPPY_VERSION
 
-THRIFT_VERSION=0.9.3
+THRIFT_VERSION=0.9.1
 THRIFT_URL="http://archive.apache.org/dist/thrift/${THRIFT_VERSION}/thrift-${THRIFT_VERSION}.tar.gz"
 THRIFT_BASEDIR=thrift-$THRIFT_VERSION
 


[2/2] parquet-cpp git commit: PARQUET-469: Roll back Thrift thirdparty and compiled sources to 0.9.0

Posted by no...@apache.org.
PARQUET-469: Roll back Thrift thirdparty and compiled sources to 0.9.0

See PARQUET-470 for more details on why. PARQUET-468 will make these auto-generated.

Author: Wes McKinney <we...@cloudera.com>

Closes #25 from wesm/PARQUET-469 and squashes the following commits:

91a4daa [Wes McKinney] Roll back thirdparty and thrift sources to 0.9.0


Project: http://git-wip-us.apache.org/repos/asf/parquet-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/parquet-cpp/commit/7555cff7
Tree: http://git-wip-us.apache.org/repos/asf/parquet-cpp/tree/7555cff7
Diff: http://git-wip-us.apache.org/repos/asf/parquet-cpp/diff/7555cff7

Branch: refs/heads/master
Commit: 7555cff7d7fb0b5eb73d2be54f53f6ef44522b27
Parents: b31baa0
Author: Wes McKinney <we...@cloudera.com>
Authored: Tue Jan 26 14:07:46 2016 -0800
Committer: Nong Li <no...@gmail.com>
Committed: Tue Jan 26 14:07:46 2016 -0800

----------------------------------------------------------------------
 src/parquet/thrift/parquet_constants.cpp |    2 +-
 src/parquet/thrift/parquet_constants.h   |    2 +-
 src/parquet/thrift/parquet_types.cpp     | 1171 ++++++-------------------
 src/parquet/thrift/parquet_types.h       |  623 +++++++------
 thirdparty/build_thirdparty.sh           |    1 +
 thirdparty/versions.sh                   |    2 +-
 6 files changed, 597 insertions(+), 1204 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/7555cff7/src/parquet/thrift/parquet_constants.cpp
----------------------------------------------------------------------
diff --git a/src/parquet/thrift/parquet_constants.cpp b/src/parquet/thrift/parquet_constants.cpp
index 7c616f8..caa5af6 100644
--- a/src/parquet/thrift/parquet_constants.cpp
+++ b/src/parquet/thrift/parquet_constants.cpp
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (0.9.3)
+ * Autogenerated by Thrift Compiler (0.9.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/7555cff7/src/parquet/thrift/parquet_constants.h
----------------------------------------------------------------------
diff --git a/src/parquet/thrift/parquet_constants.h b/src/parquet/thrift/parquet_constants.h
index 344c9fe..71d6f58 100644
--- a/src/parquet/thrift/parquet_constants.h
+++ b/src/parquet/thrift/parquet_constants.h
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (0.9.3)
+ * Autogenerated by Thrift Compiler (0.9.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

http://git-wip-us.apache.org/repos/asf/parquet-cpp/blob/7555cff7/src/parquet/thrift/parquet_types.cpp
----------------------------------------------------------------------
diff --git a/src/parquet/thrift/parquet_types.cpp b/src/parquet/thrift/parquet_types.cpp
index a7a71fc..8834e3e 100644
--- a/src/parquet/thrift/parquet_types.cpp
+++ b/src/parquet/thrift/parquet_types.cpp
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (0.9.3)
+ * Autogenerated by Thrift Compiler (0.9.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -7,9 +7,6 @@
 #include "parquet_types.h"
 
 #include <algorithm>
-#include <ostream>
-
-#include <thrift/TToString.h>
 
 namespace parquet {
 
@@ -143,34 +140,11 @@ const char* _kPageTypeNames[] = {
 };
 const std::map<int, const char*> _PageType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(4, _kPageTypeValues, _kPageTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
-
-Statistics::~Statistics() throw() {
-}
-
-
-void Statistics::__set_max(const std::string& val) {
-  this->max = val;
-__isset.max = true;
-}
-
-void Statistics::__set_min(const std::string& val) {
-  this->min = val;
-__isset.min = true;
-}
-
-void Statistics::__set_null_count(const int64_t val) {
-  this->null_count = val;
-__isset.null_count = true;
-}
-
-void Statistics::__set_distinct_count(const int64_t val) {
-  this->distinct_count = val;
-__isset.distinct_count = true;
-}
+const char* Statistics::ascii_fingerprint = "CE004821871820DD79A8FD98BB101F6D";
+const uint8_t Statistics::binary_fingerprint[16] = {0xCE,0x00,0x48,0x21,0x87,0x18,0x20,0xDD,0x79,0xA8,0xFD,0x98,0xBB,0x10,0x1F,0x6D};
 
 uint32_t Statistics::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -235,25 +209,29 @@ uint32_t Statistics::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t Statistics::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("Statistics");
 
   if (this->__isset.max) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("max", ::apache::thrift::protocol::T_STRING, 1);
     xfer += oprot->writeBinary(this->max);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.min) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("min", ::apache::thrift::protocol::T_STRING, 2);
     xfer += oprot->writeBinary(this->min);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.null_count) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("null_count", ::apache::thrift::protocol::T_I64, 3);
     xfer += oprot->writeI64(this->null_count);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.distinct_count) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("distinct_count", ::apache::thrift::protocol::T_I64, 4);
     xfer += oprot->writeI64(this->distinct_count);
     xfer += oprot->writeFieldEnd();
@@ -272,83 +250,11 @@ void swap(Statistics &a, Statistics &b) {
   swap(a.__isset, b.__isset);
 }
 
-Statistics::Statistics(const Statistics& other0) {
-  max = other0.max;
-  min = other0.min;
-  null_count = other0.null_count;
-  distinct_count = other0.distinct_count;
-  __isset = other0.__isset;
-}
-Statistics& Statistics::operator=(const Statistics& other1) {
-  max = other1.max;
-  min = other1.min;
-  null_count = other1.null_count;
-  distinct_count = other1.distinct_count;
-  __isset = other1.__isset;
-  return *this;
-}
-void Statistics::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "Statistics(";
-  out << "max="; (__isset.max ? (out << to_string(max)) : (out << "<null>"));
-  out << ", " << "min="; (__isset.min ? (out << to_string(min)) : (out << "<null>"));
-  out << ", " << "null_count="; (__isset.null_count ? (out << to_string(null_count)) : (out << "<null>"));
-  out << ", " << "distinct_count="; (__isset.distinct_count ? (out << to_string(distinct_count)) : (out << "<null>"));
-  out << ")";
-}
-
-
-SchemaElement::~SchemaElement() throw() {
-}
-
-
-void SchemaElement::__set_type(const Type::type val) {
-  this->type = val;
-__isset.type = true;
-}
-
-void SchemaElement::__set_type_length(const int32_t val) {
-  this->type_length = val;
-__isset.type_length = true;
-}
-
-void SchemaElement::__set_repetition_type(const FieldRepetitionType::type val) {
-  this->repetition_type = val;
-__isset.repetition_type = true;
-}
-
-void SchemaElement::__set_name(const std::string& val) {
-  this->name = val;
-}
-
-void SchemaElement::__set_num_children(const int32_t val) {
-  this->num_children = val;
-__isset.num_children = true;
-}
-
-void SchemaElement::__set_converted_type(const ConvertedType::type val) {
-  this->converted_type = val;
-__isset.converted_type = true;
-}
-
-void SchemaElement::__set_scale(const int32_t val) {
-  this->scale = val;
-__isset.scale = true;
-}
-
-void SchemaElement::__set_precision(const int32_t val) {
-  this->precision = val;
-__isset.precision = true;
-}
-
-void SchemaElement::__set_field_id(const int32_t val) {
-  this->field_id = val;
-__isset.field_id = true;
-}
+const char* SchemaElement::ascii_fingerprint = "22DC89BFD9E48E604F01FB8CFDFB8229";
+const uint8_t SchemaElement::binary_fingerprint[16] = {0x22,0xDC,0x89,0xBF,0xD9,0xE4,0x8E,0x60,0x4F,0x01,0xFB,0x8C,0xFD,0xFB,0x82,0x29};
 
 uint32_t SchemaElement::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -370,9 +276,9 @@ uint32_t SchemaElement::read(::apache::thrift::protocol::TProtocol* iprot) {
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast2;
-          xfer += iprot->readI32(ecast2);
-          this->type = (Type::type)ecast2;
+          int32_t ecast0;
+          xfer += iprot->readI32(ecast0);
+          this->type = (Type::type)ecast0;
           this->__isset.type = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -388,9 +294,9 @@ uint32_t SchemaElement::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast3;
-          xfer += iprot->readI32(ecast3);
-          this->repetition_type = (FieldRepetitionType::type)ecast3;
+          int32_t ecast1;
+          xfer += iprot->readI32(ecast1);
+          this->repetition_type = (FieldRepetitionType::type)ecast1;
           this->__isset.repetition_type = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -414,9 +320,9 @@ uint32_t SchemaElement::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 6:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast4;
-          xfer += iprot->readI32(ecast4);
-          this->converted_type = (ConvertedType::type)ecast4;
+          int32_t ecast2;
+          xfer += iprot->readI32(ecast2);
+          this->converted_type = (ConvertedType::type)ecast2;
           this->__isset.converted_type = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -462,49 +368,58 @@ uint32_t SchemaElement::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t SchemaElement::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("SchemaElement");
 
   if (this->__isset.type) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_I32, 1);
     xfer += oprot->writeI32((int32_t)this->type);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.type_length) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("type_length", ::apache::thrift::protocol::T_I32, 2);
     xfer += oprot->writeI32(this->type_length);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.repetition_type) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("repetition_type", ::apache::thrift::protocol::T_I32, 3);
     xfer += oprot->writeI32((int32_t)this->repetition_type);
     xfer += oprot->writeFieldEnd();
   }
+  ++fcnt;
   xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 4);
   xfer += oprot->writeString(this->name);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.num_children) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("num_children", ::apache::thrift::protocol::T_I32, 5);
     xfer += oprot->writeI32(this->num_children);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.converted_type) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("converted_type", ::apache::thrift::protocol::T_I32, 6);
     xfer += oprot->writeI32((int32_t)this->converted_type);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.scale) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("scale", ::apache::thrift::protocol::T_I32, 7);
     xfer += oprot->writeI32(this->scale);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.precision) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("precision", ::apache::thrift::protocol::T_I32, 8);
     xfer += oprot->writeI32(this->precision);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.field_id) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("field_id", ::apache::thrift::protocol::T_I32, 9);
     xfer += oprot->writeI32(this->field_id);
     xfer += oprot->writeFieldEnd();
@@ -528,75 +443,11 @@ void swap(SchemaElement &a, SchemaElement &b) {
   swap(a.__isset, b.__isset);
 }
 
-SchemaElement::SchemaElement(const SchemaElement& other5) {
-  type = other5.type;
-  type_length = other5.type_length;
-  repetition_type = other5.repetition_type;
-  name = other5.name;
-  num_children = other5.num_children;
-  converted_type = other5.converted_type;
-  scale = other5.scale;
-  precision = other5.precision;
-  field_id = other5.field_id;
-  __isset = other5.__isset;
-}
-SchemaElement& SchemaElement::operator=(const SchemaElement& other6) {
-  type = other6.type;
-  type_length = other6.type_length;
-  repetition_type = other6.repetition_type;
-  name = other6.name;
-  num_children = other6.num_children;
-  converted_type = other6.converted_type;
-  scale = other6.scale;
-  precision = other6.precision;
-  field_id = other6.field_id;
-  __isset = other6.__isset;
-  return *this;
-}
-void SchemaElement::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "SchemaElement(";
-  out << "type="; (__isset.type ? (out << to_string(type)) : (out << "<null>"));
-  out << ", " << "type_length="; (__isset.type_length ? (out << to_string(type_length)) : (out << "<null>"));
-  out << ", " << "repetition_type="; (__isset.repetition_type ? (out << to_string(repetition_type)) : (out << "<null>"));
-  out << ", " << "name=" << to_string(name);
-  out << ", " << "num_children="; (__isset.num_children ? (out << to_string(num_children)) : (out << "<null>"));
-  out << ", " << "converted_type="; (__isset.converted_type ? (out << to_string(converted_type)) : (out << "<null>"));
-  out << ", " << "scale="; (__isset.scale ? (out << to_string(scale)) : (out << "<null>"));
-  out << ", " << "precision="; (__isset.precision ? (out << to_string(precision)) : (out << "<null>"));
-  out << ", " << "field_id="; (__isset.field_id ? (out << to_string(field_id)) : (out << "<null>"));
-  out << ")";
-}
-
-
-DataPageHeader::~DataPageHeader() throw() {
-}
-
-
-void DataPageHeader::__set_num_values(const int32_t val) {
-  this->num_values = val;
-}
-
-void DataPageHeader::__set_encoding(const Encoding::type val) {
-  this->encoding = val;
-}
-
-void DataPageHeader::__set_definition_level_encoding(const Encoding::type val) {
-  this->definition_level_encoding = val;
-}
-
-void DataPageHeader::__set_repetition_level_encoding(const Encoding::type val) {
-  this->repetition_level_encoding = val;
-}
-
-void DataPageHeader::__set_statistics(const Statistics& val) {
-  this->statistics = val;
-__isset.statistics = true;
-}
+const char* DataPageHeader::ascii_fingerprint = "5FC1792B0483E9C984475384165040B1";
+const uint8_t DataPageHeader::binary_fingerprint[16] = {0x5F,0xC1,0x79,0x2B,0x04,0x83,0xE9,0xC9,0x84,0x47,0x53,0x84,0x16,0x50,0x40,0xB1};
 
 uint32_t DataPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -629,9 +480,9 @@ uint32_t DataPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast7;
-          xfer += iprot->readI32(ecast7);
-          this->encoding = (Encoding::type)ecast7;
+          int32_t ecast3;
+          xfer += iprot->readI32(ecast3);
+          this->encoding = (Encoding::type)ecast3;
           isset_encoding = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -639,9 +490,9 @@ uint32_t DataPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast8;
-          xfer += iprot->readI32(ecast8);
-          this->definition_level_encoding = (Encoding::type)ecast8;
+          int32_t ecast4;
+          xfer += iprot->readI32(ecast4);
+          this->definition_level_encoding = (Encoding::type)ecast4;
           isset_definition_level_encoding = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -649,9 +500,9 @@ uint32_t DataPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast9;
-          xfer += iprot->readI32(ecast9);
-          this->repetition_level_encoding = (Encoding::type)ecast9;
+          int32_t ecast5;
+          xfer += iprot->readI32(ecast5);
+          this->repetition_level_encoding = (Encoding::type)ecast5;
           isset_repetition_level_encoding = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -687,26 +538,31 @@ uint32_t DataPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t DataPageHeader::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("DataPageHeader");
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("num_values", ::apache::thrift::protocol::T_I32, 1);
   xfer += oprot->writeI32(this->num_values);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("encoding", ::apache::thrift::protocol::T_I32, 2);
   xfer += oprot->writeI32((int32_t)this->encoding);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("definition_level_encoding", ::apache::thrift::protocol::T_I32, 3);
   xfer += oprot->writeI32((int32_t)this->definition_level_encoding);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("repetition_level_encoding", ::apache::thrift::protocol::T_I32, 4);
   xfer += oprot->writeI32((int32_t)this->repetition_level_encoding);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.statistics) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("statistics", ::apache::thrift::protocol::T_STRUCT, 5);
     xfer += this->statistics.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -726,42 +582,11 @@ void swap(DataPageHeader &a, DataPageHeader &b) {
   swap(a.__isset, b.__isset);
 }
 
-DataPageHeader::DataPageHeader(const DataPageHeader& other10) {
-  num_values = other10.num_values;
-  encoding = other10.encoding;
-  definition_level_encoding = other10.definition_level_encoding;
-  repetition_level_encoding = other10.repetition_level_encoding;
-  statistics = other10.statistics;
-  __isset = other10.__isset;
-}
-DataPageHeader& DataPageHeader::operator=(const DataPageHeader& other11) {
-  num_values = other11.num_values;
-  encoding = other11.encoding;
-  definition_level_encoding = other11.definition_level_encoding;
-  repetition_level_encoding = other11.repetition_level_encoding;
-  statistics = other11.statistics;
-  __isset = other11.__isset;
-  return *this;
-}
-void DataPageHeader::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "DataPageHeader(";
-  out << "num_values=" << to_string(num_values);
-  out << ", " << "encoding=" << to_string(encoding);
-  out << ", " << "definition_level_encoding=" << to_string(definition_level_encoding);
-  out << ", " << "repetition_level_encoding=" << to_string(repetition_level_encoding);
-  out << ", " << "statistics="; (__isset.statistics ? (out << to_string(statistics)) : (out << "<null>"));
-  out << ")";
-}
-
-
-IndexPageHeader::~IndexPageHeader() throw() {
-}
-
+const char* IndexPageHeader::ascii_fingerprint = "99914B932BD37A50B983C5E7C90AE93B";
+const uint8_t IndexPageHeader::binary_fingerprint[16] = {0x99,0x91,0x4B,0x93,0x2B,0xD3,0x7A,0x50,0xB9,0x83,0xC5,0xE7,0xC9,0x0A,0xE9,0x3B};
 
 uint32_t IndexPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -789,7 +614,7 @@ uint32_t IndexPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t IndexPageHeader::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("IndexPageHeader");
 
   xfer += oprot->writeFieldStop();
@@ -803,40 +628,11 @@ void swap(IndexPageHeader &a, IndexPageHeader &b) {
   (void) b;
 }
 
-IndexPageHeader::IndexPageHeader(const IndexPageHeader& other12) {
-  (void) other12;
-}
-IndexPageHeader& IndexPageHeader::operator=(const IndexPageHeader& other13) {
-  (void) other13;
-  return *this;
-}
-void IndexPageHeader::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "IndexPageHeader(";
-  out << ")";
-}
-
-
-DictionaryPageHeader::~DictionaryPageHeader() throw() {
-}
-
-
-void DictionaryPageHeader::__set_num_values(const int32_t val) {
-  this->num_values = val;
-}
-
-void DictionaryPageHeader::__set_encoding(const Encoding::type val) {
-  this->encoding = val;
-}
-
-void DictionaryPageHeader::__set_is_sorted(const bool val) {
-  this->is_sorted = val;
-__isset.is_sorted = true;
-}
+const char* DictionaryPageHeader::ascii_fingerprint = "B149E4528254D495610C22AE4BD539C5";
+const uint8_t DictionaryPageHeader::binary_fingerprint[16] = {0xB1,0x49,0xE4,0x52,0x82,0x54,0xD4,0x95,0x61,0x0C,0x22,0xAE,0x4B,0xD5,0x39,0xC5};
 
 uint32_t DictionaryPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -867,9 +663,9 @@ uint32_t DictionaryPageHeader::read(::apache::thrift::protocol::TProtocol* iprot
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast14;
-          xfer += iprot->readI32(ecast14);
-          this->encoding = (Encoding::type)ecast14;
+          int32_t ecast6;
+          xfer += iprot->readI32(ecast6);
+          this->encoding = (Encoding::type)ecast6;
           isset_encoding = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -901,18 +697,21 @@ uint32_t DictionaryPageHeader::read(::apache::thrift::protocol::TProtocol* iprot
 
 uint32_t DictionaryPageHeader::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("DictionaryPageHeader");
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("num_values", ::apache::thrift::protocol::T_I32, 1);
   xfer += oprot->writeI32(this->num_values);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("encoding", ::apache::thrift::protocol::T_I32, 2);
   xfer += oprot->writeI32((int32_t)this->encoding);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.is_sorted) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("is_sorted", ::apache::thrift::protocol::T_BOOL, 3);
     xfer += oprot->writeBool(this->is_sorted);
     xfer += oprot->writeFieldEnd();
@@ -930,70 +729,11 @@ void swap(DictionaryPageHeader &a, DictionaryPageHeader &b) {
   swap(a.__isset, b.__isset);
 }
 
-DictionaryPageHeader::DictionaryPageHeader(const DictionaryPageHeader& other15) {
-  num_values = other15.num_values;
-  encoding = other15.encoding;
-  is_sorted = other15.is_sorted;
-  __isset = other15.__isset;
-}
-DictionaryPageHeader& DictionaryPageHeader::operator=(const DictionaryPageHeader& other16) {
-  num_values = other16.num_values;
-  encoding = other16.encoding;
-  is_sorted = other16.is_sorted;
-  __isset = other16.__isset;
-  return *this;
-}
-void DictionaryPageHeader::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "DictionaryPageHeader(";
-  out << "num_values=" << to_string(num_values);
-  out << ", " << "encoding=" << to_string(encoding);
-  out << ", " << "is_sorted="; (__isset.is_sorted ? (out << to_string(is_sorted)) : (out << "<null>"));
-  out << ")";
-}
-
-
-DataPageHeaderV2::~DataPageHeaderV2() throw() {
-}
-
-
-void DataPageHeaderV2::__set_num_values(const int32_t val) {
-  this->num_values = val;
-}
-
-void DataPageHeaderV2::__set_num_nulls(const int32_t val) {
-  this->num_nulls = val;
-}
-
-void DataPageHeaderV2::__set_num_rows(const int32_t val) {
-  this->num_rows = val;
-}
-
-void DataPageHeaderV2::__set_encoding(const Encoding::type val) {
-  this->encoding = val;
-}
-
-void DataPageHeaderV2::__set_definition_levels_byte_length(const int32_t val) {
-  this->definition_levels_byte_length = val;
-}
-
-void DataPageHeaderV2::__set_repetition_levels_byte_length(const int32_t val) {
-  this->repetition_levels_byte_length = val;
-}
-
-void DataPageHeaderV2::__set_is_compressed(const bool val) {
-  this->is_compressed = val;
-__isset.is_compressed = true;
-}
-
-void DataPageHeaderV2::__set_statistics(const Statistics& val) {
-  this->statistics = val;
-__isset.statistics = true;
-}
+const char* DataPageHeaderV2::ascii_fingerprint = "69FF2F6BD1A443440D5E46ABA5A3A919";
+const uint8_t DataPageHeaderV2::binary_fingerprint[16] = {0x69,0xFF,0x2F,0x6B,0xD1,0xA4,0x43,0x44,0x0D,0x5E,0x46,0xAB,0xA5,0xA3,0xA9,0x19};
 
 uint32_t DataPageHeaderV2::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1044,9 +784,9 @@ uint32_t DataPageHeaderV2::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast17;
-          xfer += iprot->readI32(ecast17);
-          this->encoding = (Encoding::type)ecast17;
+          int32_t ecast7;
+          xfer += iprot->readI32(ecast7);
+          this->encoding = (Encoding::type)ecast7;
           isset_encoding = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1110,39 +850,47 @@ uint32_t DataPageHeaderV2::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t DataPageHeaderV2::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("DataPageHeaderV2");
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("num_values", ::apache::thrift::protocol::T_I32, 1);
   xfer += oprot->writeI32(this->num_values);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("num_nulls", ::apache::thrift::protocol::T_I32, 2);
   xfer += oprot->writeI32(this->num_nulls);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("num_rows", ::apache::thrift::protocol::T_I32, 3);
   xfer += oprot->writeI32(this->num_rows);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("encoding", ::apache::thrift::protocol::T_I32, 4);
   xfer += oprot->writeI32((int32_t)this->encoding);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("definition_levels_byte_length", ::apache::thrift::protocol::T_I32, 5);
   xfer += oprot->writeI32(this->definition_levels_byte_length);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("repetition_levels_byte_length", ::apache::thrift::protocol::T_I32, 6);
   xfer += oprot->writeI32(this->repetition_levels_byte_length);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.is_compressed) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("is_compressed", ::apache::thrift::protocol::T_BOOL, 7);
     xfer += oprot->writeBool(this->is_compressed);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.statistics) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("statistics", ::apache::thrift::protocol::T_STRUCT, 8);
     xfer += this->statistics.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -1165,88 +913,11 @@ void swap(DataPageHeaderV2 &a, DataPageHeaderV2 &b) {
   swap(a.__isset, b.__isset);
 }
 
-DataPageHeaderV2::DataPageHeaderV2(const DataPageHeaderV2& other18) {
-  num_values = other18.num_values;
-  num_nulls = other18.num_nulls;
-  num_rows = other18.num_rows;
-  encoding = other18.encoding;
-  definition_levels_byte_length = other18.definition_levels_byte_length;
-  repetition_levels_byte_length = other18.repetition_levels_byte_length;
-  is_compressed = other18.is_compressed;
-  statistics = other18.statistics;
-  __isset = other18.__isset;
-}
-DataPageHeaderV2& DataPageHeaderV2::operator=(const DataPageHeaderV2& other19) {
-  num_values = other19.num_values;
-  num_nulls = other19.num_nulls;
-  num_rows = other19.num_rows;
-  encoding = other19.encoding;
-  definition_levels_byte_length = other19.definition_levels_byte_length;
-  repetition_levels_byte_length = other19.repetition_levels_byte_length;
-  is_compressed = other19.is_compressed;
-  statistics = other19.statistics;
-  __isset = other19.__isset;
-  return *this;
-}
-void DataPageHeaderV2::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "DataPageHeaderV2(";
-  out << "num_values=" << to_string(num_values);
-  out << ", " << "num_nulls=" << to_string(num_nulls);
-  out << ", " << "num_rows=" << to_string(num_rows);
-  out << ", " << "encoding=" << to_string(encoding);
-  out << ", " << "definition_levels_byte_length=" << to_string(definition_levels_byte_length);
-  out << ", " << "repetition_levels_byte_length=" << to_string(repetition_levels_byte_length);
-  out << ", " << "is_compressed="; (__isset.is_compressed ? (out << to_string(is_compressed)) : (out << "<null>"));
-  out << ", " << "statistics="; (__isset.statistics ? (out << to_string(statistics)) : (out << "<null>"));
-  out << ")";
-}
-
-
-PageHeader::~PageHeader() throw() {
-}
-
-
-void PageHeader::__set_type(const PageType::type val) {
-  this->type = val;
-}
-
-void PageHeader::__set_uncompressed_page_size(const int32_t val) {
-  this->uncompressed_page_size = val;
-}
-
-void PageHeader::__set_compressed_page_size(const int32_t val) {
-  this->compressed_page_size = val;
-}
-
-void PageHeader::__set_crc(const int32_t val) {
-  this->crc = val;
-__isset.crc = true;
-}
-
-void PageHeader::__set_data_page_header(const DataPageHeader& val) {
-  this->data_page_header = val;
-__isset.data_page_header = true;
-}
-
-void PageHeader::__set_index_page_header(const IndexPageHeader& val) {
-  this->index_page_header = val;
-__isset.index_page_header = true;
-}
-
-void PageHeader::__set_dictionary_page_header(const DictionaryPageHeader& val) {
-  this->dictionary_page_header = val;
-__isset.dictionary_page_header = true;
-}
-
-void PageHeader::__set_data_page_header_v2(const DataPageHeaderV2& val) {
-  this->data_page_header_v2 = val;
-__isset.data_page_header_v2 = true;
-}
+const char* PageHeader::ascii_fingerprint = "B5BD2BDF3756C883A58B30B9C9F204A0";
+const uint8_t PageHeader::binary_fingerprint[16] = {0xB5,0xBD,0x2B,0xDF,0x37,0x56,0xC8,0x83,0xA5,0x8B,0x30,0xB9,0xC9,0xF2,0x04,0xA0};
 
 uint32_t PageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1270,9 +941,9 @@ uint32_t PageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast20;
-          xfer += iprot->readI32(ecast20);
-          this->type = (PageType::type)ecast20;
+          int32_t ecast8;
+          xfer += iprot->readI32(ecast8);
+          this->type = (PageType::type)ecast8;
           isset_type = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1354,42 +1025,50 @@ uint32_t PageHeader::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t PageHeader::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("PageHeader");
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_I32, 1);
   xfer += oprot->writeI32((int32_t)this->type);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("uncompressed_page_size", ::apache::thrift::protocol::T_I32, 2);
   xfer += oprot->writeI32(this->uncompressed_page_size);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("compressed_page_size", ::apache::thrift::protocol::T_I32, 3);
   xfer += oprot->writeI32(this->compressed_page_size);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.crc) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("crc", ::apache::thrift::protocol::T_I32, 4);
     xfer += oprot->writeI32(this->crc);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.data_page_header) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("data_page_header", ::apache::thrift::protocol::T_STRUCT, 5);
     xfer += this->data_page_header.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.index_page_header) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("index_page_header", ::apache::thrift::protocol::T_STRUCT, 6);
     xfer += this->index_page_header.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.dictionary_page_header) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("dictionary_page_header", ::apache::thrift::protocol::T_STRUCT, 7);
     xfer += this->dictionary_page_header.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.data_page_header_v2) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("data_page_header_v2", ::apache::thrift::protocol::T_STRUCT, 8);
     xfer += this->data_page_header_v2.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -1412,60 +1091,11 @@ void swap(PageHeader &a, PageHeader &b) {
   swap(a.__isset, b.__isset);
 }
 
-PageHeader::PageHeader(const PageHeader& other21) {
-  type = other21.type;
-  uncompressed_page_size = other21.uncompressed_page_size;
-  compressed_page_size = other21.compressed_page_size;
-  crc = other21.crc;
-  data_page_header = other21.data_page_header;
-  index_page_header = other21.index_page_header;
-  dictionary_page_header = other21.dictionary_page_header;
-  data_page_header_v2 = other21.data_page_header_v2;
-  __isset = other21.__isset;
-}
-PageHeader& PageHeader::operator=(const PageHeader& other22) {
-  type = other22.type;
-  uncompressed_page_size = other22.uncompressed_page_size;
-  compressed_page_size = other22.compressed_page_size;
-  crc = other22.crc;
-  data_page_header = other22.data_page_header;
-  index_page_header = other22.index_page_header;
-  dictionary_page_header = other22.dictionary_page_header;
-  data_page_header_v2 = other22.data_page_header_v2;
-  __isset = other22.__isset;
-  return *this;
-}
-void PageHeader::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "PageHeader(";
-  out << "type=" << to_string(type);
-  out << ", " << "uncompressed_page_size=" << to_string(uncompressed_page_size);
-  out << ", " << "compressed_page_size=" << to_string(compressed_page_size);
-  out << ", " << "crc="; (__isset.crc ? (out << to_string(crc)) : (out << "<null>"));
-  out << ", " << "data_page_header="; (__isset.data_page_header ? (out << to_string(data_page_header)) : (out << "<null>"));
-  out << ", " << "index_page_header="; (__isset.index_page_header ? (out << to_string(index_page_header)) : (out << "<null>"));
-  out << ", " << "dictionary_page_header="; (__isset.dictionary_page_header ? (out << to_string(dictionary_page_header)) : (out << "<null>"));
-  out << ", " << "data_page_header_v2="; (__isset.data_page_header_v2 ? (out << to_string(data_page_header_v2)) : (out << "<null>"));
-  out << ")";
-}
-
-
-KeyValue::~KeyValue() throw() {
-}
-
-
-void KeyValue::__set_key(const std::string& val) {
-  this->key = val;
-}
-
-void KeyValue::__set_value(const std::string& val) {
-  this->value = val;
-__isset.value = true;
-}
+const char* KeyValue::ascii_fingerprint = "5B708A954C550ECA9C1A49D3C5CAFAB9";
+const uint8_t KeyValue::binary_fingerprint[16] = {0x5B,0x70,0x8A,0x95,0x4C,0x55,0x0E,0xCA,0x9C,0x1A,0x49,0xD3,0xC5,0xCA,0xFA,0xB9};
 
 uint32_t KeyValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1517,14 +1147,16 @@ uint32_t KeyValue::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t KeyValue::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("KeyValue");
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("key", ::apache::thrift::protocol::T_STRING, 1);
   xfer += oprot->writeString(this->key);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.value) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("value", ::apache::thrift::protocol::T_STRING, 2);
     xfer += oprot->writeString(this->value);
     xfer += oprot->writeFieldEnd();
@@ -1541,45 +1173,11 @@ void swap(KeyValue &a, KeyValue &b) {
   swap(a.__isset, b.__isset);
 }
 
-KeyValue::KeyValue(const KeyValue& other23) {
-  key = other23.key;
-  value = other23.value;
-  __isset = other23.__isset;
-}
-KeyValue& KeyValue::operator=(const KeyValue& other24) {
-  key = other24.key;
-  value = other24.value;
-  __isset = other24.__isset;
-  return *this;
-}
-void KeyValue::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "KeyValue(";
-  out << "key=" << to_string(key);
-  out << ", " << "value="; (__isset.value ? (out << to_string(value)) : (out << "<null>"));
-  out << ")";
-}
-
-
-SortingColumn::~SortingColumn() throw() {
-}
-
-
-void SortingColumn::__set_column_idx(const int32_t val) {
-  this->column_idx = val;
-}
-
-void SortingColumn::__set_descending(const bool val) {
-  this->descending = val;
-}
-
-void SortingColumn::__set_nulls_first(const bool val) {
-  this->nulls_first = val;
-}
+const char* SortingColumn::ascii_fingerprint = "F079C2D58A783AD90F9BE05D10DBBC6F";
+const uint8_t SortingColumn::binary_fingerprint[16] = {0xF0,0x79,0xC2,0xD5,0x8A,0x78,0x3A,0xD9,0x0F,0x9B,0xE0,0x5D,0x10,0xDB,0xBC,0x6F};
 
 uint32_t SortingColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1645,17 +1243,20 @@ uint32_t SortingColumn::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t SortingColumn::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("SortingColumn");
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("column_idx", ::apache::thrift::protocol::T_I32, 1);
   xfer += oprot->writeI32(this->column_idx);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("descending", ::apache::thrift::protocol::T_BOOL, 2);
   xfer += oprot->writeBool(this->descending);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("nulls_first", ::apache::thrift::protocol::T_BOOL, 3);
   xfer += oprot->writeBool(this->nulls_first);
   xfer += oprot->writeFieldEnd();
@@ -1672,46 +1273,11 @@ void swap(SortingColumn &a, SortingColumn &b) {
   swap(a.nulls_first, b.nulls_first);
 }
 
-SortingColumn::SortingColumn(const SortingColumn& other25) {
-  column_idx = other25.column_idx;
-  descending = other25.descending;
-  nulls_first = other25.nulls_first;
-}
-SortingColumn& SortingColumn::operator=(const SortingColumn& other26) {
-  column_idx = other26.column_idx;
-  descending = other26.descending;
-  nulls_first = other26.nulls_first;
-  return *this;
-}
-void SortingColumn::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "SortingColumn(";
-  out << "column_idx=" << to_string(column_idx);
-  out << ", " << "descending=" << to_string(descending);
-  out << ", " << "nulls_first=" << to_string(nulls_first);
-  out << ")";
-}
-
-
-PageEncodingStats::~PageEncodingStats() throw() {
-}
-
-
-void PageEncodingStats::__set_page_type(const PageType::type val) {
-  this->page_type = val;
-}
-
-void PageEncodingStats::__set_encoding(const Encoding::type val) {
-  this->encoding = val;
-}
-
-void PageEncodingStats::__set_count(const int32_t val) {
-  this->count = val;
-}
+const char* PageEncodingStats::ascii_fingerprint = "5F1BEE04836FAA3055D3EE2492AE44FB";
+const uint8_t PageEncodingStats::binary_fingerprint[16] = {0x5F,0x1B,0xEE,0x04,0x83,0x6F,0xAA,0x30,0x55,0xD3,0xEE,0x24,0x92,0xAE,0x44,0xFB};
 
 uint32_t PageEncodingStats::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1735,9 +1301,9 @@ uint32_t PageEncodingStats::read(::apache::thrift::protocol::TProtocol* iprot) {
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast27;
-          xfer += iprot->readI32(ecast27);
-          this->page_type = (PageType::type)ecast27;
+          int32_t ecast9;
+          xfer += iprot->readI32(ecast9);
+          this->page_type = (PageType::type)ecast9;
           isset_page_type = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1745,9 +1311,9 @@ uint32_t PageEncodingStats::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast28;
-          xfer += iprot->readI32(ecast28);
-          this->encoding = (Encoding::type)ecast28;
+          int32_t ecast10;
+          xfer += iprot->readI32(ecast10);
+          this->encoding = (Encoding::type)ecast10;
           isset_encoding = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1781,17 +1347,20 @@ uint32_t PageEncodingStats::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t PageEncodingStats::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("PageEncodingStats");
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("page_type", ::apache::thrift::protocol::T_I32, 1);
   xfer += oprot->writeI32((int32_t)this->page_type);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("encoding", ::apache::thrift::protocol::T_I32, 2);
   xfer += oprot->writeI32((int32_t)this->encoding);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("count", ::apache::thrift::protocol::T_I32, 3);
   xfer += oprot->writeI32(this->count);
   xfer += oprot->writeFieldEnd();
@@ -1808,91 +1377,11 @@ void swap(PageEncodingStats &a, PageEncodingStats &b) {
   swap(a.count, b.count);
 }
 
-PageEncodingStats::PageEncodingStats(const PageEncodingStats& other29) {
-  page_type = other29.page_type;
-  encoding = other29.encoding;
-  count = other29.count;
-}
-PageEncodingStats& PageEncodingStats::operator=(const PageEncodingStats& other30) {
-  page_type = other30.page_type;
-  encoding = other30.encoding;
-  count = other30.count;
-  return *this;
-}
-void PageEncodingStats::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "PageEncodingStats(";
-  out << "page_type=" << to_string(page_type);
-  out << ", " << "encoding=" << to_string(encoding);
-  out << ", " << "count=" << to_string(count);
-  out << ")";
-}
-
-
-ColumnMetaData::~ColumnMetaData() throw() {
-}
-
-
-void ColumnMetaData::__set_type(const Type::type val) {
-  this->type = val;
-}
-
-void ColumnMetaData::__set_encodings(const std::vector<Encoding::type> & val) {
-  this->encodings = val;
-}
-
-void ColumnMetaData::__set_path_in_schema(const std::vector<std::string> & val) {
-  this->path_in_schema = val;
-}
-
-void ColumnMetaData::__set_codec(const CompressionCodec::type val) {
-  this->codec = val;
-}
-
-void ColumnMetaData::__set_num_values(const int64_t val) {
-  this->num_values = val;
-}
-
-void ColumnMetaData::__set_total_uncompressed_size(const int64_t val) {
-  this->total_uncompressed_size = val;
-}
-
-void ColumnMetaData::__set_total_compressed_size(const int64_t val) {
-  this->total_compressed_size = val;
-}
-
-void ColumnMetaData::__set_key_value_metadata(const std::vector<KeyValue> & val) {
-  this->key_value_metadata = val;
-__isset.key_value_metadata = true;
-}
-
-void ColumnMetaData::__set_data_page_offset(const int64_t val) {
-  this->data_page_offset = val;
-}
-
-void ColumnMetaData::__set_index_page_offset(const int64_t val) {
-  this->index_page_offset = val;
-__isset.index_page_offset = true;
-}
-
-void ColumnMetaData::__set_dictionary_page_offset(const int64_t val) {
-  this->dictionary_page_offset = val;
-__isset.dictionary_page_offset = true;
-}
-
-void ColumnMetaData::__set_statistics(const Statistics& val) {
-  this->statistics = val;
-__isset.statistics = true;
-}
-
-void ColumnMetaData::__set_encoding_stats(const std::vector<PageEncodingStats> & val) {
-  this->encoding_stats = val;
-__isset.encoding_stats = true;
-}
+const char* ColumnMetaData::ascii_fingerprint = "AEE7317B6DB9719FE828388D537DBD71";
+const uint8_t ColumnMetaData::binary_fingerprint[16] = {0xAE,0xE7,0x31,0x7B,0x6D,0xB9,0x71,0x9F,0xE8,0x28,0x38,0x8D,0x53,0x7D,0xBD,0x71};
 
 uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -1921,9 +1410,9 @@ uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast31;
-          xfer += iprot->readI32(ecast31);
-          this->type = (Type::type)ecast31;
+          int32_t ecast11;
+          xfer += iprot->readI32(ecast11);
+          this->type = (Type::type)ecast11;
           isset_type = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1933,16 +1422,16 @@ uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->encodings.clear();
-            uint32_t _size32;
-            ::apache::thrift::protocol::TType _etype35;
-            xfer += iprot->readListBegin(_etype35, _size32);
-            this->encodings.resize(_size32);
-            uint32_t _i36;
-            for (_i36 = 0; _i36 < _size32; ++_i36)
+            uint32_t _size12;
+            ::apache::thrift::protocol::TType _etype15;
+            xfer += iprot->readListBegin(_etype15, _size12);
+            this->encodings.resize(_size12);
+            uint32_t _i16;
+            for (_i16 = 0; _i16 < _size12; ++_i16)
             {
-              int32_t ecast37;
-              xfer += iprot->readI32(ecast37);
-              this->encodings[_i36] = (Encoding::type)ecast37;
+              int32_t ecast17;
+              xfer += iprot->readI32(ecast17);
+              this->encodings[_i16] = (Encoding::type)ecast17;
             }
             xfer += iprot->readListEnd();
           }
@@ -1955,14 +1444,14 @@ uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->path_in_schema.clear();
-            uint32_t _size38;
-            ::apache::thrift::protocol::TType _etype41;
-            xfer += iprot->readListBegin(_etype41, _size38);
-            this->path_in_schema.resize(_size38);
-            uint32_t _i42;
-            for (_i42 = 0; _i42 < _size38; ++_i42)
+            uint32_t _size18;
+            ::apache::thrift::protocol::TType _etype21;
+            xfer += iprot->readListBegin(_etype21, _size18);
+            this->path_in_schema.resize(_size18);
+            uint32_t _i22;
+            for (_i22 = 0; _i22 < _size18; ++_i22)
             {
-              xfer += iprot->readString(this->path_in_schema[_i42]);
+              xfer += iprot->readString(this->path_in_schema[_i22]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1973,9 +1462,9 @@ uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast43;
-          xfer += iprot->readI32(ecast43);
-          this->codec = (CompressionCodec::type)ecast43;
+          int32_t ecast23;
+          xfer += iprot->readI32(ecast23);
+          this->codec = (CompressionCodec::type)ecast23;
           isset_codec = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -2009,14 +1498,14 @@ uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->key_value_metadata.clear();
-            uint32_t _size44;
-            ::apache::thrift::protocol::TType _etype47;
-            xfer += iprot->readListBegin(_etype47, _size44);
-            this->key_value_metadata.resize(_size44);
-            uint32_t _i48;
-            for (_i48 = 0; _i48 < _size44; ++_i48)
+            uint32_t _size24;
+            ::apache::thrift::protocol::TType _etype27;
+            xfer += iprot->readListBegin(_etype27, _size24);
+            this->key_value_metadata.resize(_size24);
+            uint32_t _i28;
+            for (_i28 = 0; _i28 < _size24; ++_i28)
             {
-              xfer += this->key_value_metadata[_i48].read(iprot);
+              xfer += this->key_value_metadata[_i28].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2061,14 +1550,14 @@ uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->encoding_stats.clear();
-            uint32_t _size49;
-            ::apache::thrift::protocol::TType _etype52;
-            xfer += iprot->readListBegin(_etype52, _size49);
-            this->encoding_stats.resize(_size49);
-            uint32_t _i53;
-            for (_i53 = 0; _i53 < _size49; ++_i53)
+            uint32_t _size29;
+            ::apache::thrift::protocol::TType _etype32;
+            xfer += iprot->readListBegin(_etype32, _size29);
+            this->encoding_stats.resize(_size29);
+            uint32_t _i33;
+            for (_i33 = 0; _i33 < _size29; ++_i33)
             {
-              xfer += this->encoding_stats[_i53].read(iprot);
+              xfer += this->encoding_stats[_i33].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2107,93 +1596,106 @@ uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t ColumnMetaData::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("ColumnMetaData");
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_I32, 1);
   xfer += oprot->writeI32((int32_t)this->type);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("encodings", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I32, static_cast<uint32_t>(this->encodings.size()));
-    std::vector<Encoding::type> ::const_iterator _iter54;
-    for (_iter54 = this->encodings.begin(); _iter54 != this->encodings.end(); ++_iter54)
+    std::vector<Encoding::type> ::const_iterator _iter34;
+    for (_iter34 = this->encodings.begin(); _iter34 != this->encodings.end(); ++_iter34)
     {
-      xfer += oprot->writeI32((int32_t)(*_iter54));
+      xfer += oprot->writeI32((int32_t)(*_iter34));
     }
     xfer += oprot->writeListEnd();
   }
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("path_in_schema", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->path_in_schema.size()));
-    std::vector<std::string> ::const_iterator _iter55;
-    for (_iter55 = this->path_in_schema.begin(); _iter55 != this->path_in_schema.end(); ++_iter55)
+    std::vector<std::string> ::const_iterator _iter35;
+    for (_iter35 = this->path_in_schema.begin(); _iter35 != this->path_in_schema.end(); ++_iter35)
     {
-      xfer += oprot->writeString((*_iter55));
+      xfer += oprot->writeString((*_iter35));
     }
     xfer += oprot->writeListEnd();
   }
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("codec", ::apache::thrift::protocol::T_I32, 4);
   xfer += oprot->writeI32((int32_t)this->codec);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("num_values", ::apache::thrift::protocol::T_I64, 5);
   xfer += oprot->writeI64(this->num_values);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("total_uncompressed_size", ::apache::thrift::protocol::T_I64, 6);
   xfer += oprot->writeI64(this->total_uncompressed_size);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("total_compressed_size", ::apache::thrift::protocol::T_I64, 7);
   xfer += oprot->writeI64(this->total_compressed_size);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.key_value_metadata) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("key_value_metadata", ::apache::thrift::protocol::T_LIST, 8);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->key_value_metadata.size()));
-      std::vector<KeyValue> ::const_iterator _iter56;
-      for (_iter56 = this->key_value_metadata.begin(); _iter56 != this->key_value_metadata.end(); ++_iter56)
+      std::vector<KeyValue> ::const_iterator _iter36;
+      for (_iter36 = this->key_value_metadata.begin(); _iter36 != this->key_value_metadata.end(); ++_iter36)
       {
-        xfer += (*_iter56).write(oprot);
+        xfer += (*_iter36).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
+  ++fcnt;
   xfer += oprot->writeFieldBegin("data_page_offset", ::apache::thrift::protocol::T_I64, 9);
   xfer += oprot->writeI64(this->data_page_offset);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.index_page_offset) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("index_page_offset", ::apache::thrift::protocol::T_I64, 10);
     xfer += oprot->writeI64(this->index_page_offset);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.dictionary_page_offset) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("dictionary_page_offset", ::apache::thrift::protocol::T_I64, 11);
     xfer += oprot->writeI64(this->dictionary_page_offset);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.statistics) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("statistics", ::apache::thrift::protocol::T_STRUCT, 12);
     xfer += this->statistics.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.encoding_stats) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("encoding_stats", ::apache::thrift::protocol::T_LIST, 13);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->encoding_stats.size()));
-      std::vector<PageEncodingStats> ::const_iterator _iter57;
-      for (_iter57 = this->encoding_stats.begin(); _iter57 != this->encoding_stats.end(); ++_iter57)
+      std::vector<PageEncodingStats> ::const_iterator _iter37;
+      for (_iter37 = this->encoding_stats.begin(); _iter37 != this->encoding_stats.end(); ++_iter37)
       {
-        xfer += (*_iter57).write(oprot);
+        xfer += (*_iter37).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2222,80 +1724,11 @@ void swap(ColumnMetaData &a, ColumnMetaData &b) {
   swap(a.__isset, b.__isset);
 }
 
-ColumnMetaData::ColumnMetaData(const ColumnMetaData& other58) {
-  type = other58.type;
-  encodings = other58.encodings;
-  path_in_schema = other58.path_in_schema;
-  codec = other58.codec;
-  num_values = other58.num_values;
-  total_uncompressed_size = other58.total_uncompressed_size;
-  total_compressed_size = other58.total_compressed_size;
-  key_value_metadata = other58.key_value_metadata;
-  data_page_offset = other58.data_page_offset;
-  index_page_offset = other58.index_page_offset;
-  dictionary_page_offset = other58.dictionary_page_offset;
-  statistics = other58.statistics;
-  encoding_stats = other58.encoding_stats;
-  __isset = other58.__isset;
-}
-ColumnMetaData& ColumnMetaData::operator=(const ColumnMetaData& other59) {
-  type = other59.type;
-  encodings = other59.encodings;
-  path_in_schema = other59.path_in_schema;
-  codec = other59.codec;
-  num_values = other59.num_values;
-  total_uncompressed_size = other59.total_uncompressed_size;
-  total_compressed_size = other59.total_compressed_size;
-  key_value_metadata = other59.key_value_metadata;
-  data_page_offset = other59.data_page_offset;
-  index_page_offset = other59.index_page_offset;
-  dictionary_page_offset = other59.dictionary_page_offset;
-  statistics = other59.statistics;
-  encoding_stats = other59.encoding_stats;
-  __isset = other59.__isset;
-  return *this;
-}
-void ColumnMetaData::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "ColumnMetaData(";
-  out << "type=" << to_string(type);
-  out << ", " << "encodings=" << to_string(encodings);
-  out << ", " << "path_in_schema=" << to_string(path_in_schema);
-  out << ", " << "codec=" << to_string(codec);
-  out << ", " << "num_values=" << to_string(num_values);
-  out << ", " << "total_uncompressed_size=" << to_string(total_uncompressed_size);
-  out << ", " << "total_compressed_size=" << to_string(total_compressed_size);
-  out << ", " << "key_value_metadata="; (__isset.key_value_metadata ? (out << to_string(key_value_metadata)) : (out << "<null>"));
-  out << ", " << "data_page_offset=" << to_string(data_page_offset);
-  out << ", " << "index_page_offset="; (__isset.index_page_offset ? (out << to_string(index_page_offset)) : (out << "<null>"));
-  out << ", " << "dictionary_page_offset="; (__isset.dictionary_page_offset ? (out << to_string(dictionary_page_offset)) : (out << "<null>"));
-  out << ", " << "statistics="; (__isset.statistics ? (out << to_string(statistics)) : (out << "<null>"));
-  out << ", " << "encoding_stats="; (__isset.encoding_stats ? (out << to_string(encoding_stats)) : (out << "<null>"));
-  out << ")";
-}
-
-
-ColumnChunk::~ColumnChunk() throw() {
-}
-
-
-void ColumnChunk::__set_file_path(const std::string& val) {
-  this->file_path = val;
-__isset.file_path = true;
-}
-
-void ColumnChunk::__set_file_offset(const int64_t val) {
-  this->file_offset = val;
-}
-
-void ColumnChunk::__set_meta_data(const ColumnMetaData& val) {
-  this->meta_data = val;
-__isset.meta_data = true;
-}
+const char* ColumnChunk::ascii_fingerprint = "F9F2DFFF1A7805AEF05AA10B23AF3108";
+const uint8_t ColumnChunk::binary_fingerprint[16] = {0xF9,0xF2,0xDF,0xFF,0x1A,0x78,0x05,0xAE,0xF0,0x5A,0xA1,0x0B,0x23,0xAF,0x31,0x08};
 
 uint32_t ColumnChunk::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2355,19 +1788,22 @@ uint32_t ColumnChunk::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t ColumnChunk::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("ColumnChunk");
 
   if (this->__isset.file_path) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("file_path", ::apache::thrift::protocol::T_STRING, 1);
     xfer += oprot->writeString(this->file_path);
     xfer += oprot->writeFieldEnd();
   }
+  ++fcnt;
   xfer += oprot->writeFieldBegin("file_offset", ::apache::thrift::protocol::T_I64, 2);
   xfer += oprot->writeI64(this->file_offset);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.meta_data) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("meta_data", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->meta_data.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -2385,53 +1821,11 @@ void swap(ColumnChunk &a, ColumnChunk &b) {
   swap(a.__isset, b.__isset);
 }
 
-ColumnChunk::ColumnChunk(const ColumnChunk& other60) {
-  file_path = other60.file_path;
-  file_offset = other60.file_offset;
-  meta_data = other60.meta_data;
-  __isset = other60.__isset;
-}
-ColumnChunk& ColumnChunk::operator=(const ColumnChunk& other61) {
-  file_path = other61.file_path;
-  file_offset = other61.file_offset;
-  meta_data = other61.meta_data;
-  __isset = other61.__isset;
-  return *this;
-}
-void ColumnChunk::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "ColumnChunk(";
-  out << "file_path="; (__isset.file_path ? (out << to_string(file_path)) : (out << "<null>"));
-  out << ", " << "file_offset=" << to_string(file_offset);
-  out << ", " << "meta_data="; (__isset.meta_data ? (out << to_string(meta_data)) : (out << "<null>"));
-  out << ")";
-}
-
-
-RowGroup::~RowGroup() throw() {
-}
-
-
-void RowGroup::__set_columns(const std::vector<ColumnChunk> & val) {
-  this->columns = val;
-}
-
-void RowGroup::__set_total_byte_size(const int64_t val) {
-  this->total_byte_size = val;
-}
-
-void RowGroup::__set_num_rows(const int64_t val) {
-  this->num_rows = val;
-}
-
-void RowGroup::__set_sorting_columns(const std::vector<SortingColumn> & val) {
-  this->sorting_columns = val;
-__isset.sorting_columns = true;
-}
+const char* RowGroup::ascii_fingerprint = "9BCFCB6790B06809B46424957993EDA6";
+const uint8_t RowGroup::binary_fingerprint[16] = {0x9B,0xCF,0xCB,0x67,0x90,0xB0,0x68,0x09,0xB4,0x64,0x24,0x95,0x79,0x93,0xED,0xA6};
 
 uint32_t RowGroup::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2457,14 +1851,14 @@ uint32_t RowGroup::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->columns.clear();
-            uint32_t _size62;
-            ::apache::thrift::protocol::TType _etype65;
-            xfer += iprot->readListBegin(_etype65, _size62);
-            this->columns.resize(_size62);
-            uint32_t _i66;
-            for (_i66 = 0; _i66 < _size62; ++_i66)
+            uint32_t _size38;
+            ::apache::thrift::protocol::TType _etype41;
+            xfer += iprot->readListBegin(_etype41, _size38);
+            this->columns.resize(_size38);
+            uint32_t _i42;
+            for (_i42 = 0; _i42 < _size38; ++_i42)
             {
-              xfer += this->columns[_i66].read(iprot);
+              xfer += this->columns[_i42].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2493,14 +1887,14 @@ uint32_t RowGroup::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->sorting_columns.clear();
-            uint32_t _size67;
-            ::apache::thrift::protocol::TType _etype70;
-            xfer += iprot->readListBegin(_etype70, _size67);
-            this->sorting_columns.resize(_size67);
-            uint32_t _i71;
-            for (_i71 = 0; _i71 < _size67; ++_i71)
+            uint32_t _size43;
+            ::apache::thrift::protocol::TType _etype46;
+            xfer += iprot->readListBegin(_etype46, _size43);
+            this->sorting_columns.resize(_size43);
+            uint32_t _i47;
+            for (_i47 = 0; _i47 < _size43; ++_i47)
             {
-              xfer += this->sorting_columns[_i71].read(iprot);
+              xfer += this->sorting_columns[_i47].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2529,37 +1923,41 @@ uint32_t RowGroup::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t RowGroup::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("RowGroup");
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("columns", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->columns.size()));
-    std::vector<ColumnChunk> ::const_iterator _iter72;
-    for (_iter72 = this->columns.begin(); _iter72 != this->columns.end(); ++_iter72)
+    std::vector<ColumnChunk> ::const_iterator _iter48;
+    for (_iter48 = this->columns.begin(); _iter48 != this->columns.end(); ++_iter48)
     {
-      xfer += (*_iter72).write(oprot);
+      xfer += (*_iter48).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("total_byte_size", ::apache::thrift::protocol::T_I64, 2);
   xfer += oprot->writeI64(this->total_byte_size);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("num_rows", ::apache::thrift::protocol::T_I64, 3);
   xfer += oprot->writeI64(this->num_rows);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.sorting_columns) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("sorting_columns", ::apache::thrift::protocol::T_LIST, 4);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->sorting_columns.size()));
-      std::vector<SortingColumn> ::const_iterator _iter73;
-      for (_iter73 = this->sorting_columns.begin(); _iter73 != this->sorting_columns.end(); ++_iter73)
+      std::vector<SortingColumn> ::const_iterator _iter49;
+      for (_iter49 = this->sorting_columns.begin(); _iter49 != this->sorting_columns.end(); ++_iter49)
       {
-        xfer += (*_iter73).write(oprot);
+        xfer += (*_iter49).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2579,65 +1977,11 @@ void swap(RowGroup &a, RowGroup &b) {
   swap(a.__isset, b.__isset);
 }
 
-RowGroup::RowGroup(const RowGroup& other74) {
-  columns = other74.columns;
-  total_byte_size = other74.total_byte_size;
-  num_rows = other74.num_rows;
-  sorting_columns = other74.sorting_columns;
-  __isset = other74.__isset;
-}
-RowGroup& RowGroup::operator=(const RowGroup& other75) {
-  columns = other75.columns;
-  total_byte_size = other75.total_byte_size;
-  num_rows = other75.num_rows;
-  sorting_columns = other75.sorting_columns;
-  __isset = other75.__isset;
-  return *this;
-}
-void RowGroup::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "RowGroup(";
-  out << "columns=" << to_string(columns);
-  out << ", " << "total_byte_size=" << to_string(total_byte_size);
-  out << ", " << "num_rows=" << to_string(num_rows);
-  out << ", " << "sorting_columns="; (__isset.sorting_columns ? (out << to_string(sorting_columns)) : (out << "<null>"));
-  out << ")";
-}
-
-
-FileMetaData::~FileMetaData() throw() {
-}
-
-
-void FileMetaData::__set_version(const int32_t val) {
-  this->version = val;
-}
-
-void FileMetaData::__set_schema(const std::vector<SchemaElement> & val) {
-  this->schema = val;
-}
-
-void FileMetaData::__set_num_rows(const int64_t val) {
-  this->num_rows = val;
-}
-
-void FileMetaData::__set_row_groups(const std::vector<RowGroup> & val) {
-  this->row_groups = val;
-}
-
-void FileMetaData::__set_key_value_metadata(const std::vector<KeyValue> & val) {
-  this->key_value_metadata = val;
-__isset.key_value_metadata = true;
-}
-
-void FileMetaData::__set_created_by(const std::string& val) {
-  this->created_by = val;
-__isset.created_by = true;
-}
+const char* FileMetaData::ascii_fingerprint = "D76119B1A4F2B4F404F095255FBDBD9A";
+const uint8_t FileMetaData::binary_fingerprint[16] = {0xD7,0x61,0x19,0xB1,0xA4,0xF2,0xB4,0xF4,0x04,0xF0,0x95,0x25,0x5F,0xBD,0xBD,0x9A};
 
 uint32_t FileMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
 
-  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
   std::string fname;
   ::apache::thrift::protocol::TType ftype;
@@ -2672,14 +2016,14 @@ uint32_t FileMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->schema.clear();
-            uint32_t _size76;
-            ::apache::thrift::protocol::TType _etype79;
-            xfer += iprot->readListBegin(_etype79, _size76);
-            this->schema.resize(_size76);
-            uint32_t _i80;
-            for (_i80 = 0; _i80 < _size76; ++_i80)
+            uint32_t _size50;
+            ::apache::thrift::protocol::TType _etype53;
+            xfer += iprot->readListBegin(_etype53, _size50);
+            this->schema.resize(_size50);
+            uint32_t _i54;
+            for (_i54 = 0; _i54 < _size50; ++_i54)
             {
-              xfer += this->schema[_i80].read(iprot);
+              xfer += this->schema[_i54].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2700,14 +2044,14 @@ uint32_t FileMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->row_groups.clear();
-            uint32_t _size81;
-            ::apache::thrift::protocol::TType _etype84;
-            xfer += iprot->readListBegin(_etype84, _size81);
-            this->row_groups.resize(_size81);
-            uint32_t _i85;
-            for (_i85 = 0; _i85 < _size81; ++_i85)
+            uint32_t _size55;
+            ::apache::thrift::protocol::TType _etype58;
+            xfer += iprot->readListBegin(_etype58, _size55);
+            this->row_groups.resize(_size55);
+            uint32_t _i59;
+            for (_i59 = 0; _i59 < _size55; ++_i59)
             {
-              xfer += this->row_groups[_i85].read(iprot);
+              xfer += this->row_groups[_i59].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2720,14 +2064,14 @@ uint32_t FileMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->key_value_metadata.clear();
-            uint32_t _size86;
-            ::apache::thrift::protocol::TType _etype89;
-            xfer += iprot->readListBegin(_etype89, _size86);
-            this->key_value_metadata.resize(_size86);
-            uint32_t _i90;
-            for (_i90 = 0; _i90 < _size86; ++_i90)
+            uint32_t _size60;
+            ::apache::thrift::protocol::TType _etype63;
+            xfer += iprot->readListBegin(_etype63, _size60);
+            this->key_value_metadata.resize(_size60);
+            uint32_t _i64;
+            for (_i64 = 0; _i64 < _size60; ++_i64)
             {
-              xfer += this->key_value_metadata[_i90].read(iprot);
+              xfer += this->key_value_metadata[_i64].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2766,55 +2110,61 @@ uint32_t FileMetaData::read(::apache::thrift::protocol::TProtocol* iprot) {
 
 uint32_t FileMetaData::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  uint32_t fcnt = 0;
   xfer += oprot->writeStructBegin("FileMetaData");
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("version", ::apache::thrift::protocol::T_I32, 1);
   xfer += oprot->writeI32(this->version);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("schema", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->schema.size()));
-    std::vector<SchemaElement> ::const_iterator _iter91;
-    for (_iter91 = this->schema.begin(); _iter91 != this->schema.end(); ++_iter91)
+    std::vector<SchemaElement> ::const_iterator _iter65;
+    for (_iter65 = this->schema.begin(); _iter65 != this->schema.end(); ++_iter65)
     {
-      xfer += (*_iter91).write(oprot);
+      xfer += (*_iter65).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("num_rows", ::apache::thrift::protocol::T_I64, 3);
   xfer += oprot->writeI64(this->num_rows);
   xfer += oprot->writeFieldEnd();
 
+  ++fcnt;
   xfer += oprot->writeFieldBegin("row_groups", ::apache::thrift::protocol::T_LIST, 4);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->row_groups.size()));
-    std::vector<RowGroup> ::const_iterator _iter92;
-    for (_iter92 = this->row_groups.begin(); _iter92 != this->row_groups.end(); ++_iter92)
+    std::vector<RowGroup> ::const_iterator _iter66;
+    for (_iter66 = this->row_groups.begin(); _iter66 != this->row_groups.end(); ++_iter66)
     {
-      xfer += (*_iter92).write(oprot);
+      xfer += (*_iter66).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.key_value_metadata) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("key_value_metadata", ::apache::thrift::protocol::T_LIST, 5);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->key_value_metadata.size()));
-      std::vector<KeyValue> ::const_iterator _iter93;
-      for (_iter93 = this->key_value_metadata.begin(); _iter93 != this->key_value_metadata.end(); ++_iter93)
+      std::vector<KeyValue> ::const_iterator _iter67;
+      for (_iter67 = this->key_value_metadata.begin(); _iter67 != this->key_value_metadata.end(); ++_iter67)
       {
-        xfer += (*_iter93).write(oprot);
+        xfer += (*_iter67).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.created_by) {
+    ++fcnt;
     xfer += oprot->writeFieldBegin("created_by", ::apache::thrift::protocol::T_STRING, 6);
     xfer += oprot->writeString(this->created_by);
     xfer += oprot->writeFieldEnd();
@@ -2835,35 +2185,4 @@ void swap(FileMetaData &a, FileMetaData &b) {
   swap(a.__isset, b.__isset);
 }
 
-FileMetaData::FileMetaData(const FileMetaData& other94) {
-  version = other94.version;
-  schema = other94.schema;
-  num_rows = other94.num_rows;
-  row_groups = other94.row_groups;
-  key_value_metadata = other94.key_value_metadata;
-  created_by = other94.created_by;
-  __isset = other94.__isset;
-}
-FileMetaData& FileMetaData::operator=(const FileMetaData& other95) {
-  version = other95.version;
-  schema = other95.schema;
-  num_rows = other95.num_rows;
-  row_groups = other95.row_groups;
-  key_value_metadata = other95.key_value_metadata;
-  created_by = other95.created_by;
-  __isset = other95.__isset;
-  return *this;
-}
-void FileMetaData::printTo(std::ostream& out) const {
-  using ::apache::thrift::to_string;
-  out << "FileMetaData(";
-  out << "version=" << to_string(version);
-  out << ", " << "schema=" << to_string(schema);
-  out << ", " << "num_rows=" << to_string(num_rows);
-  out << ", " << "row_groups=" << to_string(row_groups);
-  out << ", " << "key_value_metadata="; (__isset.key_value_metadata ? (out << to_string(key_value_metadata)) : (out << "<null>"));
-  out << ", " << "created_by="; (__isset.created_by ? (out << to_string(created_by)) : (out << "<null>"));
-  out << ")";
-}
-
 } // namespace