This is an automated email from the ASF dual-hosted git repository.

pitrou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 388e95be0a GH-50267: [C++][Parquet] Upgrade thrift compiler from 
0.21.0 to 0.23.0 (#50268)
388e95be0a is described below

commit 388e95be0a5d68b31d24e9778fc1fc5cc239298c
Author: Zehua Zou <[email protected]>
AuthorDate: Mon Jun 29 16:05:54 2026 +0800

    GH-50267: [C++][Parquet] Upgrade thrift compiler from 0.21.0 to 0.23.0 
(#50268)
    
    ### Rationale for this change
    
    Thrift 0.22.0 removed virtual in generated code when templates feature is 
enabled. So it will not generate unnecessary vtables for the class.
    
    ### What changes are included in this PR?
    
    Just update generated code.
    
    ### Are these changes tested?
    
    Yes.
    
    ### Are there any user-facing changes?
    
    No.
    * GitHub Issue: #50267
    
    Authored-by: Zehua Zou <[email protected]>
    Signed-off-by: Antoine Pitrou <[email protected]>
---
 cpp/src/generated/parquet_types.cpp | 120 ++++++------
 cpp/src/generated/parquet_types.h   | 356 ++++++++++++++++++------------------
 cpp/src/generated/parquet_types.tcc |   2 +-
 3 files changed, 239 insertions(+), 239 deletions(-)

diff --git a/cpp/src/generated/parquet_types.cpp 
b/cpp/src/generated/parquet_types.cpp
index cbec2ccd65..cf8debb79e 100644
--- a/cpp/src/generated/parquet_types.cpp
+++ b/cpp/src/generated/parquet_types.cpp
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (0.21.0)
+ * Autogenerated by Thrift Compiler (0.23.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -686,7 +686,7 @@ std::ostream& operator<<(std::ostream& out, const 
SizeStatistics& obj)
 }
 
 
-void swap(SizeStatistics &a, SizeStatistics &b) {
+void swap(SizeStatistics &a, SizeStatistics &b) noexcept {
   using ::std::swap;
   swap(a.unencoded_byte_array_data_bytes, b.unencoded_byte_array_data_bytes);
   swap(a.repetition_level_histogram, b.repetition_level_histogram);
@@ -803,7 +803,7 @@ std::ostream& operator<<(std::ostream& out, const 
BoundingBox& obj)
 }
 
 
-void swap(BoundingBox &a, BoundingBox &b) {
+void swap(BoundingBox &a, BoundingBox &b) noexcept {
   using ::std::swap;
   swap(a.xmin, b.xmin);
   swap(a.xmax, b.xmax);
@@ -928,7 +928,7 @@ std::ostream& operator<<(std::ostream& out, const 
GeospatialStatistics& obj)
 }
 
 
-void swap(GeospatialStatistics &a, GeospatialStatistics &b) {
+void swap(GeospatialStatistics &a, GeospatialStatistics &b) noexcept {
   using ::std::swap;
   swap(a.bbox, b.bbox);
   swap(a.geospatial_types, b.geospatial_types);
@@ -1045,7 +1045,7 @@ std::ostream& operator<<(std::ostream& out, const 
Statistics& obj)
 }
 
 
-void swap(Statistics &a, Statistics &b) {
+void swap(Statistics &a, Statistics &b) noexcept {
   using ::std::swap;
   swap(a.max, b.max);
   swap(a.min, b.min);
@@ -1178,7 +1178,7 @@ std::ostream& operator<<(std::ostream& out, const 
StringType& obj)
 }
 
 
-void swap(StringType &a, StringType &b) {
+void swap(StringType &a, StringType &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1222,7 +1222,7 @@ std::ostream& operator<<(std::ostream& out, const 
UUIDType& obj)
 }
 
 
-void swap(UUIDType &a, UUIDType &b) {
+void swap(UUIDType &a, UUIDType &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1266,7 +1266,7 @@ std::ostream& operator<<(std::ostream& out, const 
MapType& obj)
 }
 
 
-void swap(MapType &a, MapType &b) {
+void swap(MapType &a, MapType &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1310,7 +1310,7 @@ std::ostream& operator<<(std::ostream& out, const 
ListType& obj)
 }
 
 
-void swap(ListType &a, ListType &b) {
+void swap(ListType &a, ListType &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1354,7 +1354,7 @@ std::ostream& operator<<(std::ostream& out, const 
EnumType& obj)
 }
 
 
-void swap(EnumType &a, EnumType &b) {
+void swap(EnumType &a, EnumType &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1398,7 +1398,7 @@ std::ostream& operator<<(std::ostream& out, const 
DateType& obj)
 }
 
 
-void swap(DateType &a, DateType &b) {
+void swap(DateType &a, DateType &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1442,7 +1442,7 @@ std::ostream& operator<<(std::ostream& out, const 
Float16Type& obj)
 }
 
 
-void swap(Float16Type &a, Float16Type &b) {
+void swap(Float16Type &a, Float16Type &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1486,7 +1486,7 @@ std::ostream& operator<<(std::ostream& out, const 
NullType& obj)
 }
 
 
-void swap(NullType &a, NullType &b) {
+void swap(NullType &a, NullType &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1540,7 +1540,7 @@ std::ostream& operator<<(std::ostream& out, const 
DecimalType& obj)
 }
 
 
-void swap(DecimalType &a, DecimalType &b) {
+void swap(DecimalType &a, DecimalType &b) noexcept {
   using ::std::swap;
   swap(a.scale, b.scale);
   swap(a.precision, b.precision);
@@ -1594,7 +1594,7 @@ std::ostream& operator<<(std::ostream& out, const 
MilliSeconds& obj)
 }
 
 
-void swap(MilliSeconds &a, MilliSeconds &b) {
+void swap(MilliSeconds &a, MilliSeconds &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1638,7 +1638,7 @@ std::ostream& operator<<(std::ostream& out, const 
MicroSeconds& obj)
 }
 
 
-void swap(MicroSeconds &a, MicroSeconds &b) {
+void swap(MicroSeconds &a, MicroSeconds &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1682,7 +1682,7 @@ std::ostream& operator<<(std::ostream& out, const 
NanoSeconds& obj)
 }
 
 
-void swap(NanoSeconds &a, NanoSeconds &b) {
+void swap(NanoSeconds &a, NanoSeconds &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -1741,7 +1741,7 @@ std::ostream& operator<<(std::ostream& out, const 
TimeUnit& obj)
 }
 
 
-void swap(TimeUnit &a, TimeUnit &b) {
+void swap(TimeUnit &a, TimeUnit &b) noexcept {
   using ::std::swap;
   swap(a.MILLIS, b.MILLIS);
   swap(a.MICROS, b.MICROS);
@@ -1823,7 +1823,7 @@ std::ostream& operator<<(std::ostream& out, const 
TimestampType& obj)
 }
 
 
-void swap(TimestampType &a, TimestampType &b) {
+void swap(TimestampType &a, TimestampType &b) noexcept {
   using ::std::swap;
   swap(a.isAdjustedToUTC, b.isAdjustedToUTC);
   swap(a.unit, b.unit);
@@ -1886,7 +1886,7 @@ std::ostream& operator<<(std::ostream& out, const 
TimeType& obj)
 }
 
 
-void swap(TimeType &a, TimeType &b) {
+void swap(TimeType &a, TimeType &b) noexcept {
   using ::std::swap;
   swap(a.isAdjustedToUTC, b.isAdjustedToUTC);
   swap(a.unit, b.unit);
@@ -1950,7 +1950,7 @@ std::ostream& operator<<(std::ostream& out, const 
IntType& obj)
 }
 
 
-void swap(IntType &a, IntType &b) {
+void swap(IntType &a, IntType &b) noexcept {
   using ::std::swap;
   swap(a.bitWidth, b.bitWidth);
   swap(a.isSigned, b.isSigned);
@@ -2004,7 +2004,7 @@ std::ostream& operator<<(std::ostream& out, const 
JsonType& obj)
 }
 
 
-void swap(JsonType &a, JsonType &b) {
+void swap(JsonType &a, JsonType &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -2048,7 +2048,7 @@ std::ostream& operator<<(std::ostream& out, const 
BsonType& obj)
 }
 
 
-void swap(BsonType &a, BsonType &b) {
+void swap(BsonType &a, BsonType &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -2098,7 +2098,7 @@ std::ostream& operator<<(std::ostream& out, const 
VariantType& obj)
 }
 
 
-void swap(VariantType &a, VariantType &b) {
+void swap(VariantType &a, VariantType &b) noexcept {
   using ::std::swap;
   swap(a.specification_version, b.specification_version);
   swap(a.__isset, b.__isset);
@@ -2157,7 +2157,7 @@ std::ostream& operator<<(std::ostream& out, const 
GeometryType& obj)
 }
 
 
-void swap(GeometryType &a, GeometryType &b) {
+void swap(GeometryType &a, GeometryType &b) noexcept {
   using ::std::swap;
   swap(a.crs, b.crs);
   swap(a.__isset, b.__isset);
@@ -2222,7 +2222,7 @@ std::ostream& operator<<(std::ostream& out, const 
GeographyType& obj)
 }
 
 
-void swap(GeographyType &a, GeographyType &b) {
+void swap(GeographyType &a, GeographyType &b) noexcept {
   using ::std::swap;
   swap(a.crs, b.crs);
   swap(a.algorithm, b.algorithm);
@@ -2370,7 +2370,7 @@ std::ostream& operator<<(std::ostream& out, const 
LogicalType& obj)
 }
 
 
-void swap(LogicalType &a, LogicalType &b) {
+void swap(LogicalType &a, LogicalType &b) noexcept {
   using ::std::swap;
   swap(a.STRING, b.STRING);
   swap(a.MAP, b.MAP);
@@ -2641,7 +2641,7 @@ std::ostream& operator<<(std::ostream& out, const 
SchemaElement& obj)
 }
 
 
-void swap(SchemaElement &a, SchemaElement &b) {
+void swap(SchemaElement &a, SchemaElement &b) noexcept {
   using ::std::swap;
   swap(a.type, b.type);
   swap(a.type_length, b.type_length);
@@ -2807,7 +2807,7 @@ std::ostream& operator<<(std::ostream& out, const 
DataPageHeader& obj)
 }
 
 
-void swap(DataPageHeader &a, DataPageHeader &b) {
+void swap(DataPageHeader &a, DataPageHeader &b) noexcept {
   using ::std::swap;
   swap(a.num_values, b.num_values);
   swap(a.encoding, b.encoding);
@@ -2892,7 +2892,7 @@ std::ostream& operator<<(std::ostream& out, const 
IndexPageHeader& obj)
 }
 
 
-void swap(IndexPageHeader &a, IndexPageHeader &b) {
+void swap(IndexPageHeader &a, IndexPageHeader &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -2952,7 +2952,7 @@ std::ostream& operator<<(std::ostream& out, const 
DictionaryPageHeader& obj)
 }
 
 
-void swap(DictionaryPageHeader &a, DictionaryPageHeader &b) {
+void swap(DictionaryPageHeader &a, DictionaryPageHeader &b) noexcept {
   using ::std::swap;
   swap(a.num_values, b.num_values);
   swap(a.encoding, b.encoding);
@@ -3062,7 +3062,7 @@ std::ostream& operator<<(std::ostream& out, const 
DataPageHeaderV2& obj)
 }
 
 
-void swap(DataPageHeaderV2 &a, DataPageHeaderV2 &b) {
+void swap(DataPageHeaderV2 &a, DataPageHeaderV2 &b) noexcept {
   using ::std::swap;
   swap(a.num_values, b.num_values);
   swap(a.num_nulls, b.num_nulls);
@@ -3173,7 +3173,7 @@ std::ostream& operator<<(std::ostream& out, const 
SplitBlockAlgorithm& obj)
 }
 
 
-void swap(SplitBlockAlgorithm &a, SplitBlockAlgorithm &b) {
+void swap(SplitBlockAlgorithm &a, SplitBlockAlgorithm &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -3222,7 +3222,7 @@ std::ostream& operator<<(std::ostream& out, const 
BloomFilterAlgorithm& obj)
 }
 
 
-void swap(BloomFilterAlgorithm &a, BloomFilterAlgorithm &b) {
+void swap(BloomFilterAlgorithm &a, BloomFilterAlgorithm &b) noexcept {
   using ::std::swap;
   swap(a.BLOCK, b.BLOCK);
   swap(a.__isset, b.__isset);
@@ -3275,7 +3275,7 @@ std::ostream& operator<<(std::ostream& out, const XxHash& 
obj)
 }
 
 
-void swap(XxHash &a, XxHash &b) {
+void swap(XxHash &a, XxHash &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -3324,7 +3324,7 @@ std::ostream& operator<<(std::ostream& out, const 
BloomFilterHash& obj)
 }
 
 
-void swap(BloomFilterHash &a, BloomFilterHash &b) {
+void swap(BloomFilterHash &a, BloomFilterHash &b) noexcept {
   using ::std::swap;
   swap(a.XXHASH, b.XXHASH);
   swap(a.__isset, b.__isset);
@@ -3377,7 +3377,7 @@ std::ostream& operator<<(std::ostream& out, const 
Uncompressed& obj)
 }
 
 
-void swap(Uncompressed &a, Uncompressed &b) {
+void swap(Uncompressed &a, Uncompressed &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -3426,7 +3426,7 @@ std::ostream& operator<<(std::ostream& out, const 
BloomFilterCompression& obj)
 }
 
 
-void swap(BloomFilterCompression &a, BloomFilterCompression &b) {
+void swap(BloomFilterCompression &a, BloomFilterCompression &b) noexcept {
   using ::std::swap;
   swap(a.UNCOMPRESSED, b.UNCOMPRESSED);
   swap(a.__isset, b.__isset);
@@ -3496,7 +3496,7 @@ std::ostream& operator<<(std::ostream& out, const 
BloomFilterHeader& obj)
 }
 
 
-void swap(BloomFilterHeader &a, BloomFilterHeader &b) {
+void swap(BloomFilterHeader &a, BloomFilterHeader &b) noexcept {
   using ::std::swap;
   swap(a.numBytes, b.numBytes);
   swap(a.algorithm, b.algorithm);
@@ -3607,7 +3607,7 @@ std::ostream& operator<<(std::ostream& out, const 
PageHeader& obj)
 }
 
 
-void swap(PageHeader &a, PageHeader &b) {
+void swap(PageHeader &a, PageHeader &b) noexcept {
   using ::std::swap;
   swap(a.type, b.type);
   swap(a.uncompressed_page_size, b.uncompressed_page_size);
@@ -3735,7 +3735,7 @@ std::ostream& operator<<(std::ostream& out, const 
KeyValue& obj)
 }
 
 
-void swap(KeyValue &a, KeyValue &b) {
+void swap(KeyValue &a, KeyValue &b) noexcept {
   using ::std::swap;
   swap(a.key, b.key);
   swap(a.value, b.value);
@@ -3811,7 +3811,7 @@ std::ostream& operator<<(std::ostream& out, const 
SortingColumn& obj)
 }
 
 
-void swap(SortingColumn &a, SortingColumn &b) {
+void swap(SortingColumn &a, SortingColumn &b) noexcept {
   using ::std::swap;
   swap(a.column_idx, b.column_idx);
   swap(a.descending, b.descending);
@@ -3888,7 +3888,7 @@ std::ostream& operator<<(std::ostream& out, const 
PageEncodingStats& obj)
 }
 
 
-void swap(PageEncodingStats &a, PageEncodingStats &b) {
+void swap(PageEncodingStats &a, PageEncodingStats &b) noexcept {
   using ::std::swap;
   swap(a.page_type, b.page_type);
   swap(a.encoding, b.encoding);
@@ -4037,7 +4037,7 @@ std::ostream& operator<<(std::ostream& out, const 
ColumnMetaData& obj)
 }
 
 
-void swap(ColumnMetaData &a, ColumnMetaData &b) {
+void swap(ColumnMetaData &a, ColumnMetaData &b) noexcept {
   using ::std::swap;
   swap(a.type, b.type);
   swap(a.encodings, b.encodings);
@@ -4234,7 +4234,7 @@ std::ostream& operator<<(std::ostream& out, const 
EncryptionWithFooterKey& obj)
 }
 
 
-void swap(EncryptionWithFooterKey &a, EncryptionWithFooterKey &b) {
+void swap(EncryptionWithFooterKey &a, EncryptionWithFooterKey &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -4288,7 +4288,7 @@ std::ostream& operator<<(std::ostream& out, const 
EncryptionWithColumnKey& obj)
 }
 
 
-void swap(EncryptionWithColumnKey &a, EncryptionWithColumnKey &b) {
+void swap(EncryptionWithColumnKey &a, EncryptionWithColumnKey &b) noexcept {
   using ::std::swap;
   swap(a.path_in_schema, b.path_in_schema);
   swap(a.key_metadata, b.key_metadata);
@@ -4359,7 +4359,7 @@ std::ostream& operator<<(std::ostream& out, const 
ColumnCryptoMetaData& obj)
 }
 
 
-void swap(ColumnCryptoMetaData &a, ColumnCryptoMetaData &b) {
+void swap(ColumnCryptoMetaData &a, ColumnCryptoMetaData &b) noexcept {
   using ::std::swap;
   swap(a.ENCRYPTION_WITH_FOOTER_KEY, b.ENCRYPTION_WITH_FOOTER_KEY);
   swap(a.ENCRYPTION_WITH_COLUMN_KEY, b.ENCRYPTION_WITH_COLUMN_KEY);
@@ -4473,7 +4473,7 @@ std::ostream& operator<<(std::ostream& out, const 
ColumnChunk& obj)
 }
 
 
-void swap(ColumnChunk &a, ColumnChunk &b) {
+void swap(ColumnChunk &a, ColumnChunk &b) noexcept {
   using ::std::swap;
   swap(a.file_path, b.file_path);
   swap(a.file_offset, b.file_offset);
@@ -4641,7 +4641,7 @@ std::ostream& operator<<(std::ostream& out, const 
RowGroup& obj)
 }
 
 
-void swap(RowGroup &a, RowGroup &b) {
+void swap(RowGroup &a, RowGroup &b) noexcept {
   using ::std::swap;
   swap(a.columns, b.columns);
   swap(a.total_byte_size, b.total_byte_size);
@@ -4748,7 +4748,7 @@ std::ostream& operator<<(std::ostream& out, const 
TypeDefinedOrder& obj)
 }
 
 
-void swap(TypeDefinedOrder &a, TypeDefinedOrder &b) {
+void swap(TypeDefinedOrder &a, TypeDefinedOrder &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -4792,7 +4792,7 @@ std::ostream& operator<<(std::ostream& out, const 
IEEE754TotalOrder& obj)
 }
 
 
-void swap(IEEE754TotalOrder &a, IEEE754TotalOrder &b) {
+void swap(IEEE754TotalOrder &a, IEEE754TotalOrder &b) noexcept {
   using ::std::swap;
   (void) a;
   (void) b;
@@ -4846,7 +4846,7 @@ std::ostream& operator<<(std::ostream& out, const 
ColumnOrder& obj)
 }
 
 
-void swap(ColumnOrder &a, ColumnOrder &b) {
+void swap(ColumnOrder &a, ColumnOrder &b) noexcept {
   using ::std::swap;
   swap(a.TYPE_ORDER, b.TYPE_ORDER);
   swap(a.IEEE_754_TOTAL_ORDER, b.IEEE_754_TOTAL_ORDER);
@@ -4924,7 +4924,7 @@ std::ostream& operator<<(std::ostream& out, const 
PageLocation& obj)
 }
 
 
-void swap(PageLocation &a, PageLocation &b) {
+void swap(PageLocation &a, PageLocation &b) noexcept {
   using ::std::swap;
   swap(a.offset, b.offset);
   swap(a.compressed_page_size, b.compressed_page_size);
@@ -4995,7 +4995,7 @@ std::ostream& operator<<(std::ostream& out, const 
OffsetIndex& obj)
 }
 
 
-void swap(OffsetIndex &a, OffsetIndex &b) {
+void swap(OffsetIndex &a, OffsetIndex &b) noexcept {
   using ::std::swap;
   swap(a.page_locations, b.page_locations);
   swap(a.unencoded_byte_array_data_bytes, b.unencoded_byte_array_data_bytes);
@@ -5093,7 +5093,7 @@ std::ostream& operator<<(std::ostream& out, const 
ColumnIndex& obj)
 }
 
 
-void swap(ColumnIndex &a, ColumnIndex &b) {
+void swap(ColumnIndex &a, ColumnIndex &b) noexcept {
   using ::std::swap;
   swap(a.null_pages, b.null_pages);
   swap(a.min_values, b.min_values);
@@ -5226,7 +5226,7 @@ std::ostream& operator<<(std::ostream& out, const 
AesGcmV1& obj)
 }
 
 
-void swap(AesGcmV1 &a, AesGcmV1 &b) {
+void swap(AesGcmV1 &a, AesGcmV1 &b) noexcept {
   using ::std::swap;
   swap(a.aad_prefix, b.aad_prefix);
   swap(a.aad_file_unique, b.aad_file_unique);
@@ -5317,7 +5317,7 @@ std::ostream& operator<<(std::ostream& out, const 
AesGcmCtrV1& obj)
 }
 
 
-void swap(AesGcmCtrV1 &a, AesGcmCtrV1 &b) {
+void swap(AesGcmCtrV1 &a, AesGcmCtrV1 &b) noexcept {
   using ::std::swap;
   swap(a.aad_prefix, b.aad_prefix);
   swap(a.aad_file_unique, b.aad_file_unique);
@@ -5400,7 +5400,7 @@ std::ostream& operator<<(std::ostream& out, const 
EncryptionAlgorithm& obj)
 }
 
 
-void swap(EncryptionAlgorithm &a, EncryptionAlgorithm &b) {
+void swap(EncryptionAlgorithm &a, EncryptionAlgorithm &b) noexcept {
   using ::std::swap;
   swap(a.AES_GCM_V1, b.AES_GCM_V1);
   swap(a.AES_GCM_CTR_V1, b.AES_GCM_CTR_V1);
@@ -5508,7 +5508,7 @@ std::ostream& operator<<(std::ostream& out, const 
FileMetaData& obj)
 }
 
 
-void swap(FileMetaData &a, FileMetaData &b) {
+void swap(FileMetaData &a, FileMetaData &b) noexcept {
   using ::std::swap;
   swap(a.version, b.version);
   swap(a.schema, b.schema);
@@ -5643,7 +5643,7 @@ std::ostream& operator<<(std::ostream& out, const 
FileCryptoMetaData& obj)
 }
 
 
-void swap(FileCryptoMetaData &a, FileCryptoMetaData &b) {
+void swap(FileCryptoMetaData &a, FileCryptoMetaData &b) noexcept {
   using ::std::swap;
   swap(a.encryption_algorithm, b.encryption_algorithm);
   swap(a.key_metadata, b.key_metadata);
diff --git a/cpp/src/generated/parquet_types.h 
b/cpp/src/generated/parquet_types.h
index 3dffae3c2a..7dc3ccc2de 100644
--- a/cpp/src/generated/parquet_types.h
+++ b/cpp/src/generated/parquet_types.h
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (0.21.0)
+ * Autogenerated by Thrift Compiler (0.23.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -510,7 +510,7 @@ class SizeStatistics {
   SizeStatistics& operator=(SizeStatistics&&) noexcept;
   SizeStatistics() noexcept;
 
-  virtual ~SizeStatistics() noexcept;
+  ~SizeStatistics() noexcept;
   /**
    * The number of physical bytes stored for BYTE_ARRAY data values assuming
    * no encoding. This is exclusive of the bytes needed to store the length of
@@ -569,10 +569,10 @@ class SizeStatistics {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(SizeStatistics &a, SizeStatistics &b);
+void swap(SizeStatistics &a, SizeStatistics &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const SizeStatistics& obj);
 
@@ -597,7 +597,7 @@ class BoundingBox {
   BoundingBox& operator=(BoundingBox&&) noexcept;
   BoundingBox() noexcept;
 
-  virtual ~BoundingBox() noexcept;
+  ~BoundingBox() noexcept;
   double xmin;
   double xmax;
   double ymin;
@@ -637,10 +637,10 @@ class BoundingBox {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(BoundingBox &a, BoundingBox &b);
+void swap(BoundingBox &a, BoundingBox &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const BoundingBox& obj);
 
@@ -662,7 +662,7 @@ class GeospatialStatistics {
   GeospatialStatistics& operator=(GeospatialStatistics&&) noexcept;
   GeospatialStatistics() noexcept;
 
-  virtual ~GeospatialStatistics() noexcept;
+  ~GeospatialStatistics() noexcept;
   /**
    * A bounding box of geospatial instances
    */
@@ -690,10 +690,10 @@ class GeospatialStatistics {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(GeospatialStatistics &a, GeospatialStatistics &b);
+void swap(GeospatialStatistics &a, GeospatialStatistics &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const GeospatialStatistics& obj);
 
@@ -723,7 +723,7 @@ class Statistics {
   Statistics& operator=(Statistics&&) noexcept;
   Statistics() noexcept;
 
-  virtual ~Statistics() noexcept;
+  ~Statistics() noexcept;
   /**
    * DEPRECATED: min and max value of the column. Use min_value and max_value.
    * 
@@ -814,10 +814,10 @@ class Statistics {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(Statistics &a, Statistics &b);
+void swap(Statistics &a, Statistics &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const Statistics& obj);
 
@@ -834,7 +834,7 @@ class StringType {
   StringType& operator=(StringType&&) noexcept;
   StringType() noexcept;
 
-  virtual ~StringType() noexcept;
+  ~StringType() noexcept;
 
   bool operator == (const StringType & /* rhs */) const;
   bool operator != (const StringType &rhs) const {
@@ -848,10 +848,10 @@ class StringType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(StringType &a, StringType &b);
+void swap(StringType &a, StringType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const StringType& obj);
 
@@ -865,7 +865,7 @@ class UUIDType {
   UUIDType& operator=(UUIDType&&) noexcept;
   UUIDType() noexcept;
 
-  virtual ~UUIDType() noexcept;
+  ~UUIDType() noexcept;
 
   bool operator == (const UUIDType & /* rhs */) const;
   bool operator != (const UUIDType &rhs) const {
@@ -879,10 +879,10 @@ class UUIDType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(UUIDType &a, UUIDType &b);
+void swap(UUIDType &a, UUIDType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const UUIDType& obj);
 
@@ -896,7 +896,7 @@ class MapType {
   MapType& operator=(MapType&&) noexcept;
   MapType() noexcept;
 
-  virtual ~MapType() noexcept;
+  ~MapType() noexcept;
 
   bool operator == (const MapType & /* rhs */) const;
   bool operator != (const MapType &rhs) const {
@@ -910,10 +910,10 @@ class MapType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(MapType &a, MapType &b);
+void swap(MapType &a, MapType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const MapType& obj);
 
@@ -927,7 +927,7 @@ class ListType {
   ListType& operator=(ListType&&) noexcept;
   ListType() noexcept;
 
-  virtual ~ListType() noexcept;
+  ~ListType() noexcept;
 
   bool operator == (const ListType & /* rhs */) const;
   bool operator != (const ListType &rhs) const {
@@ -941,10 +941,10 @@ class ListType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(ListType &a, ListType &b);
+void swap(ListType &a, ListType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const ListType& obj);
 
@@ -958,7 +958,7 @@ class EnumType {
   EnumType& operator=(EnumType&&) noexcept;
   EnumType() noexcept;
 
-  virtual ~EnumType() noexcept;
+  ~EnumType() noexcept;
 
   bool operator == (const EnumType & /* rhs */) const;
   bool operator != (const EnumType &rhs) const {
@@ -972,10 +972,10 @@ class EnumType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(EnumType &a, EnumType &b);
+void swap(EnumType &a, EnumType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const EnumType& obj);
 
@@ -989,7 +989,7 @@ class DateType {
   DateType& operator=(DateType&&) noexcept;
   DateType() noexcept;
 
-  virtual ~DateType() noexcept;
+  ~DateType() noexcept;
 
   bool operator == (const DateType & /* rhs */) const;
   bool operator != (const DateType &rhs) const {
@@ -1003,10 +1003,10 @@ class DateType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(DateType &a, DateType &b);
+void swap(DateType &a, DateType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const DateType& obj);
 
@@ -1020,7 +1020,7 @@ class Float16Type {
   Float16Type& operator=(Float16Type&&) noexcept;
   Float16Type() noexcept;
 
-  virtual ~Float16Type() noexcept;
+  ~Float16Type() noexcept;
 
   bool operator == (const Float16Type & /* rhs */) const;
   bool operator != (const Float16Type &rhs) const {
@@ -1034,10 +1034,10 @@ class Float16Type {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(Float16Type &a, Float16Type &b);
+void swap(Float16Type &a, Float16Type &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const Float16Type& obj);
 
@@ -1058,7 +1058,7 @@ class NullType {
   NullType& operator=(NullType&&) noexcept;
   NullType() noexcept;
 
-  virtual ~NullType() noexcept;
+  ~NullType() noexcept;
 
   bool operator == (const NullType & /* rhs */) const;
   bool operator != (const NullType &rhs) const {
@@ -1072,10 +1072,10 @@ class NullType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(NullType &a, NullType &b);
+void swap(NullType &a, NullType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const NullType& obj);
 
@@ -1100,7 +1100,7 @@ class DecimalType {
   DecimalType& operator=(DecimalType&&) noexcept;
   DecimalType() noexcept;
 
-  virtual ~DecimalType() noexcept;
+  ~DecimalType() noexcept;
   int32_t scale;
   int32_t precision;
 
@@ -1120,10 +1120,10 @@ class DecimalType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(DecimalType &a, DecimalType &b);
+void swap(DecimalType &a, DecimalType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const DecimalType& obj);
 
@@ -1140,7 +1140,7 @@ class MilliSeconds {
   MilliSeconds& operator=(MilliSeconds&&) noexcept;
   MilliSeconds() noexcept;
 
-  virtual ~MilliSeconds() noexcept;
+  ~MilliSeconds() noexcept;
 
   bool operator == (const MilliSeconds & /* rhs */) const;
   bool operator != (const MilliSeconds &rhs) const {
@@ -1154,10 +1154,10 @@ class MilliSeconds {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(MilliSeconds &a, MilliSeconds &b);
+void swap(MilliSeconds &a, MilliSeconds &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const MilliSeconds& obj);
 
@@ -1171,7 +1171,7 @@ class MicroSeconds {
   MicroSeconds& operator=(MicroSeconds&&) noexcept;
   MicroSeconds() noexcept;
 
-  virtual ~MicroSeconds() noexcept;
+  ~MicroSeconds() noexcept;
 
   bool operator == (const MicroSeconds & /* rhs */) const;
   bool operator != (const MicroSeconds &rhs) const {
@@ -1185,10 +1185,10 @@ class MicroSeconds {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(MicroSeconds &a, MicroSeconds &b);
+void swap(MicroSeconds &a, MicroSeconds &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const MicroSeconds& obj);
 
@@ -1202,7 +1202,7 @@ class NanoSeconds {
   NanoSeconds& operator=(NanoSeconds&&) noexcept;
   NanoSeconds() noexcept;
 
-  virtual ~NanoSeconds() noexcept;
+  ~NanoSeconds() noexcept;
 
   bool operator == (const NanoSeconds & /* rhs */) const;
   bool operator != (const NanoSeconds &rhs) const {
@@ -1216,10 +1216,10 @@ class NanoSeconds {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(NanoSeconds &a, NanoSeconds &b);
+void swap(NanoSeconds &a, NanoSeconds &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const NanoSeconds& obj);
 
@@ -1239,7 +1239,7 @@ class TimeUnit {
   TimeUnit& operator=(TimeUnit&&) noexcept;
   TimeUnit() noexcept;
 
-  virtual ~TimeUnit() noexcept;
+  ~TimeUnit() noexcept;
   MilliSeconds MILLIS;
   MicroSeconds MICROS;
   NanoSeconds NANOS;
@@ -1264,10 +1264,10 @@ class TimeUnit {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(TimeUnit &a, TimeUnit &b);
+void swap(TimeUnit &a, TimeUnit &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const TimeUnit& obj);
 
@@ -1286,7 +1286,7 @@ class TimestampType {
   TimestampType& operator=(TimestampType&&) noexcept;
   TimestampType() noexcept;
 
-  virtual ~TimestampType() noexcept;
+  ~TimestampType() noexcept;
   bool isAdjustedToUTC;
   TimeUnit unit;
 
@@ -1306,10 +1306,10 @@ class TimestampType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(TimestampType &a, TimestampType &b);
+void swap(TimestampType &a, TimestampType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const TimestampType& obj);
 
@@ -1328,7 +1328,7 @@ class TimeType {
   TimeType& operator=(TimeType&&) noexcept;
   TimeType() noexcept;
 
-  virtual ~TimeType() noexcept;
+  ~TimeType() noexcept;
   bool isAdjustedToUTC;
   TimeUnit unit;
 
@@ -1348,10 +1348,10 @@ class TimeType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(TimeType &a, TimeType &b);
+void swap(TimeType &a, TimeType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const TimeType& obj);
 
@@ -1372,7 +1372,7 @@ class IntType {
   IntType& operator=(IntType&&) noexcept;
   IntType() noexcept;
 
-  virtual ~IntType() noexcept;
+  ~IntType() noexcept;
   int8_t bitWidth;
   bool isSigned;
 
@@ -1392,10 +1392,10 @@ class IntType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(IntType &a, IntType &b);
+void swap(IntType &a, IntType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const IntType& obj);
 
@@ -1414,7 +1414,7 @@ class JsonType {
   JsonType& operator=(JsonType&&) noexcept;
   JsonType() noexcept;
 
-  virtual ~JsonType() noexcept;
+  ~JsonType() noexcept;
 
   bool operator == (const JsonType & /* rhs */) const;
   bool operator != (const JsonType &rhs) const {
@@ -1428,10 +1428,10 @@ class JsonType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(JsonType &a, JsonType &b);
+void swap(JsonType &a, JsonType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const JsonType& obj);
 
@@ -1450,7 +1450,7 @@ class BsonType {
   BsonType& operator=(BsonType&&) noexcept;
   BsonType() noexcept;
 
-  virtual ~BsonType() noexcept;
+  ~BsonType() noexcept;
 
   bool operator == (const BsonType & /* rhs */) const;
   bool operator != (const BsonType &rhs) const {
@@ -1464,10 +1464,10 @@ class BsonType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(BsonType &a, BsonType &b);
+void swap(BsonType &a, BsonType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const BsonType& obj);
 
@@ -1488,7 +1488,7 @@ class VariantType {
   VariantType& operator=(VariantType&&) noexcept;
   VariantType() noexcept;
 
-  virtual ~VariantType() noexcept;
+  ~VariantType() noexcept;
   int8_t specification_version;
 
   _VariantType__isset __isset;
@@ -1507,10 +1507,10 @@ class VariantType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(VariantType &a, VariantType &b);
+void swap(VariantType &a, VariantType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const VariantType& obj);
 
@@ -1542,7 +1542,7 @@ class GeometryType {
   GeometryType& operator=(GeometryType&&) noexcept;
   GeometryType() noexcept;
 
-  virtual ~GeometryType() noexcept;
+  ~GeometryType() noexcept;
   std::string crs;
 
   _GeometryType__isset __isset;
@@ -1561,10 +1561,10 @@ class GeometryType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(GeometryType &a, GeometryType &b);
+void swap(GeometryType &a, GeometryType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const GeometryType& obj);
 
@@ -1600,7 +1600,7 @@ class GeographyType {
   GeographyType& operator=(GeographyType&&) noexcept;
   GeographyType() noexcept;
 
-  virtual ~GeographyType() noexcept;
+  ~GeographyType() noexcept;
   std::string crs;
   /**
    * 
@@ -1626,10 +1626,10 @@ class GeographyType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(GeographyType &a, GeographyType &b);
+void swap(GeographyType &a, GeographyType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const GeographyType& obj);
 
@@ -1670,7 +1670,7 @@ class LogicalType {
   LogicalType& operator=(LogicalType&&) noexcept;
   LogicalType() noexcept;
 
-  virtual ~LogicalType() noexcept;
+  ~LogicalType() noexcept;
   StringType STRING;
   MapType MAP;
   ListType LIST;
@@ -1737,10 +1737,10 @@ class LogicalType {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(LogicalType &a, LogicalType &b);
+void swap(LogicalType &a, LogicalType &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const LogicalType& obj);
 
@@ -1772,7 +1772,7 @@ class SchemaElement {
   SchemaElement& operator=(SchemaElement&&) noexcept;
   SchemaElement() noexcept;
 
-  virtual ~SchemaElement() noexcept;
+  ~SchemaElement() noexcept;
   /**
    * Data type for this field. Not set if the current element is a non-leaf 
node
    * 
@@ -1868,10 +1868,10 @@ class SchemaElement {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(SchemaElement &a, SchemaElement &b);
+void swap(SchemaElement &a, SchemaElement &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const SchemaElement& obj);
 
@@ -1892,7 +1892,7 @@ class DataPageHeader {
   DataPageHeader& operator=(DataPageHeader&&) noexcept;
   DataPageHeader() noexcept;
 
-  virtual ~DataPageHeader() noexcept;
+  ~DataPageHeader() noexcept;
   /**
    * Number of values, including NULLs, in this data page.
    * 
@@ -1949,10 +1949,10 @@ class DataPageHeader {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(DataPageHeader &a, DataPageHeader &b);
+void swap(DataPageHeader &a, DataPageHeader &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const DataPageHeader& obj);
 
@@ -1966,7 +1966,7 @@ class IndexPageHeader {
   IndexPageHeader& operator=(IndexPageHeader&&) noexcept;
   IndexPageHeader() noexcept;
 
-  virtual ~IndexPageHeader() noexcept;
+  ~IndexPageHeader() noexcept;
 
   bool operator == (const IndexPageHeader & /* rhs */) const;
   bool operator != (const IndexPageHeader &rhs) const {
@@ -1980,10 +1980,10 @@ class IndexPageHeader {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(IndexPageHeader &a, IndexPageHeader &b);
+void swap(IndexPageHeader &a, IndexPageHeader &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const IndexPageHeader& obj);
 
@@ -2007,7 +2007,7 @@ class DictionaryPageHeader {
   DictionaryPageHeader& operator=(DictionaryPageHeader&&) noexcept;
   DictionaryPageHeader() noexcept;
 
-  virtual ~DictionaryPageHeader() noexcept;
+  ~DictionaryPageHeader() noexcept;
   /**
    * Number of values in the dictionary *
    */
@@ -2043,10 +2043,10 @@ class DictionaryPageHeader {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(DictionaryPageHeader &a, DictionaryPageHeader &b);
+void swap(DictionaryPageHeader &a, DictionaryPageHeader &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const DictionaryPageHeader& obj);
 
@@ -2076,7 +2076,7 @@ class DataPageHeaderV2 {
   DataPageHeaderV2& operator=(DataPageHeaderV2&&) noexcept;
   DataPageHeaderV2() noexcept;
 
-  virtual ~DataPageHeaderV2() noexcept;
+  ~DataPageHeaderV2() noexcept;
   /**
    * Number of values, including NULLs, in this data page. *
    */
@@ -2150,10 +2150,10 @@ class DataPageHeaderV2 {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(DataPageHeaderV2 &a, DataPageHeaderV2 &b);
+void swap(DataPageHeaderV2 &a, DataPageHeaderV2 &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const DataPageHeaderV2& obj);
 
@@ -2170,7 +2170,7 @@ class SplitBlockAlgorithm {
   SplitBlockAlgorithm& operator=(SplitBlockAlgorithm&&) noexcept;
   SplitBlockAlgorithm() noexcept;
 
-  virtual ~SplitBlockAlgorithm() noexcept;
+  ~SplitBlockAlgorithm() noexcept;
 
   bool operator == (const SplitBlockAlgorithm & /* rhs */) const;
   bool operator != (const SplitBlockAlgorithm &rhs) const {
@@ -2184,10 +2184,10 @@ class SplitBlockAlgorithm {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(SplitBlockAlgorithm &a, SplitBlockAlgorithm &b);
+void swap(SplitBlockAlgorithm &a, SplitBlockAlgorithm &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const SplitBlockAlgorithm& obj);
 
@@ -2208,7 +2208,7 @@ class BloomFilterAlgorithm {
   BloomFilterAlgorithm& operator=(BloomFilterAlgorithm&&) noexcept;
   BloomFilterAlgorithm() noexcept;
 
-  virtual ~BloomFilterAlgorithm() noexcept;
+  ~BloomFilterAlgorithm() noexcept;
   /**
    * Block-based Bloom filter. *
    */
@@ -2230,10 +2230,10 @@ class BloomFilterAlgorithm {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(BloomFilterAlgorithm &a, BloomFilterAlgorithm &b);
+void swap(BloomFilterAlgorithm &a, BloomFilterAlgorithm &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const BloomFilterAlgorithm& obj);
 
@@ -2252,7 +2252,7 @@ class XxHash {
   XxHash& operator=(XxHash&&) noexcept;
   XxHash() noexcept;
 
-  virtual ~XxHash() noexcept;
+  ~XxHash() noexcept;
 
   bool operator == (const XxHash & /* rhs */) const;
   bool operator != (const XxHash &rhs) const {
@@ -2266,10 +2266,10 @@ class XxHash {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(XxHash &a, XxHash &b);
+void swap(XxHash &a, XxHash &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const XxHash& obj);
 
@@ -2292,7 +2292,7 @@ class BloomFilterHash {
   BloomFilterHash& operator=(BloomFilterHash&&) noexcept;
   BloomFilterHash() noexcept;
 
-  virtual ~BloomFilterHash() noexcept;
+  ~BloomFilterHash() noexcept;
   /**
    * xxHash Strategy. *
    */
@@ -2314,10 +2314,10 @@ class BloomFilterHash {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(BloomFilterHash &a, BloomFilterHash &b);
+void swap(BloomFilterHash &a, BloomFilterHash &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const BloomFilterHash& obj);
 
@@ -2335,7 +2335,7 @@ class Uncompressed {
   Uncompressed& operator=(Uncompressed&&) noexcept;
   Uncompressed() noexcept;
 
-  virtual ~Uncompressed() noexcept;
+  ~Uncompressed() noexcept;
 
   bool operator == (const Uncompressed & /* rhs */) const;
   bool operator != (const Uncompressed &rhs) const {
@@ -2349,10 +2349,10 @@ class Uncompressed {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(Uncompressed &a, Uncompressed &b);
+void swap(Uncompressed &a, Uncompressed &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const Uncompressed& obj);
 
@@ -2370,7 +2370,7 @@ class BloomFilterCompression {
   BloomFilterCompression& operator=(BloomFilterCompression&&) noexcept;
   BloomFilterCompression() noexcept;
 
-  virtual ~BloomFilterCompression() noexcept;
+  ~BloomFilterCompression() noexcept;
   Uncompressed UNCOMPRESSED;
 
   _BloomFilterCompression__isset __isset;
@@ -2389,10 +2389,10 @@ class BloomFilterCompression {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(BloomFilterCompression &a, BloomFilterCompression &b);
+void swap(BloomFilterCompression &a, BloomFilterCompression &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const BloomFilterCompression& obj);
 
@@ -2411,7 +2411,7 @@ class BloomFilterHeader {
   BloomFilterHeader& operator=(BloomFilterHeader&&) noexcept;
   BloomFilterHeader() noexcept;
 
-  virtual ~BloomFilterHeader() noexcept;
+  ~BloomFilterHeader() noexcept;
   /**
    * The size of bitset in bytes *
    */
@@ -2449,10 +2449,10 @@ class BloomFilterHeader {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(BloomFilterHeader &a, BloomFilterHeader &b);
+void swap(BloomFilterHeader &a, BloomFilterHeader &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const BloomFilterHeader& obj);
 
@@ -2474,7 +2474,7 @@ class PageHeader {
   PageHeader& operator=(PageHeader&&) noexcept;
   PageHeader() noexcept;
 
-  virtual ~PageHeader() noexcept;
+  ~PageHeader() noexcept;
   /**
    * the type of the page: indicates which of the *_header fields is set *
    * 
@@ -2543,10 +2543,10 @@ class PageHeader {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(PageHeader &a, PageHeader &b);
+void swap(PageHeader &a, PageHeader &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const PageHeader& obj);
 
@@ -2567,7 +2567,7 @@ class KeyValue {
   KeyValue& operator=(KeyValue&&) noexcept;
   KeyValue() noexcept;
 
-  virtual ~KeyValue() noexcept;
+  ~KeyValue() noexcept;
   std::string key;
   std::string value;
 
@@ -2589,10 +2589,10 @@ class KeyValue {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(KeyValue &a, KeyValue &b);
+void swap(KeyValue &a, KeyValue &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const KeyValue& obj);
 
@@ -2609,7 +2609,7 @@ class SortingColumn {
   SortingColumn& operator=(SortingColumn&&) noexcept;
   SortingColumn() noexcept;
 
-  virtual ~SortingColumn() noexcept;
+  ~SortingColumn() noexcept;
   /**
    * The ordinal position of the column (in this row group) *
    */
@@ -2642,10 +2642,10 @@ class SortingColumn {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(SortingColumn &a, SortingColumn &b);
+void swap(SortingColumn &a, SortingColumn &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const SortingColumn& obj);
 
@@ -2662,7 +2662,7 @@ class PageEncodingStats {
   PageEncodingStats& operator=(PageEncodingStats&&) noexcept;
   PageEncodingStats() noexcept;
 
-  virtual ~PageEncodingStats() noexcept;
+  ~PageEncodingStats() noexcept;
   /**
    * the page type (data/dic/...) *
    * 
@@ -2698,10 +2698,10 @@ class PageEncodingStats {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(PageEncodingStats &a, PageEncodingStats &b);
+void swap(PageEncodingStats &a, PageEncodingStats &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const PageEncodingStats& obj);
 
@@ -2730,7 +2730,7 @@ class ColumnMetaData {
   ColumnMetaData& operator=(ColumnMetaData&&) noexcept;
   ColumnMetaData() noexcept;
 
-  virtual ~ColumnMetaData() noexcept;
+  ~ColumnMetaData() noexcept;
   /**
    * Type of this column *
    * 
@@ -2863,10 +2863,10 @@ class ColumnMetaData {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(ColumnMetaData &a, ColumnMetaData &b);
+void swap(ColumnMetaData &a, ColumnMetaData &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const ColumnMetaData& obj);
 
@@ -2880,7 +2880,7 @@ class EncryptionWithFooterKey {
   EncryptionWithFooterKey& operator=(EncryptionWithFooterKey&&) noexcept;
   EncryptionWithFooterKey() noexcept;
 
-  virtual ~EncryptionWithFooterKey() noexcept;
+  ~EncryptionWithFooterKey() noexcept;
 
   bool operator == (const EncryptionWithFooterKey & /* rhs */) const;
   bool operator != (const EncryptionWithFooterKey &rhs) const {
@@ -2894,10 +2894,10 @@ class EncryptionWithFooterKey {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(EncryptionWithFooterKey &a, EncryptionWithFooterKey &b);
+void swap(EncryptionWithFooterKey &a, EncryptionWithFooterKey &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const EncryptionWithFooterKey& 
obj);
 
@@ -2915,7 +2915,7 @@ class EncryptionWithColumnKey {
   EncryptionWithColumnKey& operator=(EncryptionWithColumnKey&&) noexcept;
   EncryptionWithColumnKey() noexcept;
 
-  virtual ~EncryptionWithColumnKey() noexcept;
+  ~EncryptionWithColumnKey() noexcept;
   /**
    * Column path in schema *
    */
@@ -2943,10 +2943,10 @@ class EncryptionWithColumnKey {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(EncryptionWithColumnKey &a, EncryptionWithColumnKey &b);
+void swap(EncryptionWithColumnKey &a, EncryptionWithColumnKey &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const EncryptionWithColumnKey& 
obj);
 
@@ -2965,7 +2965,7 @@ class ColumnCryptoMetaData {
   ColumnCryptoMetaData& operator=(ColumnCryptoMetaData&&) noexcept;
   ColumnCryptoMetaData() noexcept;
 
-  virtual ~ColumnCryptoMetaData() noexcept;
+  ~ColumnCryptoMetaData() noexcept;
   EncryptionWithFooterKey ENCRYPTION_WITH_FOOTER_KEY;
   EncryptionWithColumnKey ENCRYPTION_WITH_COLUMN_KEY;
 
@@ -2987,10 +2987,10 @@ class ColumnCryptoMetaData {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(ColumnCryptoMetaData &a, ColumnCryptoMetaData &b);
+void swap(ColumnCryptoMetaData &a, ColumnCryptoMetaData &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const ColumnCryptoMetaData& obj);
 
@@ -3015,7 +3015,7 @@ class ColumnChunk {
   ColumnChunk& operator=(ColumnChunk&&) noexcept;
   ColumnChunk() noexcept;
 
-  virtual ~ColumnChunk() noexcept;
+  ~ColumnChunk() noexcept;
   /**
    * File where column data is stored.  If not set, assumed to be same file as
    * metadata.  This path is relative to the current file.
@@ -3113,10 +3113,10 @@ class ColumnChunk {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(ColumnChunk &a, ColumnChunk &b);
+void swap(ColumnChunk &a, ColumnChunk &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const ColumnChunk& obj);
 
@@ -3137,7 +3137,7 @@ class RowGroup {
   RowGroup& operator=(RowGroup&&) noexcept;
   RowGroup() noexcept;
 
-  virtual ~RowGroup() noexcept;
+  ~RowGroup() noexcept;
   /**
    * Metadata for each column chunk in this row group.
    * This list must have the same order as the SchemaElement list in 
FileMetaData.
@@ -3200,10 +3200,10 @@ class RowGroup {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(RowGroup &a, RowGroup &b);
+void swap(RowGroup &a, RowGroup &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const RowGroup& obj);
 
@@ -3220,7 +3220,7 @@ class TypeDefinedOrder {
   TypeDefinedOrder& operator=(TypeDefinedOrder&&) noexcept;
   TypeDefinedOrder() noexcept;
 
-  virtual ~TypeDefinedOrder() noexcept;
+  ~TypeDefinedOrder() noexcept;
 
   bool operator == (const TypeDefinedOrder & /* rhs */) const;
   bool operator != (const TypeDefinedOrder &rhs) const {
@@ -3234,10 +3234,10 @@ class TypeDefinedOrder {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(TypeDefinedOrder &a, TypeDefinedOrder &b);
+void swap(TypeDefinedOrder &a, TypeDefinedOrder &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const TypeDefinedOrder& obj);
 
@@ -3254,7 +3254,7 @@ class IEEE754TotalOrder {
   IEEE754TotalOrder& operator=(IEEE754TotalOrder&&) noexcept;
   IEEE754TotalOrder() noexcept;
 
-  virtual ~IEEE754TotalOrder() noexcept;
+  ~IEEE754TotalOrder() noexcept;
 
   bool operator == (const IEEE754TotalOrder & /* rhs */) const;
   bool operator != (const IEEE754TotalOrder &rhs) const {
@@ -3268,10 +3268,10 @@ class IEEE754TotalOrder {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(IEEE754TotalOrder &a, IEEE754TotalOrder &b);
+void swap(IEEE754TotalOrder &a, IEEE754TotalOrder &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const IEEE754TotalOrder& obj);
 
@@ -3303,7 +3303,7 @@ class ColumnOrder {
   ColumnOrder& operator=(ColumnOrder&&) noexcept;
   ColumnOrder() noexcept;
 
-  virtual ~ColumnOrder() noexcept;
+  ~ColumnOrder() noexcept;
   /**
    * The sort orders for logical types are:
    *   UTF8 - unsigned byte-wise comparison
@@ -3415,10 +3415,10 @@ class ColumnOrder {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(ColumnOrder &a, ColumnOrder &b);
+void swap(ColumnOrder &a, ColumnOrder &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const ColumnOrder& obj);
 
@@ -3432,7 +3432,7 @@ class PageLocation {
   PageLocation& operator=(PageLocation&&) noexcept;
   PageLocation() noexcept;
 
-  virtual ~PageLocation() noexcept;
+  ~PageLocation() noexcept;
   /**
    * Offset of the page in the file *
    */
@@ -3467,10 +3467,10 @@ class PageLocation {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(PageLocation &a, PageLocation &b);
+void swap(PageLocation &a, PageLocation &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const PageLocation& obj);
 
@@ -3495,7 +3495,7 @@ class OffsetIndex {
   OffsetIndex& operator=(OffsetIndex&&) noexcept;
   OffsetIndex() noexcept;
 
-  virtual ~OffsetIndex() noexcept;
+  ~OffsetIndex() noexcept;
   /**
    * PageLocations, ordered by increasing PageLocation.offset. It is required
    * that page_locations[i].first_row_index < 
page_locations[i+1].first_row_index.
@@ -3527,10 +3527,10 @@ class OffsetIndex {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(OffsetIndex &a, OffsetIndex &b);
+void swap(OffsetIndex &a, OffsetIndex &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const OffsetIndex& obj);
 
@@ -3561,7 +3561,7 @@ class ColumnIndex {
   ColumnIndex& operator=(ColumnIndex&&) noexcept;
   ColumnIndex() noexcept;
 
-  virtual ~ColumnIndex() noexcept;
+  ~ColumnIndex() noexcept;
   /**
    * A list of Boolean values to determine the validity of the corresponding
    * min and max values. If true, a page contains only null values, and writers
@@ -3671,10 +3671,10 @@ class ColumnIndex {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(ColumnIndex &a, ColumnIndex &b);
+void swap(ColumnIndex &a, ColumnIndex &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const ColumnIndex& obj);
 
@@ -3694,7 +3694,7 @@ class AesGcmV1 {
   AesGcmV1& operator=(AesGcmV1&&) noexcept;
   AesGcmV1() noexcept;
 
-  virtual ~AesGcmV1() noexcept;
+  ~AesGcmV1() noexcept;
   /**
    * AAD prefix *
    */
@@ -3729,10 +3729,10 @@ class AesGcmV1 {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(AesGcmV1 &a, AesGcmV1 &b);
+void swap(AesGcmV1 &a, AesGcmV1 &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const AesGcmV1& obj);
 
@@ -3752,7 +3752,7 @@ class AesGcmCtrV1 {
   AesGcmCtrV1& operator=(AesGcmCtrV1&&) noexcept;
   AesGcmCtrV1() noexcept;
 
-  virtual ~AesGcmCtrV1() noexcept;
+  ~AesGcmCtrV1() noexcept;
   /**
    * AAD prefix *
    */
@@ -3787,10 +3787,10 @@ class AesGcmCtrV1 {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(AesGcmCtrV1 &a, AesGcmCtrV1 &b);
+void swap(AesGcmCtrV1 &a, AesGcmCtrV1 &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const AesGcmCtrV1& obj);
 
@@ -3809,7 +3809,7 @@ class EncryptionAlgorithm {
   EncryptionAlgorithm& operator=(EncryptionAlgorithm&&) noexcept;
   EncryptionAlgorithm() noexcept;
 
-  virtual ~EncryptionAlgorithm() noexcept;
+  ~EncryptionAlgorithm() noexcept;
   AesGcmV1 AES_GCM_V1;
   AesGcmCtrV1 AES_GCM_CTR_V1;
 
@@ -3831,10 +3831,10 @@ class EncryptionAlgorithm {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(EncryptionAlgorithm &a, EncryptionAlgorithm &b);
+void swap(EncryptionAlgorithm &a, EncryptionAlgorithm &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const EncryptionAlgorithm& obj);
 
@@ -3859,7 +3859,7 @@ class FileMetaData {
   FileMetaData& operator=(FileMetaData&&) noexcept;
   FileMetaData() noexcept;
 
-  virtual ~FileMetaData() noexcept;
+  ~FileMetaData() noexcept;
   /**
    * Version of this file
    * 
@@ -3959,10 +3959,10 @@ class FileMetaData {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(FileMetaData &a, FileMetaData &b);
+void swap(FileMetaData &a, FileMetaData &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const FileMetaData& obj);
 
@@ -3983,7 +3983,7 @@ class FileCryptoMetaData {
   FileCryptoMetaData& operator=(FileCryptoMetaData&&) noexcept;
   FileCryptoMetaData() noexcept;
 
-  virtual ~FileCryptoMetaData() noexcept;
+  ~FileCryptoMetaData() noexcept;
   /**
    * Encryption algorithm. This field is only used for files
    * with encrypted footer. Files with plaintext footer store algorithm id
@@ -4014,10 +4014,10 @@ class FileCryptoMetaData {
   template <class Protocol_>
   uint32_t write(Protocol_* oprot) const;
 
-  virtual void printTo(std::ostream& out) const;
+  void printTo(std::ostream& out) const;
 };
 
-void swap(FileCryptoMetaData &a, FileCryptoMetaData &b);
+void swap(FileCryptoMetaData &a, FileCryptoMetaData &b) noexcept;
 
 std::ostream& operator<<(std::ostream& out, const FileCryptoMetaData& obj);
 
diff --git a/cpp/src/generated/parquet_types.tcc 
b/cpp/src/generated/parquet_types.tcc
index 0a58fa79d3..01559f8973 100644
--- a/cpp/src/generated/parquet_types.tcc
+++ b/cpp/src/generated/parquet_types.tcc
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (0.21.0)
+ * Autogenerated by Thrift Compiler (0.23.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

Reply via email to