// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: orc_proto.proto
// Protobuf C++ Version: 7.35.1

#ifndef orc_5fproto_2eproto_2epb_2eh
#define orc_5fproto_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>
#include <utility>

// clang-format off
#include "google/protobuf/runtime_version.h"
#if PROTOBUF_VERSION != 7035001
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/message.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
#include "google/protobuf/generated_enum_reflection.h"
#include "google/protobuf/unknown_field_set.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_orc_5fproto_2eproto

namespace google {
namespace protobuf {
namespace internal {
template <typename T>
::absl::string_view GetAnyMessageName();
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct TableStruct_orc_5fproto_2eproto {
  static const ::uint32_t offsets[];
};
extern "C" {
extern const ::google::protobuf::internal::DescriptorTable descriptor_table_orc_5fproto_2eproto;
}  // extern "C"
namespace orc {
namespace proto {
enum CalendarKind : int;
extern const uint32_t CalendarKind_internal_data_[];
enum ColumnEncoding_Kind : int;
extern const uint32_t ColumnEncoding_Kind_internal_data_[];
enum CompressionKind : int;
extern const uint32_t CompressionKind_internal_data_[];
enum EncryptionAlgorithm : int;
extern const uint32_t EncryptionAlgorithm_internal_data_[];
enum KeyProviderKind : int;
extern const uint32_t KeyProviderKind_internal_data_[];
enum Stream_Kind : int;
extern const uint32_t Stream_Kind_internal_data_[];
enum Type_EdgeInterpolationAlgorithm : int;
extern const uint32_t Type_EdgeInterpolationAlgorithm_internal_data_[];
enum Type_Kind : int;
extern const uint32_t Type_Kind_internal_data_[];
class BinaryStatistics;
struct BinaryStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern BinaryStatisticsGlobalsTypeInternal BinaryStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull BinaryStatistics_class_data_;
#else
extern const BinaryStatisticsGlobalsTypeInternal BinaryStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class BloomFilter;
struct BloomFilterGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern BloomFilterGlobalsTypeInternal BloomFilter_globals_;
extern const ::google::protobuf::internal::ClassDataFull BloomFilter_class_data_;
#else
extern const BloomFilterGlobalsTypeInternal BloomFilter_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class BloomFilterIndex;
struct BloomFilterIndexGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern BloomFilterIndexGlobalsTypeInternal BloomFilterIndex_globals_;
extern const ::google::protobuf::internal::ClassDataFull BloomFilterIndex_class_data_;
#else
extern const BloomFilterIndexGlobalsTypeInternal BloomFilterIndex_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class BoundingBox;
struct BoundingBoxGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern BoundingBoxGlobalsTypeInternal BoundingBox_globals_;
extern const ::google::protobuf::internal::ClassDataFull BoundingBox_class_data_;
#else
extern const BoundingBoxGlobalsTypeInternal BoundingBox_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class BucketStatistics;
struct BucketStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern BucketStatisticsGlobalsTypeInternal BucketStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull BucketStatistics_class_data_;
#else
extern const BucketStatisticsGlobalsTypeInternal BucketStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CollectionStatistics;
struct CollectionStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CollectionStatisticsGlobalsTypeInternal CollectionStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull CollectionStatistics_class_data_;
#else
extern const CollectionStatisticsGlobalsTypeInternal CollectionStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ColumnEncoding;
struct ColumnEncodingGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ColumnEncodingGlobalsTypeInternal ColumnEncoding_globals_;
extern const ::google::protobuf::internal::ClassDataFull ColumnEncoding_class_data_;
#else
extern const ColumnEncodingGlobalsTypeInternal ColumnEncoding_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ColumnStatistics;
struct ColumnStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ColumnStatisticsGlobalsTypeInternal ColumnStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull ColumnStatistics_class_data_;
#else
extern const ColumnStatisticsGlobalsTypeInternal ColumnStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ColumnarStripeStatistics;
struct ColumnarStripeStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ColumnarStripeStatisticsGlobalsTypeInternal ColumnarStripeStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull ColumnarStripeStatistics_class_data_;
#else
extern const ColumnarStripeStatisticsGlobalsTypeInternal ColumnarStripeStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DataMask;
struct DataMaskGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DataMaskGlobalsTypeInternal DataMask_globals_;
extern const ::google::protobuf::internal::ClassDataFull DataMask_class_data_;
#else
extern const DataMaskGlobalsTypeInternal DataMask_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DateStatistics;
struct DateStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DateStatisticsGlobalsTypeInternal DateStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull DateStatistics_class_data_;
#else
extern const DateStatisticsGlobalsTypeInternal DateStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DecimalStatistics;
struct DecimalStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DecimalStatisticsGlobalsTypeInternal DecimalStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull DecimalStatistics_class_data_;
#else
extern const DecimalStatisticsGlobalsTypeInternal DecimalStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DoubleStatistics;
struct DoubleStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DoubleStatisticsGlobalsTypeInternal DoubleStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull DoubleStatistics_class_data_;
#else
extern const DoubleStatisticsGlobalsTypeInternal DoubleStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Encryption;
struct EncryptionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EncryptionGlobalsTypeInternal Encryption_globals_;
extern const ::google::protobuf::internal::ClassDataFull Encryption_class_data_;
#else
extern const EncryptionGlobalsTypeInternal Encryption_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class EncryptionKey;
struct EncryptionKeyGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EncryptionKeyGlobalsTypeInternal EncryptionKey_globals_;
extern const ::google::protobuf::internal::ClassDataFull EncryptionKey_class_data_;
#else
extern const EncryptionKeyGlobalsTypeInternal EncryptionKey_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class EncryptionVariant;
struct EncryptionVariantGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern EncryptionVariantGlobalsTypeInternal EncryptionVariant_globals_;
extern const ::google::protobuf::internal::ClassDataFull EncryptionVariant_class_data_;
#else
extern const EncryptionVariantGlobalsTypeInternal EncryptionVariant_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FileStatistics;
struct FileStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FileStatisticsGlobalsTypeInternal FileStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull FileStatistics_class_data_;
#else
extern const FileStatisticsGlobalsTypeInternal FileStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FileTail;
struct FileTailGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FileTailGlobalsTypeInternal FileTail_globals_;
extern const ::google::protobuf::internal::ClassDataFull FileTail_class_data_;
#else
extern const FileTailGlobalsTypeInternal FileTail_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Footer;
struct FooterGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FooterGlobalsTypeInternal Footer_globals_;
extern const ::google::protobuf::internal::ClassDataFull Footer_class_data_;
#else
extern const FooterGlobalsTypeInternal Footer_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class GeospatialStatistics;
struct GeospatialStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern GeospatialStatisticsGlobalsTypeInternal GeospatialStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull GeospatialStatistics_class_data_;
#else
extern const GeospatialStatisticsGlobalsTypeInternal GeospatialStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IntegerStatistics;
struct IntegerStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IntegerStatisticsGlobalsTypeInternal IntegerStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull IntegerStatistics_class_data_;
#else
extern const IntegerStatisticsGlobalsTypeInternal IntegerStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Metadata;
struct MetadataGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern MetadataGlobalsTypeInternal Metadata_globals_;
extern const ::google::protobuf::internal::ClassDataFull Metadata_class_data_;
#else
extern const MetadataGlobalsTypeInternal Metadata_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PostScript;
struct PostScriptGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PostScriptGlobalsTypeInternal PostScript_globals_;
extern const ::google::protobuf::internal::ClassDataFull PostScript_class_data_;
#else
extern const PostScriptGlobalsTypeInternal PostScript_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RowIndex;
struct RowIndexGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RowIndexGlobalsTypeInternal RowIndex_globals_;
extern const ::google::protobuf::internal::ClassDataFull RowIndex_class_data_;
#else
extern const RowIndexGlobalsTypeInternal RowIndex_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RowIndexEntry;
struct RowIndexEntryGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RowIndexEntryGlobalsTypeInternal RowIndexEntry_globals_;
extern const ::google::protobuf::internal::ClassDataFull RowIndexEntry_class_data_;
#else
extern const RowIndexEntryGlobalsTypeInternal RowIndexEntry_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Stream;
struct StreamGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StreamGlobalsTypeInternal Stream_globals_;
extern const ::google::protobuf::internal::ClassDataFull Stream_class_data_;
#else
extern const StreamGlobalsTypeInternal Stream_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StringPair;
struct StringPairGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StringPairGlobalsTypeInternal StringPair_globals_;
extern const ::google::protobuf::internal::ClassDataFull StringPair_class_data_;
#else
extern const StringPairGlobalsTypeInternal StringPair_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StringStatistics;
struct StringStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StringStatisticsGlobalsTypeInternal StringStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull StringStatistics_class_data_;
#else
extern const StringStatisticsGlobalsTypeInternal StringStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StripeEncryptionVariant;
struct StripeEncryptionVariantGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StripeEncryptionVariantGlobalsTypeInternal StripeEncryptionVariant_globals_;
extern const ::google::protobuf::internal::ClassDataFull StripeEncryptionVariant_class_data_;
#else
extern const StripeEncryptionVariantGlobalsTypeInternal StripeEncryptionVariant_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StripeFooter;
struct StripeFooterGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StripeFooterGlobalsTypeInternal StripeFooter_globals_;
extern const ::google::protobuf::internal::ClassDataFull StripeFooter_class_data_;
#else
extern const StripeFooterGlobalsTypeInternal StripeFooter_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StripeInformation;
struct StripeInformationGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StripeInformationGlobalsTypeInternal StripeInformation_globals_;
extern const ::google::protobuf::internal::ClassDataFull StripeInformation_class_data_;
#else
extern const StripeInformationGlobalsTypeInternal StripeInformation_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StripeStatistics;
struct StripeStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StripeStatisticsGlobalsTypeInternal StripeStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull StripeStatistics_class_data_;
#else
extern const StripeStatisticsGlobalsTypeInternal StripeStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class TimestampStatistics;
struct TimestampStatisticsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TimestampStatisticsGlobalsTypeInternal TimestampStatistics_globals_;
extern const ::google::protobuf::internal::ClassDataFull TimestampStatistics_class_data_;
#else
extern const TimestampStatisticsGlobalsTypeInternal TimestampStatistics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Type;
struct TypeGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TypeGlobalsTypeInternal Type_globals_;
extern const ::google::protobuf::internal::ClassDataFull Type_class_data_;
#else
extern const TypeGlobalsTypeInternal Type_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UserMetadataItem;
struct UserMetadataItemGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UserMetadataItemGlobalsTypeInternal UserMetadataItem_globals_;
extern const ::google::protobuf::internal::ClassDataFull UserMetadataItem_class_data_;
#else
extern const UserMetadataItemGlobalsTypeInternal UserMetadataItem_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace proto
}  // namespace orc
namespace google {
namespace protobuf {
template <>
internal::EnumTraitsT<::orc::proto::CalendarKind_internal_data_>
    internal::EnumTraitsImpl::value<::orc::proto::CalendarKind>;
template <>
internal::EnumTraitsT<::orc::proto::ColumnEncoding_Kind_internal_data_>
    internal::EnumTraitsImpl::value<::orc::proto::ColumnEncoding_Kind>;
template <>
internal::EnumTraitsT<::orc::proto::CompressionKind_internal_data_>
    internal::EnumTraitsImpl::value<::orc::proto::CompressionKind>;
template <>
internal::EnumTraitsT<::orc::proto::EncryptionAlgorithm_internal_data_>
    internal::EnumTraitsImpl::value<::orc::proto::EncryptionAlgorithm>;
template <>
internal::EnumTraitsT<::orc::proto::KeyProviderKind_internal_data_>
    internal::EnumTraitsImpl::value<::orc::proto::KeyProviderKind>;
template <>
internal::EnumTraitsT<::orc::proto::Stream_Kind_internal_data_>
    internal::EnumTraitsImpl::value<::orc::proto::Stream_Kind>;
template <>
internal::EnumTraitsT<::orc::proto::Type_EdgeInterpolationAlgorithm_internal_data_>
    internal::EnumTraitsImpl::value<::orc::proto::Type_EdgeInterpolationAlgorithm>;
template <>
internal::EnumTraitsT<::orc::proto::Type_Kind_internal_data_>
    internal::EnumTraitsImpl::value<::orc::proto::Type_Kind>;
}  // namespace protobuf
}  // namespace google

namespace orc {
namespace proto {
enum Stream_Kind : int {
  Stream_Kind_PRESENT = 0,
  Stream_Kind_DATA = 1,
  Stream_Kind_LENGTH = 2,
  Stream_Kind_DICTIONARY_DATA = 3,
  Stream_Kind_DICTIONARY_COUNT = 4,
  Stream_Kind_SECONDARY = 5,
  Stream_Kind_ROW_INDEX = 6,
  Stream_Kind_BLOOM_FILTER = 7,
  Stream_Kind_BLOOM_FILTER_UTF8 = 8,
  Stream_Kind_ENCRYPTED_INDEX = 9,
  Stream_Kind_ENCRYPTED_DATA = 10,
  Stream_Kind_STRIPE_STATISTICS = 100,
  Stream_Kind_FILE_STATISTICS = 101,
};

extern const uint32_t Stream_Kind_internal_data_[];
inline constexpr Stream_Kind Stream_Kind_Kind_MIN =
    static_cast<Stream_Kind>(0);
inline constexpr Stream_Kind Stream_Kind_Kind_MAX =
    static_cast<Stream_Kind>(101);
[[nodiscard]] inline bool Stream_Kind_IsValid(int value) {
  return ::google::protobuf::internal::ValidateEnum(value, Stream_Kind_internal_data_);
}
inline constexpr int Stream_Kind_Kind_ARRAYSIZE = 101 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Stream_Kind_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(Stream_Kind) {
  return Stream_Kind_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& Stream_Kind_Name(T value) {
  static_assert(::std::is_same<T, Stream_Kind>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Kind_Name().");
  return ::google::protobuf::internal::NameOfEnum(Stream_Kind_descriptor(), value);
}
[[nodiscard]] inline bool Stream_Kind_Parse(
    ::absl::string_view name, Stream_Kind* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<Stream_Kind>(Stream_Kind_descriptor(), name,
                                           value);
}
enum ColumnEncoding_Kind : int {
  ColumnEncoding_Kind_DIRECT = 0,
  ColumnEncoding_Kind_DICTIONARY = 1,
  ColumnEncoding_Kind_DIRECT_V2 = 2,
  ColumnEncoding_Kind_DICTIONARY_V2 = 3,
};

extern const uint32_t ColumnEncoding_Kind_internal_data_[];
inline constexpr ColumnEncoding_Kind ColumnEncoding_Kind_Kind_MIN =
    static_cast<ColumnEncoding_Kind>(0);
inline constexpr ColumnEncoding_Kind ColumnEncoding_Kind_Kind_MAX =
    static_cast<ColumnEncoding_Kind>(3);
[[nodiscard]] inline bool ColumnEncoding_Kind_IsValid(int value) {
  return 0 <= value && value <= 3;
}
inline constexpr int ColumnEncoding_Kind_Kind_ARRAYSIZE = 3 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
ColumnEncoding_Kind_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(ColumnEncoding_Kind) {
  return ColumnEncoding_Kind_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& ColumnEncoding_Kind_Name(T value) {
  static_assert(::std::is_same<T, ColumnEncoding_Kind>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Kind_Name().");
  return ColumnEncoding_Kind_Name(static_cast<ColumnEncoding_Kind>(value));
}
template <>
[[nodiscard]] inline const ::std::string& ColumnEncoding_Kind_Name(ColumnEncoding_Kind value) {
  return ::google::protobuf::internal::NameOfDenseEnum<ColumnEncoding_Kind_descriptor, 0, 3>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool ColumnEncoding_Kind_Parse(
    ::absl::string_view name, ColumnEncoding_Kind* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<ColumnEncoding_Kind>(ColumnEncoding_Kind_descriptor(), name,
                                           value);
}
enum Type_Kind : int {
  Type_Kind_BOOLEAN = 0,
  Type_Kind_BYTE = 1,
  Type_Kind_SHORT = 2,
  Type_Kind_INT = 3,
  Type_Kind_LONG = 4,
  Type_Kind_FLOAT = 5,
  Type_Kind_DOUBLE = 6,
  Type_Kind_STRING = 7,
  Type_Kind_BINARY = 8,
  Type_Kind_TIMESTAMP = 9,
  Type_Kind_LIST = 10,
  Type_Kind_MAP = 11,
  Type_Kind_STRUCT = 12,
  Type_Kind_UNION = 13,
  Type_Kind_DECIMAL = 14,
  Type_Kind_DATE = 15,
  Type_Kind_VARCHAR = 16,
  Type_Kind_CHAR = 17,
  Type_Kind_TIMESTAMP_INSTANT = 18,
  Type_Kind_GEOMETRY = 19,
  Type_Kind_GEOGRAPHY = 20,
};

extern const uint32_t Type_Kind_internal_data_[];
inline constexpr Type_Kind Type_Kind_Kind_MIN =
    static_cast<Type_Kind>(0);
inline constexpr Type_Kind Type_Kind_Kind_MAX =
    static_cast<Type_Kind>(20);
[[nodiscard]] inline bool Type_Kind_IsValid(int value) {
  return 0 <= value && value <= 20;
}
inline constexpr int Type_Kind_Kind_ARRAYSIZE = 20 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Type_Kind_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(Type_Kind) {
  return Type_Kind_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& Type_Kind_Name(T value) {
  static_assert(::std::is_same<T, Type_Kind>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Kind_Name().");
  return Type_Kind_Name(static_cast<Type_Kind>(value));
}
template <>
[[nodiscard]] inline const ::std::string& Type_Kind_Name(Type_Kind value) {
  return ::google::protobuf::internal::NameOfDenseEnum<Type_Kind_descriptor, 0, 20>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool Type_Kind_Parse(
    ::absl::string_view name, Type_Kind* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<Type_Kind>(Type_Kind_descriptor(), name,
                                           value);
}
enum Type_EdgeInterpolationAlgorithm : int {
  Type_EdgeInterpolationAlgorithm_SPHERICAL = 0,
  Type_EdgeInterpolationAlgorithm_VINCENTY = 1,
  Type_EdgeInterpolationAlgorithm_THOMAS = 2,
  Type_EdgeInterpolationAlgorithm_ANDOYER = 3,
  Type_EdgeInterpolationAlgorithm_KARNEY = 4,
};

extern const uint32_t Type_EdgeInterpolationAlgorithm_internal_data_[];
inline constexpr Type_EdgeInterpolationAlgorithm Type_EdgeInterpolationAlgorithm_EdgeInterpolationAlgorithm_MIN =
    static_cast<Type_EdgeInterpolationAlgorithm>(0);
inline constexpr Type_EdgeInterpolationAlgorithm Type_EdgeInterpolationAlgorithm_EdgeInterpolationAlgorithm_MAX =
    static_cast<Type_EdgeInterpolationAlgorithm>(4);
[[nodiscard]] inline bool Type_EdgeInterpolationAlgorithm_IsValid(int value) {
  return 0 <= value && value <= 4;
}
inline constexpr int Type_EdgeInterpolationAlgorithm_EdgeInterpolationAlgorithm_ARRAYSIZE = 4 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Type_EdgeInterpolationAlgorithm_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(Type_EdgeInterpolationAlgorithm) {
  return Type_EdgeInterpolationAlgorithm_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& Type_EdgeInterpolationAlgorithm_Name(T value) {
  static_assert(::std::is_same<T, Type_EdgeInterpolationAlgorithm>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to EdgeInterpolationAlgorithm_Name().");
  return Type_EdgeInterpolationAlgorithm_Name(static_cast<Type_EdgeInterpolationAlgorithm>(value));
}
template <>
[[nodiscard]] inline const ::std::string& Type_EdgeInterpolationAlgorithm_Name(Type_EdgeInterpolationAlgorithm value) {
  return ::google::protobuf::internal::NameOfDenseEnum<Type_EdgeInterpolationAlgorithm_descriptor, 0, 4>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool Type_EdgeInterpolationAlgorithm_Parse(
    ::absl::string_view name, Type_EdgeInterpolationAlgorithm* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<Type_EdgeInterpolationAlgorithm>(Type_EdgeInterpolationAlgorithm_descriptor(), name,
                                           value);
}
enum EncryptionAlgorithm : int {
  UNKNOWN_ENCRYPTION = 0,
  AES_CTR_128 = 1,
  AES_CTR_256 = 2,
};

extern const uint32_t EncryptionAlgorithm_internal_data_[];
inline constexpr EncryptionAlgorithm EncryptionAlgorithm_MIN =
    static_cast<EncryptionAlgorithm>(0);
inline constexpr EncryptionAlgorithm EncryptionAlgorithm_MAX =
    static_cast<EncryptionAlgorithm>(2);
[[nodiscard]] inline bool EncryptionAlgorithm_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int EncryptionAlgorithm_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
EncryptionAlgorithm_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(EncryptionAlgorithm) {
  return EncryptionAlgorithm_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& EncryptionAlgorithm_Name(T value) {
  static_assert(::std::is_same<T, EncryptionAlgorithm>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to EncryptionAlgorithm_Name().");
  return EncryptionAlgorithm_Name(static_cast<EncryptionAlgorithm>(value));
}
template <>
[[nodiscard]] inline const ::std::string& EncryptionAlgorithm_Name(EncryptionAlgorithm value) {
  return ::google::protobuf::internal::NameOfDenseEnum<EncryptionAlgorithm_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool EncryptionAlgorithm_Parse(
    ::absl::string_view name, EncryptionAlgorithm* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<EncryptionAlgorithm>(EncryptionAlgorithm_descriptor(), name,
                                           value);
}
enum KeyProviderKind : int {
  UNKNOWN = 0,
  HADOOP = 1,
  AWS = 2,
  GCP = 3,
  AZURE = 4,
};

extern const uint32_t KeyProviderKind_internal_data_[];
inline constexpr KeyProviderKind KeyProviderKind_MIN =
    static_cast<KeyProviderKind>(0);
inline constexpr KeyProviderKind KeyProviderKind_MAX =
    static_cast<KeyProviderKind>(4);
[[nodiscard]] inline bool KeyProviderKind_IsValid(int value) {
  return 0 <= value && value <= 4;
}
inline constexpr int KeyProviderKind_ARRAYSIZE = 4 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
KeyProviderKind_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(KeyProviderKind) {
  return KeyProviderKind_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& KeyProviderKind_Name(T value) {
  static_assert(::std::is_same<T, KeyProviderKind>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to KeyProviderKind_Name().");
  return KeyProviderKind_Name(static_cast<KeyProviderKind>(value));
}
template <>
[[nodiscard]] inline const ::std::string& KeyProviderKind_Name(KeyProviderKind value) {
  return ::google::protobuf::internal::NameOfDenseEnum<KeyProviderKind_descriptor, 0, 4>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool KeyProviderKind_Parse(
    ::absl::string_view name, KeyProviderKind* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<KeyProviderKind>(KeyProviderKind_descriptor(), name,
                                           value);
}
enum CalendarKind : int {
  UNKNOWN_CALENDAR = 0,
  JULIAN_GREGORIAN = 1,
  PROLEPTIC_GREGORIAN = 2,
};

extern const uint32_t CalendarKind_internal_data_[];
inline constexpr CalendarKind CalendarKind_MIN =
    static_cast<CalendarKind>(0);
inline constexpr CalendarKind CalendarKind_MAX =
    static_cast<CalendarKind>(2);
[[nodiscard]] inline bool CalendarKind_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int CalendarKind_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
CalendarKind_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(CalendarKind) {
  return CalendarKind_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& CalendarKind_Name(T value) {
  static_assert(::std::is_same<T, CalendarKind>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to CalendarKind_Name().");
  return CalendarKind_Name(static_cast<CalendarKind>(value));
}
template <>
[[nodiscard]] inline const ::std::string& CalendarKind_Name(CalendarKind value) {
  return ::google::protobuf::internal::NameOfDenseEnum<CalendarKind_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool CalendarKind_Parse(
    ::absl::string_view name, CalendarKind* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<CalendarKind>(CalendarKind_descriptor(), name,
                                           value);
}
enum CompressionKind : int {
  NONE = 0,
  ZLIB = 1,
  SNAPPY = 2,
  LZO = 3,
  LZ4 = 4,
  ZSTD = 5,
  BROTLI = 6,
};

extern const uint32_t CompressionKind_internal_data_[];
inline constexpr CompressionKind CompressionKind_MIN =
    static_cast<CompressionKind>(0);
inline constexpr CompressionKind CompressionKind_MAX =
    static_cast<CompressionKind>(6);
[[nodiscard]] inline bool CompressionKind_IsValid(int value) {
  return 0 <= value && value <= 6;
}
inline constexpr int CompressionKind_ARRAYSIZE = 6 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
CompressionKind_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(CompressionKind) {
  return CompressionKind_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& CompressionKind_Name(T value) {
  static_assert(::std::is_same<T, CompressionKind>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to CompressionKind_Name().");
  return CompressionKind_Name(static_cast<CompressionKind>(value));
}
template <>
[[nodiscard]] inline const ::std::string& CompressionKind_Name(CompressionKind value) {
  return ::google::protobuf::internal::NameOfDenseEnum<CompressionKind_descriptor, 0, 6>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool CompressionKind_Parse(
    ::absl::string_view name, CompressionKind* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<CompressionKind>(CompressionKind_descriptor(), name,
                                           value);
}
using ::google::protobuf::internal::generated_enum::AbslParseFlag;
using ::google::protobuf::internal::generated_enum::AbslUnparseFlag;

// ===================================================================


// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UserMetadataItem final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.UserMetadataItem) */ {
 public:
  inline UserMetadataItem() : UserMetadataItem(nullptr) {}
  ~UserMetadataItem() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UserMetadataItem* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UserMetadataItem));
  }
#endif

  template <typename = void>
  explicit constexpr UserMetadataItem(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UserMetadataItem(const UserMetadataItem& from) : UserMetadataItem(nullptr, from) {}
  inline UserMetadataItem(UserMetadataItem&& from) noexcept : UserMetadataItem(nullptr, ::std::move(from)) {}
  inline UserMetadataItem& operator=(const UserMetadataItem& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserMetadataItem& operator=(UserMetadataItem&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UserMetadataItem& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UserMetadataItem>(&UserMetadataItem_globals_);
  }
  static constexpr int kIndexInFileMessages = 23;
  friend void swap(UserMetadataItem& a, UserMetadataItem& b) { a.Swap(&b); }
  inline void Swap(UserMetadataItem* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UserMetadataItem* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] UserMetadataItem* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UserMetadataItem>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UserMetadataItem& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UserMetadataItem& from) { UserMetadataItem::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UserMetadataItem* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.UserMetadataItem"; }

  explicit UserMetadataItem(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UserMetadataItem(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UserMetadataItem& from);
  UserMetadataItem(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UserMetadataItem&& from) noexcept
      : UserMetadataItem(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kValueFieldNumber = 2,
  };
  // optional string name = 1;
  [[nodiscard]] bool has_name()
      const;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // optional bytes value = 2;
  [[nodiscard]] bool has_value()
      const;
  void clear_value() ;
  [[nodiscard]] const ::std::string& value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_value();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_value();
  void set_allocated_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_value();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.UserMetadataItem)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UserMetadataItem& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr value_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED TimestampStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.TimestampStatistics) */ {
 public:
  inline TimestampStatistics() : TimestampStatistics(nullptr) {}
  ~TimestampStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(TimestampStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(TimestampStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr TimestampStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline TimestampStatistics(const TimestampStatistics& from) : TimestampStatistics(nullptr, from) {}
  inline TimestampStatistics(TimestampStatistics&& from) noexcept : TimestampStatistics(nullptr, ::std::move(from)) {}
  inline TimestampStatistics& operator=(const TimestampStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline TimestampStatistics& operator=(TimestampStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const TimestampStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TimestampStatistics>(&TimestampStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(TimestampStatistics& a, TimestampStatistics& b) { a.Swap(&b); }
  inline void Swap(TimestampStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TimestampStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] TimestampStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<TimestampStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const TimestampStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const TimestampStatistics& from) { TimestampStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(TimestampStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.TimestampStatistics"; }

  explicit TimestampStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  TimestampStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TimestampStatistics& from);
  TimestampStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, TimestampStatistics&& from) noexcept
      : TimestampStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMinimumFieldNumber = 1,
    kMaximumFieldNumber = 2,
    kMinimumUtcFieldNumber = 3,
    kMaximumUtcFieldNumber = 4,
    kMinimumNanosFieldNumber = 5,
    kMaximumNanosFieldNumber = 6,
  };
  // optional sint64 minimum = 1;
  [[nodiscard]] bool has_minimum()
      const;
  void clear_minimum() ;
  [[nodiscard]] ::int64_t minimum() const;
  void set_minimum(::int64_t value);

  private:
  ::int64_t _internal_minimum() const;
  void _internal_set_minimum(::int64_t value);

  public:
  // optional sint64 maximum = 2;
  [[nodiscard]] bool has_maximum()
      const;
  void clear_maximum() ;
  [[nodiscard]] ::int64_t maximum() const;
  void set_maximum(::int64_t value);

  private:
  ::int64_t _internal_maximum() const;
  void _internal_set_maximum(::int64_t value);

  public:
  // optional sint64 minimum_utc = 3;
  [[nodiscard]] bool has_minimum_utc()
      const;
  void clear_minimum_utc() ;
  [[nodiscard]] ::int64_t minimum_utc() const;
  void set_minimum_utc(::int64_t value);

  private:
  ::int64_t _internal_minimum_utc() const;
  void _internal_set_minimum_utc(::int64_t value);

  public:
  // optional sint64 maximum_utc = 4;
  [[nodiscard]] bool has_maximum_utc()
      const;
  void clear_maximum_utc() ;
  [[nodiscard]] ::int64_t maximum_utc() const;
  void set_maximum_utc(::int64_t value);

  private:
  ::int64_t _internal_maximum_utc() const;
  void _internal_set_maximum_utc(::int64_t value);

  public:
  // optional int32 minimum_nanos = 5;
  [[nodiscard]] bool has_minimum_nanos()
      const;
  void clear_minimum_nanos() ;
  [[nodiscard]] ::int32_t minimum_nanos() const;
  void set_minimum_nanos(::int32_t value);

  private:
  ::int32_t _internal_minimum_nanos() const;
  void _internal_set_minimum_nanos(::int32_t value);

  public:
  // optional int32 maximum_nanos = 6;
  [[nodiscard]] bool has_maximum_nanos()
      const;
  void clear_maximum_nanos() ;
  [[nodiscard]] ::int32_t maximum_nanos() const;
  void set_maximum_nanos(::int32_t value);

  private:
  ::int32_t _internal_maximum_nanos() const;
  void _internal_set_maximum_nanos(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.TimestampStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 6,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TimestampStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::int64_t minimum_;
    ::int64_t maximum_;
    ::int64_t minimum_utc_;
    ::int64_t maximum_utc_;
    ::int32_t minimum_nanos_;
    ::int32_t maximum_nanos_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StripeInformation final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.StripeInformation) */ {
 public:
  inline StripeInformation() : StripeInformation(nullptr) {}
  ~StripeInformation() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StripeInformation* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StripeInformation));
  }
#endif

  template <typename = void>
  explicit constexpr StripeInformation(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StripeInformation(const StripeInformation& from) : StripeInformation(nullptr, from) {}
  inline StripeInformation(StripeInformation&& from) noexcept : StripeInformation(nullptr, ::std::move(from)) {}
  inline StripeInformation& operator=(const StripeInformation& from) {
    CopyFrom(from);
    return *this;
  }
  inline StripeInformation& operator=(StripeInformation&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StripeInformation& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StripeInformation>(&StripeInformation_globals_);
  }
  static constexpr int kIndexInFileMessages = 22;
  friend void swap(StripeInformation& a, StripeInformation& b) { a.Swap(&b); }
  inline void Swap(StripeInformation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StripeInformation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] StripeInformation* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StripeInformation>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StripeInformation& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StripeInformation& from) { StripeInformation::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StripeInformation* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.StripeInformation"; }

  explicit StripeInformation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StripeInformation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StripeInformation& from);
  StripeInformation(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StripeInformation&& from) noexcept
      : StripeInformation(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEncryptedLocalKeysFieldNumber = 7,
    kOffsetFieldNumber = 1,
    kIndexLengthFieldNumber = 2,
    kDataLengthFieldNumber = 3,
    kFooterLengthFieldNumber = 4,
    kNumberOfRowsFieldNumber = 5,
    kEncryptStripeIdFieldNumber = 6,
  };
  // repeated bytes encrypted_local_keys = 7;
  [[nodiscard]] int encrypted_local_keys_size()
      const;
  private:
  int _internal_encrypted_local_keys_size() const;

  public:
  void clear_encrypted_local_keys() ;
  [[nodiscard]] const ::std::string& encrypted_local_keys(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_encrypted_local_keys(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_encrypted_local_keys(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_encrypted_local_keys();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_encrypted_local_keys(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      encrypted_local_keys() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_encrypted_local_keys();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_encrypted_local_keys() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_encrypted_local_keys();

  public:
  // optional uint64 offset = 1;
  [[nodiscard]] bool has_offset()
      const;
  void clear_offset() ;
  [[nodiscard]] ::uint64_t offset() const;
  void set_offset(::uint64_t value);

  private:
  ::uint64_t _internal_offset() const;
  void _internal_set_offset(::uint64_t value);

  public:
  // optional uint64 index_length = 2;
  [[nodiscard]] bool has_index_length()
      const;
  void clear_index_length() ;
  [[nodiscard]] ::uint64_t index_length() const;
  void set_index_length(::uint64_t value);

  private:
  ::uint64_t _internal_index_length() const;
  void _internal_set_index_length(::uint64_t value);

  public:
  // optional uint64 data_length = 3;
  [[nodiscard]] bool has_data_length()
      const;
  void clear_data_length() ;
  [[nodiscard]] ::uint64_t data_length() const;
  void set_data_length(::uint64_t value);

  private:
  ::uint64_t _internal_data_length() const;
  void _internal_set_data_length(::uint64_t value);

  public:
  // optional uint64 footer_length = 4;
  [[nodiscard]] bool has_footer_length()
      const;
  void clear_footer_length() ;
  [[nodiscard]] ::uint64_t footer_length() const;
  void set_footer_length(::uint64_t value);

  private:
  ::uint64_t _internal_footer_length() const;
  void _internal_set_footer_length(::uint64_t value);

  public:
  // optional uint64 number_of_rows = 5;
  [[nodiscard]] bool has_number_of_rows()
      const;
  void clear_number_of_rows() ;
  [[nodiscard]] ::uint64_t number_of_rows() const;
  void set_number_of_rows(::uint64_t value);

  private:
  ::uint64_t _internal_number_of_rows() const;
  void _internal_set_number_of_rows(::uint64_t value);

  public:
  // optional uint64 encrypt_stripe_id = 6;
  [[nodiscard]] bool has_encrypt_stripe_id()
      const;
  void clear_encrypt_stripe_id() ;
  [[nodiscard]] ::uint64_t encrypt_stripe_id() const;
  void set_encrypt_stripe_id(::uint64_t value);

  private:
  ::uint64_t _internal_encrypt_stripe_id() const;
  void _internal_set_encrypt_stripe_id(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.StripeInformation)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 7,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StripeInformation& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> encrypted_local_keys_;
    ::uint64_t offset_;
    ::uint64_t index_length_;
    ::uint64_t data_length_;
    ::uint64_t footer_length_;
    ::uint64_t number_of_rows_;
    ::uint64_t encrypt_stripe_id_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StringStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.StringStatistics) */ {
 public:
  inline StringStatistics() : StringStatistics(nullptr) {}
  ~StringStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StringStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StringStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr StringStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StringStatistics(const StringStatistics& from) : StringStatistics(nullptr, from) {}
  inline StringStatistics(StringStatistics&& from) noexcept : StringStatistics(nullptr, ::std::move(from)) {}
  inline StringStatistics& operator=(const StringStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline StringStatistics& operator=(StringStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StringStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StringStatistics>(&StringStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(StringStatistics& a, StringStatistics& b) { a.Swap(&b); }
  inline void Swap(StringStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StringStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] StringStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StringStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StringStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StringStatistics& from) { StringStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StringStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.StringStatistics"; }

  explicit StringStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StringStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StringStatistics& from);
  StringStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StringStatistics&& from) noexcept
      : StringStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMinimumFieldNumber = 1,
    kMaximumFieldNumber = 2,
    kLowerBoundFieldNumber = 4,
    kUpperBoundFieldNumber = 5,
    kSumFieldNumber = 3,
  };
  // optional string minimum = 1;
  [[nodiscard]] bool has_minimum()
      const;
  void clear_minimum() ;
  [[nodiscard]] const ::std::string& minimum() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_minimum(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_minimum();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_minimum();
  void set_allocated_minimum(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_minimum() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_minimum(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_minimum();

  public:
  // optional string maximum = 2;
  [[nodiscard]] bool has_maximum()
      const;
  void clear_maximum() ;
  [[nodiscard]] const ::std::string& maximum() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_maximum(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_maximum();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_maximum();
  void set_allocated_maximum(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_maximum() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_maximum(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_maximum();

  public:
  // optional string lower_bound = 4;
  [[nodiscard]] bool has_lower_bound()
      const;
  void clear_lower_bound() ;
  [[nodiscard]] const ::std::string& lower_bound() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_lower_bound(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_lower_bound();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_lower_bound();
  void set_allocated_lower_bound(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_lower_bound() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_lower_bound(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_lower_bound();

  public:
  // optional string upper_bound = 5;
  [[nodiscard]] bool has_upper_bound()
      const;
  void clear_upper_bound() ;
  [[nodiscard]] const ::std::string& upper_bound() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_upper_bound(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_upper_bound();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_upper_bound();
  void set_allocated_upper_bound(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_upper_bound() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_upper_bound(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_upper_bound();

  public:
  // optional sint64 sum = 3;
  [[nodiscard]] bool has_sum()
      const;
  void clear_sum() ;
  [[nodiscard]] ::int64_t sum() const;
  void set_sum(::int64_t value);

  private:
  ::int64_t _internal_sum() const;
  void _internal_set_sum(::int64_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.StringStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StringStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr minimum_;
    ::google::protobuf::internal::ArenaStringPtr maximum_;
    ::google::protobuf::internal::ArenaStringPtr lower_bound_;
    ::google::protobuf::internal::ArenaStringPtr upper_bound_;
    ::int64_t sum_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StringPair final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.StringPair) */ {
 public:
  inline StringPair() : StringPair(nullptr) {}
  ~StringPair() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StringPair* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StringPair));
  }
#endif

  template <typename = void>
  explicit constexpr StringPair(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StringPair(const StringPair& from) : StringPair(nullptr, from) {}
  inline StringPair(StringPair&& from) noexcept : StringPair(nullptr, ::std::move(from)) {}
  inline StringPair& operator=(const StringPair& from) {
    CopyFrom(from);
    return *this;
  }
  inline StringPair& operator=(StringPair&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StringPair& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StringPair>(&StringPair_globals_);
  }
  static constexpr int kIndexInFileMessages = 20;
  friend void swap(StringPair& a, StringPair& b) { a.Swap(&b); }
  inline void Swap(StringPair* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StringPair* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] StringPair* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StringPair>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StringPair& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StringPair& from) { StringPair::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StringPair* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.StringPair"; }

  explicit StringPair(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StringPair(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StringPair& from);
  StringPair(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StringPair&& from) noexcept
      : StringPair(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kKeyFieldNumber = 1,
    kValueFieldNumber = 2,
  };
  // optional string key = 1;
  [[nodiscard]] bool has_key()
      const;
  void clear_key() ;
  [[nodiscard]] const ::std::string& key() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_key(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_key();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_key();
  void set_allocated_key(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_key() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_key(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_key();

  public:
  // optional string value = 2;
  [[nodiscard]] bool has_value()
      const;
  void clear_value() ;
  [[nodiscard]] const ::std::string& value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_value();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_value();
  void set_allocated_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_value();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.StringPair)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StringPair& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr key_;
    ::google::protobuf::internal::ArenaStringPtr value_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Stream final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.Stream) */ {
 public:
  inline Stream() : Stream(nullptr) {}
  ~Stream() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Stream* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Stream));
  }
#endif

  template <typename = void>
  explicit constexpr Stream(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Stream(const Stream& from) : Stream(nullptr, from) {}
  inline Stream(Stream&& from) noexcept : Stream(nullptr, ::std::move(from)) {}
  inline Stream& operator=(const Stream& from) {
    CopyFrom(from);
    return *this;
  }
  inline Stream& operator=(Stream&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Stream& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Stream>(&Stream_globals_);
  }
  static constexpr int kIndexInFileMessages = 16;
  friend void swap(Stream& a, Stream& b) { a.Swap(&b); }
  inline void Swap(Stream* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Stream* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] Stream* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Stream>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Stream& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Stream& from) { Stream::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Stream* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.Stream"; }

  explicit Stream(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Stream(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Stream& from);
  Stream(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Stream&& from) noexcept
      : Stream(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Kind = Stream_Kind;
  static constexpr Kind PRESENT = Stream_Kind_PRESENT;
  static constexpr Kind DATA = Stream_Kind_DATA;
  static constexpr Kind LENGTH = Stream_Kind_LENGTH;
  static constexpr Kind DICTIONARY_DATA = Stream_Kind_DICTIONARY_DATA;
  static constexpr Kind DICTIONARY_COUNT = Stream_Kind_DICTIONARY_COUNT;
  static constexpr Kind SECONDARY = Stream_Kind_SECONDARY;
  static constexpr Kind ROW_INDEX = Stream_Kind_ROW_INDEX;
  static constexpr Kind BLOOM_FILTER = Stream_Kind_BLOOM_FILTER;
  static constexpr Kind BLOOM_FILTER_UTF8 = Stream_Kind_BLOOM_FILTER_UTF8;
  static constexpr Kind ENCRYPTED_INDEX = Stream_Kind_ENCRYPTED_INDEX;
  static constexpr Kind ENCRYPTED_DATA = Stream_Kind_ENCRYPTED_DATA;
  static constexpr Kind STRIPE_STATISTICS = Stream_Kind_STRIPE_STATISTICS;
  static constexpr Kind FILE_STATISTICS = Stream_Kind_FILE_STATISTICS;
  [[nodiscard]] static inline bool Kind_IsValid(int value) {
    return Stream_Kind_IsValid(value);
  }
  static constexpr Kind Kind_MIN = Stream_Kind_Kind_MIN;
  static constexpr Kind Kind_MAX = Stream_Kind_Kind_MAX;
  static constexpr int Kind_ARRAYSIZE = Stream_Kind_Kind_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Kind_descriptor() {
    return Stream_Kind_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Kind_Name(T value) {
    return Stream_Kind_Name(value);
  }
  [[nodiscard]] static inline bool Kind_Parse(
      ::absl::string_view name, Kind* PROTOBUF_NONNULL value) {
    return Stream_Kind_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kKindFieldNumber = 1,
    kColumnFieldNumber = 2,
    kLengthFieldNumber = 3,
  };
  // optional .orc.proto.Stream.Kind kind = 1;
  [[nodiscard]] bool has_kind()
      const;
  void clear_kind() ;
  [[nodiscard]] ::orc::proto::Stream_Kind kind() const;
  void set_kind(::orc::proto::Stream_Kind value);

  private:
  ::orc::proto::Stream_Kind _internal_kind() const;
  void _internal_set_kind(::orc::proto::Stream_Kind value);

  public:
  // optional uint32 column = 2;
  [[nodiscard]] bool has_column()
      const;
  void clear_column() ;
  [[nodiscard]] ::uint32_t column() const;
  void set_column(::uint32_t value);

  private:
  ::uint32_t _internal_column() const;
  void _internal_set_column(::uint32_t value);

  public:
  // optional uint64 length = 3;
  [[nodiscard]] bool has_length()
      const;
  void clear_length() ;
  [[nodiscard]] ::uint64_t length() const;
  void set_length(::uint64_t value);

  private:
  ::uint64_t _internal_length() const;
  void _internal_set_length(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.Stream)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Stream& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    int kind_;
    ::uint32_t column_;
    ::uint64_t length_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PostScript final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.PostScript) */ {
 public:
  inline PostScript() : PostScript(nullptr) {}
  ~PostScript() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PostScript* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PostScript));
  }
#endif

  template <typename = void>
  explicit constexpr PostScript(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PostScript(const PostScript& from) : PostScript(nullptr, from) {}
  inline PostScript(PostScript&& from) noexcept : PostScript(nullptr, ::std::move(from)) {}
  inline PostScript& operator=(const PostScript& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostScript& operator=(PostScript&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PostScript& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PostScript>(&PostScript_globals_);
  }
  static constexpr int kIndexInFileMessages = 33;
  friend void swap(PostScript& a, PostScript& b) { a.Swap(&b); }
  inline void Swap(PostScript* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PostScript* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] PostScript* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PostScript>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PostScript& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PostScript& from) { PostScript::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PostScript* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.PostScript"; }

  explicit PostScript(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PostScript(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PostScript& from);
  PostScript(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PostScript&& from) noexcept
      : PostScript(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kVersionFieldNumber = 4,
    kMagicFieldNumber = 8000,
    kFooterLengthFieldNumber = 1,
    kCompressionBlockSizeFieldNumber = 3,
    kCompressionFieldNumber = 2,
    kWriterVersionFieldNumber = 6,
    kMetadataLengthFieldNumber = 5,
    kStripeStatisticsLengthFieldNumber = 7,
  };
  // repeated uint32 version = 4 [packed = true];
  [[nodiscard]] int version_size()
      const;
  private:
  int _internal_version_size() const;

  public:
  void clear_version() ;
  [[nodiscard]] ::uint32_t version(int index) const;
  void set_version(int index, ::uint32_t value);
  void add_version(::uint32_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::uint32_t>& version()
      const;
  ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL mutable_version();

  private:
  const ::google::protobuf::RepeatedField<::uint32_t>& _internal_version() const;
  ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL _internal_mutable_version();

  public:
  // optional string magic = 8000;
  [[nodiscard]] bool has_magic()
      const;
  void clear_magic() ;
  [[nodiscard]] const ::std::string& magic() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_magic(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_magic();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_magic();
  void set_allocated_magic(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_magic() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_magic(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_magic();

  public:
  // optional uint64 footer_length = 1;
  [[nodiscard]] bool has_footer_length()
      const;
  void clear_footer_length() ;
  [[nodiscard]] ::uint64_t footer_length() const;
  void set_footer_length(::uint64_t value);

  private:
  ::uint64_t _internal_footer_length() const;
  void _internal_set_footer_length(::uint64_t value);

  public:
  // optional uint64 compression_block_size = 3;
  [[nodiscard]] bool has_compression_block_size()
      const;
  void clear_compression_block_size() ;
  [[nodiscard]] ::uint64_t compression_block_size() const;
  void set_compression_block_size(::uint64_t value);

  private:
  ::uint64_t _internal_compression_block_size() const;
  void _internal_set_compression_block_size(::uint64_t value);

  public:
  // optional .orc.proto.CompressionKind compression = 2;
  [[nodiscard]] bool has_compression()
      const;
  void clear_compression() ;
  [[nodiscard]] ::orc::proto::CompressionKind compression() const;
  void set_compression(::orc::proto::CompressionKind value);

  private:
  ::orc::proto::CompressionKind _internal_compression() const;
  void _internal_set_compression(::orc::proto::CompressionKind value);

  public:
  // optional uint32 writer_version = 6;
  [[nodiscard]] bool has_writer_version()
      const;
  void clear_writer_version() ;
  [[nodiscard]] ::uint32_t writer_version() const;
  void set_writer_version(::uint32_t value);

  private:
  ::uint32_t _internal_writer_version() const;
  void _internal_set_writer_version(::uint32_t value);

  public:
  // optional uint64 metadata_length = 5;
  [[nodiscard]] bool has_metadata_length()
      const;
  void clear_metadata_length() ;
  [[nodiscard]] ::uint64_t metadata_length() const;
  void set_metadata_length(::uint64_t value);

  private:
  ::uint64_t _internal_metadata_length() const;
  void _internal_set_metadata_length(::uint64_t value);

  public:
  // optional uint64 stripe_statistics_length = 7;
  [[nodiscard]] bool has_stripe_statistics_length()
      const;
  void clear_stripe_statistics_length() ;
  [[nodiscard]] ::uint64_t stripe_statistics_length() const;
  void set_stripe_statistics_length(::uint64_t value);

  private:
  ::uint64_t _internal_stripe_statistics_length() const;
  void _internal_set_stripe_statistics_length(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.PostScript)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 8,
                          1, 0,
                          7>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PostScript& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::uint32_t> version_;
    ::google::protobuf::internal::CachedSize _version_cached_byte_size_;
    ::google::protobuf::internal::ArenaStringPtr magic_;
    ::uint64_t footer_length_;
    ::uint64_t compression_block_size_;
    int compression_;
    ::uint32_t writer_version_;
    ::uint64_t metadata_length_;
    ::uint64_t stripe_statistics_length_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IntegerStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.IntegerStatistics) */ {
 public:
  inline IntegerStatistics() : IntegerStatistics(nullptr) {}
  ~IntegerStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IntegerStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IntegerStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr IntegerStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IntegerStatistics(const IntegerStatistics& from) : IntegerStatistics(nullptr, from) {}
  inline IntegerStatistics(IntegerStatistics&& from) noexcept : IntegerStatistics(nullptr, ::std::move(from)) {}
  inline IntegerStatistics& operator=(const IntegerStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline IntegerStatistics& operator=(IntegerStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IntegerStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IntegerStatistics>(&IntegerStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(IntegerStatistics& a, IntegerStatistics& b) { a.Swap(&b); }
  inline void Swap(IntegerStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IntegerStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] IntegerStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<IntegerStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const IntegerStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const IntegerStatistics& from) { IntegerStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(IntegerStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.IntegerStatistics"; }

  explicit IntegerStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IntegerStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IntegerStatistics& from);
  IntegerStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IntegerStatistics&& from) noexcept
      : IntegerStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMinimumFieldNumber = 1,
    kMaximumFieldNumber = 2,
    kSumFieldNumber = 3,
  };
  // optional sint64 minimum = 1;
  [[nodiscard]] bool has_minimum()
      const;
  void clear_minimum() ;
  [[nodiscard]] ::int64_t minimum() const;
  void set_minimum(::int64_t value);

  private:
  ::int64_t _internal_minimum() const;
  void _internal_set_minimum(::int64_t value);

  public:
  // optional sint64 maximum = 2;
  [[nodiscard]] bool has_maximum()
      const;
  void clear_maximum() ;
  [[nodiscard]] ::int64_t maximum() const;
  void set_maximum(::int64_t value);

  private:
  ::int64_t _internal_maximum() const;
  void _internal_set_maximum(::int64_t value);

  public:
  // optional sint64 sum = 3;
  [[nodiscard]] bool has_sum()
      const;
  void clear_sum() ;
  [[nodiscard]] ::int64_t sum() const;
  void set_sum(::int64_t value);

  private:
  ::int64_t _internal_sum() const;
  void _internal_set_sum(::int64_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.IntegerStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const IntegerStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::int64_t minimum_;
    ::int64_t maximum_;
    ::int64_t sum_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED EncryptionKey final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.EncryptionKey) */ {
 public:
  inline EncryptionKey() : EncryptionKey(nullptr) {}
  ~EncryptionKey() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(EncryptionKey* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(EncryptionKey));
  }
#endif

  template <typename = void>
  explicit constexpr EncryptionKey(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline EncryptionKey(const EncryptionKey& from) : EncryptionKey(nullptr, from) {}
  inline EncryptionKey(EncryptionKey&& from) noexcept : EncryptionKey(nullptr, ::std::move(from)) {}
  inline EncryptionKey& operator=(const EncryptionKey& from) {
    CopyFrom(from);
    return *this;
  }
  inline EncryptionKey& operator=(EncryptionKey&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const EncryptionKey& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<EncryptionKey>(&EncryptionKey_globals_);
  }
  static constexpr int kIndexInFileMessages = 29;
  friend void swap(EncryptionKey& a, EncryptionKey& b) { a.Swap(&b); }
  inline void Swap(EncryptionKey* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EncryptionKey* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] EncryptionKey* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<EncryptionKey>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const EncryptionKey& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const EncryptionKey& from) { EncryptionKey::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(EncryptionKey* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.EncryptionKey"; }

  explicit EncryptionKey(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  EncryptionKey(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EncryptionKey& from);
  EncryptionKey(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, EncryptionKey&& from) noexcept
      : EncryptionKey(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kKeyNameFieldNumber = 1,
    kKeyVersionFieldNumber = 2,
    kAlgorithmFieldNumber = 3,
  };
  // optional string key_name = 1;
  [[nodiscard]] bool has_key_name()
      const;
  void clear_key_name() ;
  [[nodiscard]] const ::std::string& key_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_key_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_key_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_key_name();
  void set_allocated_key_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_key_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_key_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_key_name();

  public:
  // optional uint32 key_version = 2;
  [[nodiscard]] bool has_key_version()
      const;
  void clear_key_version() ;
  [[nodiscard]] ::uint32_t key_version() const;
  void set_key_version(::uint32_t value);

  private:
  ::uint32_t _internal_key_version() const;
  void _internal_set_key_version(::uint32_t value);

  public:
  // optional .orc.proto.EncryptionAlgorithm algorithm = 3;
  [[nodiscard]] bool has_algorithm()
      const;
  void clear_algorithm() ;
  [[nodiscard]] ::orc::proto::EncryptionAlgorithm algorithm() const;
  void set_algorithm(::orc::proto::EncryptionAlgorithm value);

  private:
  ::orc::proto::EncryptionAlgorithm _internal_algorithm() const;
  void _internal_set_algorithm(::orc::proto::EncryptionAlgorithm value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.EncryptionKey)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const EncryptionKey& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr key_name_;
    ::uint32_t key_version_;
    int algorithm_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DoubleStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.DoubleStatistics) */ {
 public:
  inline DoubleStatistics() : DoubleStatistics(nullptr) {}
  ~DoubleStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DoubleStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DoubleStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr DoubleStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DoubleStatistics(const DoubleStatistics& from) : DoubleStatistics(nullptr, from) {}
  inline DoubleStatistics(DoubleStatistics&& from) noexcept : DoubleStatistics(nullptr, ::std::move(from)) {}
  inline DoubleStatistics& operator=(const DoubleStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline DoubleStatistics& operator=(DoubleStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DoubleStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DoubleStatistics>(&DoubleStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(DoubleStatistics& a, DoubleStatistics& b) { a.Swap(&b); }
  inline void Swap(DoubleStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DoubleStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] DoubleStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DoubleStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DoubleStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DoubleStatistics& from) { DoubleStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DoubleStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.DoubleStatistics"; }

  explicit DoubleStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DoubleStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DoubleStatistics& from);
  DoubleStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DoubleStatistics&& from) noexcept
      : DoubleStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMinimumFieldNumber = 1,
    kMaximumFieldNumber = 2,
    kSumFieldNumber = 3,
  };
  // optional double minimum = 1;
  [[nodiscard]] bool has_minimum()
      const;
  void clear_minimum() ;
  [[nodiscard]] double minimum() const;
  void set_minimum(double value);

  private:
  double _internal_minimum() const;
  void _internal_set_minimum(double value);

  public:
  // optional double maximum = 2;
  [[nodiscard]] bool has_maximum()
      const;
  void clear_maximum() ;
  [[nodiscard]] double maximum() const;
  void set_maximum(double value);

  private:
  double _internal_maximum() const;
  void _internal_set_maximum(double value);

  public:
  // optional double sum = 3;
  [[nodiscard]] bool has_sum()
      const;
  void clear_sum() ;
  [[nodiscard]] double sum() const;
  void set_sum(double value);

  private:
  double _internal_sum() const;
  void _internal_set_sum(double value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.DoubleStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DoubleStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    double minimum_;
    double maximum_;
    double sum_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DecimalStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.DecimalStatistics) */ {
 public:
  inline DecimalStatistics() : DecimalStatistics(nullptr) {}
  ~DecimalStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DecimalStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DecimalStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr DecimalStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DecimalStatistics(const DecimalStatistics& from) : DecimalStatistics(nullptr, from) {}
  inline DecimalStatistics(DecimalStatistics&& from) noexcept : DecimalStatistics(nullptr, ::std::move(from)) {}
  inline DecimalStatistics& operator=(const DecimalStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline DecimalStatistics& operator=(DecimalStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DecimalStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DecimalStatistics>(&DecimalStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(DecimalStatistics& a, DecimalStatistics& b) { a.Swap(&b); }
  inline void Swap(DecimalStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DecimalStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] DecimalStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DecimalStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DecimalStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DecimalStatistics& from) { DecimalStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DecimalStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.DecimalStatistics"; }

  explicit DecimalStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DecimalStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DecimalStatistics& from);
  DecimalStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DecimalStatistics&& from) noexcept
      : DecimalStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMinimumFieldNumber = 1,
    kMaximumFieldNumber = 2,
    kSumFieldNumber = 3,
  };
  // optional string minimum = 1;
  [[nodiscard]] bool has_minimum()
      const;
  void clear_minimum() ;
  [[nodiscard]] const ::std::string& minimum() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_minimum(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_minimum();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_minimum();
  void set_allocated_minimum(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_minimum() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_minimum(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_minimum();

  public:
  // optional string maximum = 2;
  [[nodiscard]] bool has_maximum()
      const;
  void clear_maximum() ;
  [[nodiscard]] const ::std::string& maximum() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_maximum(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_maximum();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_maximum();
  void set_allocated_maximum(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_maximum() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_maximum(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_maximum();

  public:
  // optional string sum = 3;
  [[nodiscard]] bool has_sum()
      const;
  void clear_sum() ;
  [[nodiscard]] const ::std::string& sum() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_sum(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_sum();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_sum();
  void set_allocated_sum(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_sum() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_sum(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_sum();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.DecimalStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DecimalStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr minimum_;
    ::google::protobuf::internal::ArenaStringPtr maximum_;
    ::google::protobuf::internal::ArenaStringPtr sum_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DateStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.DateStatistics) */ {
 public:
  inline DateStatistics() : DateStatistics(nullptr) {}
  ~DateStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DateStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DateStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr DateStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DateStatistics(const DateStatistics& from) : DateStatistics(nullptr, from) {}
  inline DateStatistics(DateStatistics&& from) noexcept : DateStatistics(nullptr, ::std::move(from)) {}
  inline DateStatistics& operator=(const DateStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline DateStatistics& operator=(DateStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DateStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DateStatistics>(&DateStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(DateStatistics& a, DateStatistics& b) { a.Swap(&b); }
  inline void Swap(DateStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DateStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] DateStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DateStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DateStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DateStatistics& from) { DateStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DateStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.DateStatistics"; }

  explicit DateStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DateStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DateStatistics& from);
  DateStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DateStatistics&& from) noexcept
      : DateStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMinimumFieldNumber = 1,
    kMaximumFieldNumber = 2,
  };
  // optional sint32 minimum = 1;
  [[nodiscard]] bool has_minimum()
      const;
  void clear_minimum() ;
  [[nodiscard]] ::int32_t minimum() const;
  void set_minimum(::int32_t value);

  private:
  ::int32_t _internal_minimum() const;
  void _internal_set_minimum(::int32_t value);

  public:
  // optional sint32 maximum = 2;
  [[nodiscard]] bool has_maximum()
      const;
  void clear_maximum() ;
  [[nodiscard]] ::int32_t maximum() const;
  void set_maximum(::int32_t value);

  private:
  ::int32_t _internal_maximum() const;
  void _internal_set_maximum(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.DateStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DateStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::int32_t minimum_;
    ::int32_t maximum_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DataMask final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.DataMask) */ {
 public:
  inline DataMask() : DataMask(nullptr) {}
  ~DataMask() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DataMask* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DataMask));
  }
#endif

  template <typename = void>
  explicit constexpr DataMask(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DataMask(const DataMask& from) : DataMask(nullptr, from) {}
  inline DataMask(DataMask&& from) noexcept : DataMask(nullptr, ::std::move(from)) {}
  inline DataMask& operator=(const DataMask& from) {
    CopyFrom(from);
    return *this;
  }
  inline DataMask& operator=(DataMask&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DataMask& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DataMask>(&DataMask_globals_);
  }
  static constexpr int kIndexInFileMessages = 28;
  friend void swap(DataMask& a, DataMask& b) { a.Swap(&b); }
  inline void Swap(DataMask* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DataMask* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] DataMask* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DataMask>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DataMask& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DataMask& from) { DataMask::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DataMask* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.DataMask"; }

  explicit DataMask(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DataMask(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DataMask& from);
  DataMask(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DataMask&& from) noexcept
      : DataMask(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMaskParametersFieldNumber = 2,
    kColumnsFieldNumber = 3,
    kNameFieldNumber = 1,
  };
  // repeated string mask_parameters = 2;
  [[nodiscard]] int mask_parameters_size()
      const;
  private:
  int _internal_mask_parameters_size() const;

  public:
  void clear_mask_parameters() ;
  [[nodiscard]] const ::std::string& mask_parameters(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_mask_parameters(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_mask_parameters(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_mask_parameters();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_mask_parameters(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      mask_parameters() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_mask_parameters();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_mask_parameters() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_mask_parameters();

  public:
  // repeated uint32 columns = 3 [packed = true];
  [[nodiscard]] int columns_size()
      const;
  private:
  int _internal_columns_size() const;

  public:
  void clear_columns() ;
  [[nodiscard]] ::uint32_t columns(int index) const;
  void set_columns(int index, ::uint32_t value);
  void add_columns(::uint32_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::uint32_t>& columns()
      const;
  ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL mutable_columns();

  private:
  const ::google::protobuf::RepeatedField<::uint32_t>& _internal_columns() const;
  ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL _internal_mutable_columns();

  public:
  // optional string name = 1;
  [[nodiscard]] bool has_name()
      const;
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.DataMask)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DataMask& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> mask_parameters_;
    ::google::protobuf::RepeatedField<::uint32_t> columns_;
    ::google::protobuf::internal::CachedSize _columns_cached_byte_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ColumnEncoding final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.ColumnEncoding) */ {
 public:
  inline ColumnEncoding() : ColumnEncoding(nullptr) {}
  ~ColumnEncoding() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ColumnEncoding* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ColumnEncoding));
  }
#endif

  template <typename = void>
  explicit constexpr ColumnEncoding(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ColumnEncoding(const ColumnEncoding& from) : ColumnEncoding(nullptr, from) {}
  inline ColumnEncoding(ColumnEncoding&& from) noexcept : ColumnEncoding(nullptr, ::std::move(from)) {}
  inline ColumnEncoding& operator=(const ColumnEncoding& from) {
    CopyFrom(from);
    return *this;
  }
  inline ColumnEncoding& operator=(ColumnEncoding&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ColumnEncoding& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ColumnEncoding>(&ColumnEncoding_globals_);
  }
  static constexpr int kIndexInFileMessages = 17;
  friend void swap(ColumnEncoding& a, ColumnEncoding& b) { a.Swap(&b); }
  inline void Swap(ColumnEncoding* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ColumnEncoding* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ColumnEncoding* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ColumnEncoding>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ColumnEncoding& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ColumnEncoding& from) { ColumnEncoding::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ColumnEncoding* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.ColumnEncoding"; }

  explicit ColumnEncoding(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ColumnEncoding(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ColumnEncoding& from);
  ColumnEncoding(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ColumnEncoding&& from) noexcept
      : ColumnEncoding(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Kind = ColumnEncoding_Kind;
  static constexpr Kind DIRECT = ColumnEncoding_Kind_DIRECT;
  static constexpr Kind DICTIONARY = ColumnEncoding_Kind_DICTIONARY;
  static constexpr Kind DIRECT_V2 = ColumnEncoding_Kind_DIRECT_V2;
  static constexpr Kind DICTIONARY_V2 = ColumnEncoding_Kind_DICTIONARY_V2;
  [[nodiscard]] static inline bool Kind_IsValid(int value) {
    return ColumnEncoding_Kind_IsValid(value);
  }
  static constexpr Kind Kind_MIN = ColumnEncoding_Kind_Kind_MIN;
  static constexpr Kind Kind_MAX = ColumnEncoding_Kind_Kind_MAX;
  static constexpr int Kind_ARRAYSIZE = ColumnEncoding_Kind_Kind_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Kind_descriptor() {
    return ColumnEncoding_Kind_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Kind_Name(T value) {
    return ColumnEncoding_Kind_Name(value);
  }
  [[nodiscard]] static inline bool Kind_Parse(
      ::absl::string_view name, Kind* PROTOBUF_NONNULL value) {
    return ColumnEncoding_Kind_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kKindFieldNumber = 1,
    kDictionarySizeFieldNumber = 2,
    kBloomEncodingFieldNumber = 3,
  };
  // optional .orc.proto.ColumnEncoding.Kind kind = 1;
  [[nodiscard]] bool has_kind()
      const;
  void clear_kind() ;
  [[nodiscard]] ::orc::proto::ColumnEncoding_Kind kind() const;
  void set_kind(::orc::proto::ColumnEncoding_Kind value);

  private:
  ::orc::proto::ColumnEncoding_Kind _internal_kind() const;
  void _internal_set_kind(::orc::proto::ColumnEncoding_Kind value);

  public:
  // optional uint32 dictionary_size = 2;
  [[nodiscard]] bool has_dictionary_size()
      const;
  void clear_dictionary_size() ;
  [[nodiscard]] ::uint32_t dictionary_size() const;
  void set_dictionary_size(::uint32_t value);

  private:
  ::uint32_t _internal_dictionary_size() const;
  void _internal_set_dictionary_size(::uint32_t value);

  public:
  // optional uint32 bloom_encoding = 3;
  [[nodiscard]] bool has_bloom_encoding()
      const;
  void clear_bloom_encoding() ;
  [[nodiscard]] ::uint32_t bloom_encoding() const;
  void set_bloom_encoding(::uint32_t value);

  private:
  ::uint32_t _internal_bloom_encoding() const;
  void _internal_set_bloom_encoding(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.ColumnEncoding)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ColumnEncoding& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    int kind_;
    ::uint32_t dictionary_size_;
    ::uint32_t bloom_encoding_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CollectionStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.CollectionStatistics) */ {
 public:
  inline CollectionStatistics() : CollectionStatistics(nullptr) {}
  ~CollectionStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CollectionStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CollectionStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr CollectionStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CollectionStatistics(const CollectionStatistics& from) : CollectionStatistics(nullptr, from) {}
  inline CollectionStatistics(CollectionStatistics&& from) noexcept : CollectionStatistics(nullptr, ::std::move(from)) {}
  inline CollectionStatistics& operator=(const CollectionStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline CollectionStatistics& operator=(CollectionStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CollectionStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CollectionStatistics>(&CollectionStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 8;
  friend void swap(CollectionStatistics& a, CollectionStatistics& b) { a.Swap(&b); }
  inline void Swap(CollectionStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CollectionStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CollectionStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CollectionStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CollectionStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CollectionStatistics& from) { CollectionStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CollectionStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.CollectionStatistics"; }

  explicit CollectionStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CollectionStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CollectionStatistics& from);
  CollectionStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CollectionStatistics&& from) noexcept
      : CollectionStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMinChildrenFieldNumber = 1,
    kMaxChildrenFieldNumber = 2,
    kTotalChildrenFieldNumber = 3,
  };
  // optional uint64 min_children = 1;
  [[nodiscard]] bool has_min_children()
      const;
  void clear_min_children() ;
  [[nodiscard]] ::uint64_t min_children() const;
  void set_min_children(::uint64_t value);

  private:
  ::uint64_t _internal_min_children() const;
  void _internal_set_min_children(::uint64_t value);

  public:
  // optional uint64 max_children = 2;
  [[nodiscard]] bool has_max_children()
      const;
  void clear_max_children() ;
  [[nodiscard]] ::uint64_t max_children() const;
  void set_max_children(::uint64_t value);

  private:
  ::uint64_t _internal_max_children() const;
  void _internal_set_max_children(::uint64_t value);

  public:
  // optional uint64 total_children = 3;
  [[nodiscard]] bool has_total_children()
      const;
  void clear_total_children() ;
  [[nodiscard]] ::uint64_t total_children() const;
  void set_total_children(::uint64_t value);

  private:
  ::uint64_t _internal_total_children() const;
  void _internal_set_total_children(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.CollectionStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CollectionStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint64_t min_children_;
    ::uint64_t max_children_;
    ::uint64_t total_children_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED BucketStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.BucketStatistics) */ {
 public:
  inline BucketStatistics() : BucketStatistics(nullptr) {}
  ~BucketStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(BucketStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(BucketStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr BucketStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline BucketStatistics(const BucketStatistics& from) : BucketStatistics(nullptr, from) {}
  inline BucketStatistics(BucketStatistics&& from) noexcept : BucketStatistics(nullptr, ::std::move(from)) {}
  inline BucketStatistics& operator=(const BucketStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline BucketStatistics& operator=(BucketStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const BucketStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<BucketStatistics>(&BucketStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(BucketStatistics& a, BucketStatistics& b) { a.Swap(&b); }
  inline void Swap(BucketStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BucketStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] BucketStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<BucketStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const BucketStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const BucketStatistics& from) { BucketStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(BucketStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.BucketStatistics"; }

  explicit BucketStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  BucketStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const BucketStatistics& from);
  BucketStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, BucketStatistics&& from) noexcept
      : BucketStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kCountFieldNumber = 1,
  };
  // repeated uint64 count = 1 [packed = true];
  [[nodiscard]] int count_size()
      const;
  private:
  int _internal_count_size() const;

  public:
  void clear_count() ;
  [[nodiscard]] ::uint64_t count(int index) const;
  void set_count(int index, ::uint64_t value);
  void add_count(::uint64_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::uint64_t>& count()
      const;
  ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL mutable_count();

  private:
  const ::google::protobuf::RepeatedField<::uint64_t>& _internal_count() const;
  ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL _internal_mutable_count();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.BucketStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const BucketStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::uint64_t> count_;
    ::google::protobuf::internal::CachedSize _count_cached_byte_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED BoundingBox final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.BoundingBox) */ {
 public:
  inline BoundingBox() : BoundingBox(nullptr) {}
  ~BoundingBox() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(BoundingBox* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(BoundingBox));
  }
#endif

  template <typename = void>
  explicit constexpr BoundingBox(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline BoundingBox(const BoundingBox& from) : BoundingBox(nullptr, from) {}
  inline BoundingBox(BoundingBox&& from) noexcept : BoundingBox(nullptr, ::std::move(from)) {}
  inline BoundingBox& operator=(const BoundingBox& from) {
    CopyFrom(from);
    return *this;
  }
  inline BoundingBox& operator=(BoundingBox&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const BoundingBox& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<BoundingBox>(&BoundingBox_globals_);
  }
  static constexpr int kIndexInFileMessages = 9;
  friend void swap(BoundingBox& a, BoundingBox& b) { a.Swap(&b); }
  inline void Swap(BoundingBox* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BoundingBox* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] BoundingBox* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<BoundingBox>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const BoundingBox& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const BoundingBox& from) { BoundingBox::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(BoundingBox* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.BoundingBox"; }

  explicit BoundingBox(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  BoundingBox(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const BoundingBox& from);
  BoundingBox(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, BoundingBox&& from) noexcept
      : BoundingBox(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kXminFieldNumber = 1,
    kXmaxFieldNumber = 2,
    kYminFieldNumber = 3,
    kYmaxFieldNumber = 4,
    kZminFieldNumber = 5,
    kZmaxFieldNumber = 6,
    kMminFieldNumber = 7,
    kMmaxFieldNumber = 8,
  };
  // optional double xmin = 1;
  [[nodiscard]] bool has_xmin()
      const;
  void clear_xmin() ;
  [[nodiscard]] double xmin() const;
  void set_xmin(double value);

  private:
  double _internal_xmin() const;
  void _internal_set_xmin(double value);

  public:
  // optional double xmax = 2;
  [[nodiscard]] bool has_xmax()
      const;
  void clear_xmax() ;
  [[nodiscard]] double xmax() const;
  void set_xmax(double value);

  private:
  double _internal_xmax() const;
  void _internal_set_xmax(double value);

  public:
  // optional double ymin = 3;
  [[nodiscard]] bool has_ymin()
      const;
  void clear_ymin() ;
  [[nodiscard]] double ymin() const;
  void set_ymin(double value);

  private:
  double _internal_ymin() const;
  void _internal_set_ymin(double value);

  public:
  // optional double ymax = 4;
  [[nodiscard]] bool has_ymax()
      const;
  void clear_ymax() ;
  [[nodiscard]] double ymax() const;
  void set_ymax(double value);

  private:
  double _internal_ymax() const;
  void _internal_set_ymax(double value);

  public:
  // optional double zmin = 5;
  [[nodiscard]] bool has_zmin()
      const;
  void clear_zmin() ;
  [[nodiscard]] double zmin() const;
  void set_zmin(double value);

  private:
  double _internal_zmin() const;
  void _internal_set_zmin(double value);

  public:
  // optional double zmax = 6;
  [[nodiscard]] bool has_zmax()
      const;
  void clear_zmax() ;
  [[nodiscard]] double zmax() const;
  void set_zmax(double value);

  private:
  double _internal_zmax() const;
  void _internal_set_zmax(double value);

  public:
  // optional double mmin = 7;
  [[nodiscard]] bool has_mmin()
      const;
  void clear_mmin() ;
  [[nodiscard]] double mmin() const;
  void set_mmin(double value);

  private:
  double _internal_mmin() const;
  void _internal_set_mmin(double value);

  public:
  // optional double mmax = 8;
  [[nodiscard]] bool has_mmax()
      const;
  void clear_mmax() ;
  [[nodiscard]] double mmax() const;
  void set_mmax(double value);

  private:
  double _internal_mmax() const;
  void _internal_set_mmax(double value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.BoundingBox)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 8,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const BoundingBox& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    double xmin_;
    double xmax_;
    double ymin_;
    double ymax_;
    double zmin_;
    double zmax_;
    double mmin_;
    double mmax_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED BloomFilter final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.BloomFilter) */ {
 public:
  inline BloomFilter() : BloomFilter(nullptr) {}
  ~BloomFilter() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(BloomFilter* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(BloomFilter));
  }
#endif

  template <typename = void>
  explicit constexpr BloomFilter(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline BloomFilter(const BloomFilter& from) : BloomFilter(nullptr, from) {}
  inline BloomFilter(BloomFilter&& from) noexcept : BloomFilter(nullptr, ::std::move(from)) {}
  inline BloomFilter& operator=(const BloomFilter& from) {
    CopyFrom(from);
    return *this;
  }
  inline BloomFilter& operator=(BloomFilter&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const BloomFilter& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<BloomFilter>(&BloomFilter_globals_);
  }
  static constexpr int kIndexInFileMessages = 14;
  friend void swap(BloomFilter& a, BloomFilter& b) { a.Swap(&b); }
  inline void Swap(BloomFilter* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BloomFilter* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] BloomFilter* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<BloomFilter>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const BloomFilter& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const BloomFilter& from) { BloomFilter::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(BloomFilter* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.BloomFilter"; }

  explicit BloomFilter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  BloomFilter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const BloomFilter& from);
  BloomFilter(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, BloomFilter&& from) noexcept
      : BloomFilter(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kBitsetFieldNumber = 2,
    kUtf8BitsetFieldNumber = 3,
    kNumHashFunctionsFieldNumber = 1,
  };
  // repeated fixed64 bitset = 2;
  [[nodiscard]] int bitset_size()
      const;
  private:
  int _internal_bitset_size() const;

  public:
  void clear_bitset() ;
  [[nodiscard]] ::uint64_t bitset(int index) const;
  void set_bitset(int index, ::uint64_t value);
  void add_bitset(::uint64_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::uint64_t>& bitset()
      const;
  ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL mutable_bitset();

  private:
  const ::google::protobuf::RepeatedField<::uint64_t>& _internal_bitset() const;
  ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL _internal_mutable_bitset();

  public:
  // optional bytes utf8bitset = 3;
  [[nodiscard]] bool has_utf8bitset()
      const;
  void clear_utf8bitset() ;
  [[nodiscard]] const ::std::string& utf8bitset() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_utf8bitset(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_utf8bitset();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_utf8bitset();
  void set_allocated_utf8bitset(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_utf8bitset() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_utf8bitset(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_utf8bitset();

  public:
  // optional uint32 num_hash_functions = 1;
  [[nodiscard]] bool has_num_hash_functions()
      const;
  void clear_num_hash_functions() ;
  [[nodiscard]] ::uint32_t num_hash_functions() const;
  void set_num_hash_functions(::uint32_t value);

  private:
  ::uint32_t _internal_num_hash_functions() const;
  void _internal_set_num_hash_functions(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.BloomFilter)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const BloomFilter& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::uint64_t> bitset_;
    ::google::protobuf::internal::ArenaStringPtr utf8bitset_;
    ::uint32_t num_hash_functions_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED BinaryStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.BinaryStatistics) */ {
 public:
  inline BinaryStatistics() : BinaryStatistics(nullptr) {}
  ~BinaryStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(BinaryStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(BinaryStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr BinaryStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline BinaryStatistics(const BinaryStatistics& from) : BinaryStatistics(nullptr, from) {}
  inline BinaryStatistics(BinaryStatistics&& from) noexcept : BinaryStatistics(nullptr, ::std::move(from)) {}
  inline BinaryStatistics& operator=(const BinaryStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline BinaryStatistics& operator=(BinaryStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const BinaryStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<BinaryStatistics>(&BinaryStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 7;
  friend void swap(BinaryStatistics& a, BinaryStatistics& b) { a.Swap(&b); }
  inline void Swap(BinaryStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BinaryStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] BinaryStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<BinaryStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const BinaryStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const BinaryStatistics& from) { BinaryStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(BinaryStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.BinaryStatistics"; }

  explicit BinaryStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  BinaryStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const BinaryStatistics& from);
  BinaryStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, BinaryStatistics&& from) noexcept
      : BinaryStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSumFieldNumber = 1,
  };
  // optional sint64 sum = 1;
  [[nodiscard]] bool has_sum()
      const;
  void clear_sum() ;
  [[nodiscard]] ::int64_t sum() const;
  void set_sum(::int64_t value);

  private:
  ::int64_t _internal_sum() const;
  void _internal_set_sum(::int64_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.BinaryStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const BinaryStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::int64_t sum_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Type final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.Type) */ {
 public:
  inline Type() : Type(nullptr) {}
  ~Type() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Type* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Type));
  }
#endif

  template <typename = void>
  explicit constexpr Type(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Type(const Type& from) : Type(nullptr, from) {}
  inline Type(Type&& from) noexcept : Type(nullptr, ::std::move(from)) {}
  inline Type& operator=(const Type& from) {
    CopyFrom(from);
    return *this;
  }
  inline Type& operator=(Type&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Type& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Type>(&Type_globals_);
  }
  static constexpr int kIndexInFileMessages = 21;
  friend void swap(Type& a, Type& b) { a.Swap(&b); }
  inline void Swap(Type* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Type* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] Type* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Type>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Type& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Type& from) { Type::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Type* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.Type"; }

  explicit Type(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Type(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type& from);
  Type(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Type&& from) noexcept
      : Type(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Kind = Type_Kind;
  static constexpr Kind BOOLEAN = Type_Kind_BOOLEAN;
  static constexpr Kind BYTE = Type_Kind_BYTE;
  static constexpr Kind SHORT = Type_Kind_SHORT;
  static constexpr Kind INT = Type_Kind_INT;
  static constexpr Kind LONG = Type_Kind_LONG;
  static constexpr Kind FLOAT = Type_Kind_FLOAT;
  static constexpr Kind DOUBLE = Type_Kind_DOUBLE;
  static constexpr Kind STRING = Type_Kind_STRING;
  static constexpr Kind BINARY = Type_Kind_BINARY;
  static constexpr Kind TIMESTAMP = Type_Kind_TIMESTAMP;
  static constexpr Kind LIST = Type_Kind_LIST;
  static constexpr Kind MAP = Type_Kind_MAP;
  static constexpr Kind STRUCT = Type_Kind_STRUCT;
  static constexpr Kind UNION = Type_Kind_UNION;
  static constexpr Kind DECIMAL = Type_Kind_DECIMAL;
  static constexpr Kind DATE = Type_Kind_DATE;
  static constexpr Kind VARCHAR = Type_Kind_VARCHAR;
  static constexpr Kind CHAR = Type_Kind_CHAR;
  static constexpr Kind TIMESTAMP_INSTANT = Type_Kind_TIMESTAMP_INSTANT;
  static constexpr Kind GEOMETRY = Type_Kind_GEOMETRY;
  static constexpr Kind GEOGRAPHY = Type_Kind_GEOGRAPHY;
  [[nodiscard]] static inline bool Kind_IsValid(int value) {
    return Type_Kind_IsValid(value);
  }
  static constexpr Kind Kind_MIN = Type_Kind_Kind_MIN;
  static constexpr Kind Kind_MAX = Type_Kind_Kind_MAX;
  static constexpr int Kind_ARRAYSIZE = Type_Kind_Kind_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Kind_descriptor() {
    return Type_Kind_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Kind_Name(T value) {
    return Type_Kind_Name(value);
  }
  [[nodiscard]] static inline bool Kind_Parse(
      ::absl::string_view name, Kind* PROTOBUF_NONNULL value) {
    return Type_Kind_Parse(name, value);
  }
  using EdgeInterpolationAlgorithm = Type_EdgeInterpolationAlgorithm;
  static constexpr EdgeInterpolationAlgorithm SPHERICAL = Type_EdgeInterpolationAlgorithm_SPHERICAL;
  static constexpr EdgeInterpolationAlgorithm VINCENTY = Type_EdgeInterpolationAlgorithm_VINCENTY;
  static constexpr EdgeInterpolationAlgorithm THOMAS = Type_EdgeInterpolationAlgorithm_THOMAS;
  static constexpr EdgeInterpolationAlgorithm ANDOYER = Type_EdgeInterpolationAlgorithm_ANDOYER;
  static constexpr EdgeInterpolationAlgorithm KARNEY = Type_EdgeInterpolationAlgorithm_KARNEY;
  [[nodiscard]] static inline bool EdgeInterpolationAlgorithm_IsValid(int value) {
    return Type_EdgeInterpolationAlgorithm_IsValid(value);
  }
  static constexpr EdgeInterpolationAlgorithm EdgeInterpolationAlgorithm_MIN = Type_EdgeInterpolationAlgorithm_EdgeInterpolationAlgorithm_MIN;
  static constexpr EdgeInterpolationAlgorithm EdgeInterpolationAlgorithm_MAX = Type_EdgeInterpolationAlgorithm_EdgeInterpolationAlgorithm_MAX;
  static constexpr int EdgeInterpolationAlgorithm_ARRAYSIZE = Type_EdgeInterpolationAlgorithm_EdgeInterpolationAlgorithm_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL EdgeInterpolationAlgorithm_descriptor() {
    return Type_EdgeInterpolationAlgorithm_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& EdgeInterpolationAlgorithm_Name(T value) {
    return Type_EdgeInterpolationAlgorithm_Name(value);
  }
  [[nodiscard]] static inline bool EdgeInterpolationAlgorithm_Parse(
      ::absl::string_view name, EdgeInterpolationAlgorithm* PROTOBUF_NONNULL value) {
    return Type_EdgeInterpolationAlgorithm_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kSubtypesFieldNumber = 2,
    kFieldNamesFieldNumber = 3,
    kAttributesFieldNumber = 7,
    kCrsFieldNumber = 8,
    kKindFieldNumber = 1,
    kMaximumLengthFieldNumber = 4,
    kPrecisionFieldNumber = 5,
    kScaleFieldNumber = 6,
    kAlgorithmFieldNumber = 9,
  };
  // repeated uint32 subtypes = 2 [packed = true];
  [[nodiscard]] int subtypes_size()
      const;
  private:
  int _internal_subtypes_size() const;

  public:
  void clear_subtypes() ;
  [[nodiscard]] ::uint32_t subtypes(int index) const;
  void set_subtypes(int index, ::uint32_t value);
  void add_subtypes(::uint32_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::uint32_t>& subtypes()
      const;
  ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL mutable_subtypes();

  private:
  const ::google::protobuf::RepeatedField<::uint32_t>& _internal_subtypes() const;
  ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL _internal_mutable_subtypes();

  public:
  // repeated string field_names = 3;
  [[nodiscard]] int field_names_size()
      const;
  private:
  int _internal_field_names_size() const;

  public:
  void clear_field_names() ;
  [[nodiscard]] const ::std::string& field_names(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_field_names(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_field_names(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_field_names();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_field_names(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      field_names() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_field_names();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_field_names() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_field_names();

  public:
  // repeated .orc.proto.StringPair attributes = 7;
  [[nodiscard]] int attributes_size()
      const;
  private:
  int _internal_attributes_size() const;

  public:
  void clear_attributes() ;
  [[nodiscard]] const ::orc::proto::StringPair& attributes(int index) const;
  [[nodiscard]] ::orc::proto::StringPair* PROTOBUF_NONNULL mutable_attributes(int index);
  ::orc::proto::StringPair* PROTOBUF_NONNULL add_attributes();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::StringPair>&
  attributes() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::StringPair>* PROTOBUF_NONNULL
  mutable_attributes();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::StringPair>& _internal_attributes() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::StringPair>* PROTOBUF_NONNULL _internal_mutable_attributes();

  public:
  // optional string crs = 8;
  [[nodiscard]] bool has_crs()
      const;
  void clear_crs() ;
  [[nodiscard]] const ::std::string& crs() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_crs(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_crs();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_crs();
  void set_allocated_crs(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_crs() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_crs(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_crs();

  public:
  // optional .orc.proto.Type.Kind kind = 1;
  [[nodiscard]] bool has_kind()
      const;
  void clear_kind() ;
  [[nodiscard]] ::orc::proto::Type_Kind kind() const;
  void set_kind(::orc::proto::Type_Kind value);

  private:
  ::orc::proto::Type_Kind _internal_kind() const;
  void _internal_set_kind(::orc::proto::Type_Kind value);

  public:
  // optional uint32 maximum_length = 4;
  [[nodiscard]] bool has_maximum_length()
      const;
  void clear_maximum_length() ;
  [[nodiscard]] ::uint32_t maximum_length() const;
  void set_maximum_length(::uint32_t value);

  private:
  ::uint32_t _internal_maximum_length() const;
  void _internal_set_maximum_length(::uint32_t value);

  public:
  // optional uint32 precision = 5;
  [[nodiscard]] bool has_precision()
      const;
  void clear_precision() ;
  [[nodiscard]] ::uint32_t precision() const;
  void set_precision(::uint32_t value);

  private:
  ::uint32_t _internal_precision() const;
  void _internal_set_precision(::uint32_t value);

  public:
  // optional uint32 scale = 6;
  [[nodiscard]] bool has_scale()
      const;
  void clear_scale() ;
  [[nodiscard]] ::uint32_t scale() const;
  void set_scale(::uint32_t value);

  private:
  ::uint32_t _internal_scale() const;
  void _internal_set_scale(::uint32_t value);

  public:
  // optional .orc.proto.Type.EdgeInterpolationAlgorithm algorithm = 9;
  [[nodiscard]] bool has_algorithm()
      const;
  void clear_algorithm() ;
  [[nodiscard]] ::orc::proto::Type_EdgeInterpolationAlgorithm algorithm() const;
  void set_algorithm(::orc::proto::Type_EdgeInterpolationAlgorithm value);

  private:
  ::orc::proto::Type_EdgeInterpolationAlgorithm _internal_algorithm() const;
  void _internal_set_algorithm(::orc::proto::Type_EdgeInterpolationAlgorithm value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.Type)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 9,
                          3, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Type& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::uint32_t> subtypes_;
    ::google::protobuf::internal::CachedSize _subtypes_cached_byte_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> field_names_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::StringPair > attributes_;
    ::google::protobuf::internal::ArenaStringPtr crs_;
    int kind_;
    ::uint32_t maximum_length_;
    ::uint32_t precision_;
    ::uint32_t scale_;
    int algorithm_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StripeEncryptionVariant final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.StripeEncryptionVariant) */ {
 public:
  inline StripeEncryptionVariant() : StripeEncryptionVariant(nullptr) {}
  ~StripeEncryptionVariant() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StripeEncryptionVariant* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StripeEncryptionVariant));
  }
#endif

  template <typename = void>
  explicit constexpr StripeEncryptionVariant(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StripeEncryptionVariant(const StripeEncryptionVariant& from) : StripeEncryptionVariant(nullptr, from) {}
  inline StripeEncryptionVariant(StripeEncryptionVariant&& from) noexcept : StripeEncryptionVariant(nullptr, ::std::move(from)) {}
  inline StripeEncryptionVariant& operator=(const StripeEncryptionVariant& from) {
    CopyFrom(from);
    return *this;
  }
  inline StripeEncryptionVariant& operator=(StripeEncryptionVariant&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StripeEncryptionVariant& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StripeEncryptionVariant>(&StripeEncryptionVariant_globals_);
  }
  static constexpr int kIndexInFileMessages = 18;
  friend void swap(StripeEncryptionVariant& a, StripeEncryptionVariant& b) { a.Swap(&b); }
  inline void Swap(StripeEncryptionVariant* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StripeEncryptionVariant* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] StripeEncryptionVariant* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StripeEncryptionVariant>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StripeEncryptionVariant& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StripeEncryptionVariant& from) { StripeEncryptionVariant::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StripeEncryptionVariant* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.StripeEncryptionVariant"; }

  explicit StripeEncryptionVariant(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StripeEncryptionVariant(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StripeEncryptionVariant& from);
  StripeEncryptionVariant(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StripeEncryptionVariant&& from) noexcept
      : StripeEncryptionVariant(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kStreamsFieldNumber = 1,
    kEncodingFieldNumber = 2,
  };
  // repeated .orc.proto.Stream streams = 1;
  [[nodiscard]] int streams_size()
      const;
  private:
  int _internal_streams_size() const;

  public:
  void clear_streams() ;
  [[nodiscard]] const ::orc::proto::Stream& streams(int index) const;
  [[nodiscard]] ::orc::proto::Stream* PROTOBUF_NONNULL mutable_streams(int index);
  ::orc::proto::Stream* PROTOBUF_NONNULL add_streams();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>&
  streams() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL
  mutable_streams();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>& _internal_streams() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL _internal_mutable_streams();

  public:
  // repeated .orc.proto.ColumnEncoding encoding = 2;
  [[nodiscard]] int encoding_size()
      const;
  private:
  int _internal_encoding_size() const;

  public:
  void clear_encoding() ;
  [[nodiscard]] const ::orc::proto::ColumnEncoding& encoding(int index) const;
  [[nodiscard]] ::orc::proto::ColumnEncoding* PROTOBUF_NONNULL mutable_encoding(int index);
  ::orc::proto::ColumnEncoding* PROTOBUF_NONNULL add_encoding();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>&
  encoding() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>* PROTOBUF_NONNULL
  mutable_encoding();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>& _internal_encoding() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>* PROTOBUF_NONNULL _internal_mutable_encoding();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.StripeEncryptionVariant)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StripeEncryptionVariant& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::Stream > streams_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::ColumnEncoding > encoding_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED GeospatialStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.GeospatialStatistics) */ {
 public:
  inline GeospatialStatistics() : GeospatialStatistics(nullptr) {}
  ~GeospatialStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(GeospatialStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(GeospatialStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr GeospatialStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline GeospatialStatistics(const GeospatialStatistics& from) : GeospatialStatistics(nullptr, from) {}
  inline GeospatialStatistics(GeospatialStatistics&& from) noexcept : GeospatialStatistics(nullptr, ::std::move(from)) {}
  inline GeospatialStatistics& operator=(const GeospatialStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline GeospatialStatistics& operator=(GeospatialStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const GeospatialStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<GeospatialStatistics>(&GeospatialStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 10;
  friend void swap(GeospatialStatistics& a, GeospatialStatistics& b) { a.Swap(&b); }
  inline void Swap(GeospatialStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GeospatialStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] GeospatialStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<GeospatialStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const GeospatialStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const GeospatialStatistics& from) { GeospatialStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(GeospatialStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.GeospatialStatistics"; }

  explicit GeospatialStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  GeospatialStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const GeospatialStatistics& from);
  GeospatialStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, GeospatialStatistics&& from) noexcept
      : GeospatialStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kGeospatialTypesFieldNumber = 2,
    kBboxFieldNumber = 1,
  };
  // repeated int32 geospatial_types = 2;
  [[nodiscard]] int geospatial_types_size()
      const;
  private:
  int _internal_geospatial_types_size() const;

  public:
  void clear_geospatial_types() ;
  [[nodiscard]] ::int32_t geospatial_types(int index) const;
  void set_geospatial_types(int index, ::int32_t value);
  void add_geospatial_types(::int32_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::int32_t>& geospatial_types()
      const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL mutable_geospatial_types();

  private:
  const ::google::protobuf::RepeatedField<::int32_t>& _internal_geospatial_types() const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL _internal_mutable_geospatial_types();

  public:
  // optional .orc.proto.BoundingBox bbox = 1;
  [[nodiscard]] bool has_bbox()
      const;
  void clear_bbox() ;
  [[nodiscard]] const ::orc::proto::BoundingBox& bbox() const;
  [[nodiscard]] ::orc::proto::BoundingBox* PROTOBUF_NULLABLE release_bbox();
  ::orc::proto::BoundingBox* PROTOBUF_NONNULL mutable_bbox();
  void set_allocated_bbox(::orc::proto::BoundingBox* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_bbox(::orc::proto::BoundingBox* PROTOBUF_NULLABLE value);
  ::orc::proto::BoundingBox* PROTOBUF_NULLABLE unsafe_arena_release_bbox();

  private:
  const ::orc::proto::BoundingBox& _internal_bbox() const;
  ::orc::proto::BoundingBox* PROTOBUF_NONNULL _internal_mutable_bbox();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.GeospatialStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const GeospatialStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::int32_t> geospatial_types_;
    ::orc::proto::BoundingBox* PROTOBUF_NULLABLE bbox_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED EncryptionVariant final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.EncryptionVariant) */ {
 public:
  inline EncryptionVariant() : EncryptionVariant(nullptr) {}
  ~EncryptionVariant() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(EncryptionVariant* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(EncryptionVariant));
  }
#endif

  template <typename = void>
  explicit constexpr EncryptionVariant(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline EncryptionVariant(const EncryptionVariant& from) : EncryptionVariant(nullptr, from) {}
  inline EncryptionVariant(EncryptionVariant&& from) noexcept : EncryptionVariant(nullptr, ::std::move(from)) {}
  inline EncryptionVariant& operator=(const EncryptionVariant& from) {
    CopyFrom(from);
    return *this;
  }
  inline EncryptionVariant& operator=(EncryptionVariant&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const EncryptionVariant& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<EncryptionVariant>(&EncryptionVariant_globals_);
  }
  static constexpr int kIndexInFileMessages = 30;
  friend void swap(EncryptionVariant& a, EncryptionVariant& b) { a.Swap(&b); }
  inline void Swap(EncryptionVariant* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EncryptionVariant* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] EncryptionVariant* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<EncryptionVariant>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const EncryptionVariant& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const EncryptionVariant& from) { EncryptionVariant::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(EncryptionVariant* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.EncryptionVariant"; }

  explicit EncryptionVariant(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  EncryptionVariant(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EncryptionVariant& from);
  EncryptionVariant(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, EncryptionVariant&& from) noexcept
      : EncryptionVariant(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kStripeStatisticsFieldNumber = 4,
    kEncryptedKeyFieldNumber = 3,
    kFileStatisticsFieldNumber = 5,
    kRootFieldNumber = 1,
    kKeyFieldNumber = 2,
  };
  // repeated .orc.proto.Stream stripe_statistics = 4;
  [[nodiscard]] int stripe_statistics_size()
      const;
  private:
  int _internal_stripe_statistics_size() const;

  public:
  void clear_stripe_statistics() ;
  [[nodiscard]] const ::orc::proto::Stream& stripe_statistics(int index) const;
  [[nodiscard]] ::orc::proto::Stream* PROTOBUF_NONNULL mutable_stripe_statistics(int index);
  ::orc::proto::Stream* PROTOBUF_NONNULL add_stripe_statistics();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>&
  stripe_statistics() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL
  mutable_stripe_statistics();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>& _internal_stripe_statistics() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL _internal_mutable_stripe_statistics();

  public:
  // optional bytes encrypted_key = 3;
  [[nodiscard]] bool has_encrypted_key()
      const;
  void clear_encrypted_key() ;
  [[nodiscard]] const ::std::string& encrypted_key() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_encrypted_key(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_encrypted_key();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_encrypted_key();
  void set_allocated_encrypted_key(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_encrypted_key() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_encrypted_key(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_encrypted_key();

  public:
  // optional bytes file_statistics = 5;
  [[nodiscard]] bool has_file_statistics()
      const;
  void clear_file_statistics() ;
  [[nodiscard]] const ::std::string& file_statistics() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_file_statistics(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_file_statistics();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_file_statistics();
  void set_allocated_file_statistics(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_file_statistics() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_file_statistics(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_file_statistics();

  public:
  // optional uint32 root = 1;
  [[nodiscard]] bool has_root()
      const;
  void clear_root() ;
  [[nodiscard]] ::uint32_t root() const;
  void set_root(::uint32_t value);

  private:
  ::uint32_t _internal_root() const;
  void _internal_set_root(::uint32_t value);

  public:
  // optional uint32 key = 2;
  [[nodiscard]] bool has_key()
      const;
  void clear_key() ;
  [[nodiscard]] ::uint32_t key() const;
  void set_key(::uint32_t value);

  private:
  ::uint32_t _internal_key() const;
  void _internal_set_key(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.EncryptionVariant)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const EncryptionVariant& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::Stream > stripe_statistics_;
    ::google::protobuf::internal::ArenaStringPtr encrypted_key_;
    ::google::protobuf::internal::ArenaStringPtr file_statistics_;
    ::uint32_t root_;
    ::uint32_t key_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED BloomFilterIndex final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.BloomFilterIndex) */ {
 public:
  inline BloomFilterIndex() : BloomFilterIndex(nullptr) {}
  ~BloomFilterIndex() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(BloomFilterIndex* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(BloomFilterIndex));
  }
#endif

  template <typename = void>
  explicit constexpr BloomFilterIndex(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline BloomFilterIndex(const BloomFilterIndex& from) : BloomFilterIndex(nullptr, from) {}
  inline BloomFilterIndex(BloomFilterIndex&& from) noexcept : BloomFilterIndex(nullptr, ::std::move(from)) {}
  inline BloomFilterIndex& operator=(const BloomFilterIndex& from) {
    CopyFrom(from);
    return *this;
  }
  inline BloomFilterIndex& operator=(BloomFilterIndex&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const BloomFilterIndex& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<BloomFilterIndex>(&BloomFilterIndex_globals_);
  }
  static constexpr int kIndexInFileMessages = 15;
  friend void swap(BloomFilterIndex& a, BloomFilterIndex& b) { a.Swap(&b); }
  inline void Swap(BloomFilterIndex* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BloomFilterIndex* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] BloomFilterIndex* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<BloomFilterIndex>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const BloomFilterIndex& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const BloomFilterIndex& from) { BloomFilterIndex::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(BloomFilterIndex* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.BloomFilterIndex"; }

  explicit BloomFilterIndex(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  BloomFilterIndex(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const BloomFilterIndex& from);
  BloomFilterIndex(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, BloomFilterIndex&& from) noexcept
      : BloomFilterIndex(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kBloomFilterFieldNumber = 1,
  };
  // repeated .orc.proto.BloomFilter bloom_filter = 1;
  [[nodiscard]] int bloom_filter_size()
      const;
  private:
  int _internal_bloom_filter_size() const;

  public:
  void clear_bloom_filter() ;
  [[nodiscard]] const ::orc::proto::BloomFilter& bloom_filter(int index) const;
  [[nodiscard]] ::orc::proto::BloomFilter* PROTOBUF_NONNULL mutable_bloom_filter(int index);
  ::orc::proto::BloomFilter* PROTOBUF_NONNULL add_bloom_filter();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::BloomFilter>&
  bloom_filter() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::BloomFilter>* PROTOBUF_NONNULL
  mutable_bloom_filter();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::BloomFilter>& _internal_bloom_filter() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::BloomFilter>* PROTOBUF_NONNULL _internal_mutable_bloom_filter();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.BloomFilterIndex)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const BloomFilterIndex& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::BloomFilter > bloom_filter_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StripeFooter final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.StripeFooter) */ {
 public:
  inline StripeFooter() : StripeFooter(nullptr) {}
  ~StripeFooter() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StripeFooter* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StripeFooter));
  }
#endif

  template <typename = void>
  explicit constexpr StripeFooter(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StripeFooter(const StripeFooter& from) : StripeFooter(nullptr, from) {}
  inline StripeFooter(StripeFooter&& from) noexcept : StripeFooter(nullptr, ::std::move(from)) {}
  inline StripeFooter& operator=(const StripeFooter& from) {
    CopyFrom(from);
    return *this;
  }
  inline StripeFooter& operator=(StripeFooter&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StripeFooter& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StripeFooter>(&StripeFooter_globals_);
  }
  static constexpr int kIndexInFileMessages = 19;
  friend void swap(StripeFooter& a, StripeFooter& b) { a.Swap(&b); }
  inline void Swap(StripeFooter* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StripeFooter* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] StripeFooter* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StripeFooter>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StripeFooter& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StripeFooter& from) { StripeFooter::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StripeFooter* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.StripeFooter"; }

  explicit StripeFooter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StripeFooter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StripeFooter& from);
  StripeFooter(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StripeFooter&& from) noexcept
      : StripeFooter(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kStreamsFieldNumber = 1,
    kColumnsFieldNumber = 2,
    kEncryptionFieldNumber = 4,
    kWriterTimezoneFieldNumber = 3,
  };
  // repeated .orc.proto.Stream streams = 1;
  [[nodiscard]] int streams_size()
      const;
  private:
  int _internal_streams_size() const;

  public:
  void clear_streams() ;
  [[nodiscard]] const ::orc::proto::Stream& streams(int index) const;
  [[nodiscard]] ::orc::proto::Stream* PROTOBUF_NONNULL mutable_streams(int index);
  ::orc::proto::Stream* PROTOBUF_NONNULL add_streams();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>&
  streams() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL
  mutable_streams();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>& _internal_streams() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL _internal_mutable_streams();

  public:
  // repeated .orc.proto.ColumnEncoding columns = 2;
  [[nodiscard]] int columns_size()
      const;
  private:
  int _internal_columns_size() const;

  public:
  void clear_columns() ;
  [[nodiscard]] const ::orc::proto::ColumnEncoding& columns(int index) const;
  [[nodiscard]] ::orc::proto::ColumnEncoding* PROTOBUF_NONNULL mutable_columns(int index);
  ::orc::proto::ColumnEncoding* PROTOBUF_NONNULL add_columns();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>&
  columns() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>* PROTOBUF_NONNULL
  mutable_columns();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>& _internal_columns() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>* PROTOBUF_NONNULL _internal_mutable_columns();

  public:
  // repeated .orc.proto.StripeEncryptionVariant encryption = 4;
  [[nodiscard]] int encryption_size()
      const;
  private:
  int _internal_encryption_size() const;

  public:
  void clear_encryption() ;
  [[nodiscard]] const ::orc::proto::StripeEncryptionVariant& encryption(int index) const;
  [[nodiscard]] ::orc::proto::StripeEncryptionVariant* PROTOBUF_NONNULL mutable_encryption(int index);
  ::orc::proto::StripeEncryptionVariant* PROTOBUF_NONNULL add_encryption();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeEncryptionVariant>&
  encryption() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::StripeEncryptionVariant>* PROTOBUF_NONNULL
  mutable_encryption();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeEncryptionVariant>& _internal_encryption() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::StripeEncryptionVariant>* PROTOBUF_NONNULL _internal_mutable_encryption();

  public:
  // optional string writer_timezone = 3;
  [[nodiscard]] bool has_writer_timezone()
      const;
  void clear_writer_timezone() ;
  [[nodiscard]] const ::std::string& writer_timezone() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_writer_timezone(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_writer_timezone();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_writer_timezone();
  void set_allocated_writer_timezone(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_writer_timezone() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_writer_timezone(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_writer_timezone();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.StripeFooter)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          3, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StripeFooter& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::Stream > streams_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::ColumnEncoding > columns_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::StripeEncryptionVariant > encryption_;
    ::google::protobuf::internal::ArenaStringPtr writer_timezone_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Encryption final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.Encryption) */ {
 public:
  inline Encryption() : Encryption(nullptr) {}
  ~Encryption() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Encryption* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Encryption));
  }
#endif

  template <typename = void>
  explicit constexpr Encryption(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Encryption(const Encryption& from) : Encryption(nullptr, from) {}
  inline Encryption(Encryption&& from) noexcept : Encryption(nullptr, ::std::move(from)) {}
  inline Encryption& operator=(const Encryption& from) {
    CopyFrom(from);
    return *this;
  }
  inline Encryption& operator=(Encryption&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Encryption& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Encryption>(&Encryption_globals_);
  }
  static constexpr int kIndexInFileMessages = 31;
  friend void swap(Encryption& a, Encryption& b) { a.Swap(&b); }
  inline void Swap(Encryption* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Encryption* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] Encryption* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Encryption>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Encryption& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Encryption& from) { Encryption::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Encryption* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.Encryption"; }

  explicit Encryption(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Encryption(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Encryption& from);
  Encryption(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Encryption&& from) noexcept
      : Encryption(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMaskFieldNumber = 1,
    kKeyFieldNumber = 2,
    kVariantsFieldNumber = 3,
    kKeyProviderFieldNumber = 4,
  };
  // repeated .orc.proto.DataMask mask = 1;
  [[nodiscard]] int mask_size()
      const;
  private:
  int _internal_mask_size() const;

  public:
  void clear_mask() ;
  [[nodiscard]] const ::orc::proto::DataMask& mask(int index) const;
  [[nodiscard]] ::orc::proto::DataMask* PROTOBUF_NONNULL mutable_mask(int index);
  ::orc::proto::DataMask* PROTOBUF_NONNULL add_mask();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::DataMask>&
  mask() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::DataMask>* PROTOBUF_NONNULL
  mutable_mask();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::DataMask>& _internal_mask() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::DataMask>* PROTOBUF_NONNULL _internal_mutable_mask();

  public:
  // repeated .orc.proto.EncryptionKey key = 2;
  [[nodiscard]] int key_size()
      const;
  private:
  int _internal_key_size() const;

  public:
  void clear_key() ;
  [[nodiscard]] const ::orc::proto::EncryptionKey& key(int index) const;
  [[nodiscard]] ::orc::proto::EncryptionKey* PROTOBUF_NONNULL mutable_key(int index);
  ::orc::proto::EncryptionKey* PROTOBUF_NONNULL add_key();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionKey>&
  key() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionKey>* PROTOBUF_NONNULL
  mutable_key();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionKey>& _internal_key() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionKey>* PROTOBUF_NONNULL _internal_mutable_key();

  public:
  // repeated .orc.proto.EncryptionVariant variants = 3;
  [[nodiscard]] int variants_size()
      const;
  private:
  int _internal_variants_size() const;

  public:
  void clear_variants() ;
  [[nodiscard]] const ::orc::proto::EncryptionVariant& variants(int index) const;
  [[nodiscard]] ::orc::proto::EncryptionVariant* PROTOBUF_NONNULL mutable_variants(int index);
  ::orc::proto::EncryptionVariant* PROTOBUF_NONNULL add_variants();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionVariant>&
  variants() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionVariant>* PROTOBUF_NONNULL
  mutable_variants();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionVariant>& _internal_variants() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionVariant>* PROTOBUF_NONNULL _internal_mutable_variants();

  public:
  // optional .orc.proto.KeyProviderKind key_provider = 4;
  [[nodiscard]] bool has_key_provider()
      const;
  void clear_key_provider() ;
  [[nodiscard]] ::orc::proto::KeyProviderKind key_provider() const;
  void set_key_provider(::orc::proto::KeyProviderKind value);

  private:
  ::orc::proto::KeyProviderKind _internal_key_provider() const;
  void _internal_set_key_provider(::orc::proto::KeyProviderKind value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.Encryption)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          4, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Encryption& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::DataMask > mask_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::EncryptionKey > key_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::EncryptionVariant > variants_;
    int key_provider_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ColumnStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.ColumnStatistics) */ {
 public:
  inline ColumnStatistics() : ColumnStatistics(nullptr) {}
  ~ColumnStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ColumnStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ColumnStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr ColumnStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ColumnStatistics(const ColumnStatistics& from) : ColumnStatistics(nullptr, from) {}
  inline ColumnStatistics(ColumnStatistics&& from) noexcept : ColumnStatistics(nullptr, ::std::move(from)) {}
  inline ColumnStatistics& operator=(const ColumnStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline ColumnStatistics& operator=(ColumnStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ColumnStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ColumnStatistics>(&ColumnStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 11;
  friend void swap(ColumnStatistics& a, ColumnStatistics& b) { a.Swap(&b); }
  inline void Swap(ColumnStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ColumnStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ColumnStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ColumnStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ColumnStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ColumnStatistics& from) { ColumnStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ColumnStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.ColumnStatistics"; }

  explicit ColumnStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ColumnStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ColumnStatistics& from);
  ColumnStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ColumnStatistics&& from) noexcept
      : ColumnStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kIntStatisticsFieldNumber = 2,
    kDoubleStatisticsFieldNumber = 3,
    kStringStatisticsFieldNumber = 4,
    kBucketStatisticsFieldNumber = 5,
    kDecimalStatisticsFieldNumber = 6,
    kDateStatisticsFieldNumber = 7,
    kBinaryStatisticsFieldNumber = 8,
    kTimestampStatisticsFieldNumber = 9,
    kCollectionStatisticsFieldNumber = 12,
    kGeospatialStatisticsFieldNumber = 13,
    kNumberOfValuesFieldNumber = 1,
    kBytesOnDiskFieldNumber = 11,
    kHasNullFieldNumber = 10,
  };
  // optional .orc.proto.IntegerStatistics int_statistics = 2;
  [[nodiscard]] bool has_int_statistics()
      const;
  void clear_int_statistics() ;
  [[nodiscard]] const ::orc::proto::IntegerStatistics& int_statistics() const;
  [[nodiscard]] ::orc::proto::IntegerStatistics* PROTOBUF_NULLABLE release_int_statistics();
  ::orc::proto::IntegerStatistics* PROTOBUF_NONNULL mutable_int_statistics();
  void set_allocated_int_statistics(::orc::proto::IntegerStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_int_statistics(::orc::proto::IntegerStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::IntegerStatistics* PROTOBUF_NULLABLE unsafe_arena_release_int_statistics();

  private:
  const ::orc::proto::IntegerStatistics& _internal_int_statistics() const;
  ::orc::proto::IntegerStatistics* PROTOBUF_NONNULL _internal_mutable_int_statistics();

  public:
  // optional .orc.proto.DoubleStatistics double_statistics = 3;
  [[nodiscard]] bool has_double_statistics()
      const;
  void clear_double_statistics() ;
  [[nodiscard]] const ::orc::proto::DoubleStatistics& double_statistics() const;
  [[nodiscard]] ::orc::proto::DoubleStatistics* PROTOBUF_NULLABLE release_double_statistics();
  ::orc::proto::DoubleStatistics* PROTOBUF_NONNULL mutable_double_statistics();
  void set_allocated_double_statistics(::orc::proto::DoubleStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_double_statistics(::orc::proto::DoubleStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::DoubleStatistics* PROTOBUF_NULLABLE unsafe_arena_release_double_statistics();

  private:
  const ::orc::proto::DoubleStatistics& _internal_double_statistics() const;
  ::orc::proto::DoubleStatistics* PROTOBUF_NONNULL _internal_mutable_double_statistics();

  public:
  // optional .orc.proto.StringStatistics string_statistics = 4;
  [[nodiscard]] bool has_string_statistics()
      const;
  void clear_string_statistics() ;
  [[nodiscard]] const ::orc::proto::StringStatistics& string_statistics() const;
  [[nodiscard]] ::orc::proto::StringStatistics* PROTOBUF_NULLABLE release_string_statistics();
  ::orc::proto::StringStatistics* PROTOBUF_NONNULL mutable_string_statistics();
  void set_allocated_string_statistics(::orc::proto::StringStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_string_statistics(::orc::proto::StringStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::StringStatistics* PROTOBUF_NULLABLE unsafe_arena_release_string_statistics();

  private:
  const ::orc::proto::StringStatistics& _internal_string_statistics() const;
  ::orc::proto::StringStatistics* PROTOBUF_NONNULL _internal_mutable_string_statistics();

  public:
  // optional .orc.proto.BucketStatistics bucket_statistics = 5;
  [[nodiscard]] bool has_bucket_statistics()
      const;
  void clear_bucket_statistics() ;
  [[nodiscard]] const ::orc::proto::BucketStatistics& bucket_statistics() const;
  [[nodiscard]] ::orc::proto::BucketStatistics* PROTOBUF_NULLABLE release_bucket_statistics();
  ::orc::proto::BucketStatistics* PROTOBUF_NONNULL mutable_bucket_statistics();
  void set_allocated_bucket_statistics(::orc::proto::BucketStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_bucket_statistics(::orc::proto::BucketStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::BucketStatistics* PROTOBUF_NULLABLE unsafe_arena_release_bucket_statistics();

  private:
  const ::orc::proto::BucketStatistics& _internal_bucket_statistics() const;
  ::orc::proto::BucketStatistics* PROTOBUF_NONNULL _internal_mutable_bucket_statistics();

  public:
  // optional .orc.proto.DecimalStatistics decimal_statistics = 6;
  [[nodiscard]] bool has_decimal_statistics()
      const;
  void clear_decimal_statistics() ;
  [[nodiscard]] const ::orc::proto::DecimalStatistics& decimal_statistics() const;
  [[nodiscard]] ::orc::proto::DecimalStatistics* PROTOBUF_NULLABLE release_decimal_statistics();
  ::orc::proto::DecimalStatistics* PROTOBUF_NONNULL mutable_decimal_statistics();
  void set_allocated_decimal_statistics(::orc::proto::DecimalStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_decimal_statistics(::orc::proto::DecimalStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::DecimalStatistics* PROTOBUF_NULLABLE unsafe_arena_release_decimal_statistics();

  private:
  const ::orc::proto::DecimalStatistics& _internal_decimal_statistics() const;
  ::orc::proto::DecimalStatistics* PROTOBUF_NONNULL _internal_mutable_decimal_statistics();

  public:
  // optional .orc.proto.DateStatistics date_statistics = 7;
  [[nodiscard]] bool has_date_statistics()
      const;
  void clear_date_statistics() ;
  [[nodiscard]] const ::orc::proto::DateStatistics& date_statistics() const;
  [[nodiscard]] ::orc::proto::DateStatistics* PROTOBUF_NULLABLE release_date_statistics();
  ::orc::proto::DateStatistics* PROTOBUF_NONNULL mutable_date_statistics();
  void set_allocated_date_statistics(::orc::proto::DateStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_date_statistics(::orc::proto::DateStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::DateStatistics* PROTOBUF_NULLABLE unsafe_arena_release_date_statistics();

  private:
  const ::orc::proto::DateStatistics& _internal_date_statistics() const;
  ::orc::proto::DateStatistics* PROTOBUF_NONNULL _internal_mutable_date_statistics();

  public:
  // optional .orc.proto.BinaryStatistics binary_statistics = 8;
  [[nodiscard]] bool has_binary_statistics()
      const;
  void clear_binary_statistics() ;
  [[nodiscard]] const ::orc::proto::BinaryStatistics& binary_statistics() const;
  [[nodiscard]] ::orc::proto::BinaryStatistics* PROTOBUF_NULLABLE release_binary_statistics();
  ::orc::proto::BinaryStatistics* PROTOBUF_NONNULL mutable_binary_statistics();
  void set_allocated_binary_statistics(::orc::proto::BinaryStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_binary_statistics(::orc::proto::BinaryStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::BinaryStatistics* PROTOBUF_NULLABLE unsafe_arena_release_binary_statistics();

  private:
  const ::orc::proto::BinaryStatistics& _internal_binary_statistics() const;
  ::orc::proto::BinaryStatistics* PROTOBUF_NONNULL _internal_mutable_binary_statistics();

  public:
  // optional .orc.proto.TimestampStatistics timestamp_statistics = 9;
  [[nodiscard]] bool has_timestamp_statistics()
      const;
  void clear_timestamp_statistics() ;
  [[nodiscard]] const ::orc::proto::TimestampStatistics& timestamp_statistics() const;
  [[nodiscard]] ::orc::proto::TimestampStatistics* PROTOBUF_NULLABLE release_timestamp_statistics();
  ::orc::proto::TimestampStatistics* PROTOBUF_NONNULL mutable_timestamp_statistics();
  void set_allocated_timestamp_statistics(::orc::proto::TimestampStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_timestamp_statistics(::orc::proto::TimestampStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::TimestampStatistics* PROTOBUF_NULLABLE unsafe_arena_release_timestamp_statistics();

  private:
  const ::orc::proto::TimestampStatistics& _internal_timestamp_statistics() const;
  ::orc::proto::TimestampStatistics* PROTOBUF_NONNULL _internal_mutable_timestamp_statistics();

  public:
  // optional .orc.proto.CollectionStatistics collection_statistics = 12;
  [[nodiscard]] bool has_collection_statistics()
      const;
  void clear_collection_statistics() ;
  [[nodiscard]] const ::orc::proto::CollectionStatistics& collection_statistics() const;
  [[nodiscard]] ::orc::proto::CollectionStatistics* PROTOBUF_NULLABLE release_collection_statistics();
  ::orc::proto::CollectionStatistics* PROTOBUF_NONNULL mutable_collection_statistics();
  void set_allocated_collection_statistics(::orc::proto::CollectionStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_collection_statistics(::orc::proto::CollectionStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::CollectionStatistics* PROTOBUF_NULLABLE unsafe_arena_release_collection_statistics();

  private:
  const ::orc::proto::CollectionStatistics& _internal_collection_statistics() const;
  ::orc::proto::CollectionStatistics* PROTOBUF_NONNULL _internal_mutable_collection_statistics();

  public:
  // optional .orc.proto.GeospatialStatistics geospatial_statistics = 13;
  [[nodiscard]] bool has_geospatial_statistics()
      const;
  void clear_geospatial_statistics() ;
  [[nodiscard]] const ::orc::proto::GeospatialStatistics& geospatial_statistics() const;
  [[nodiscard]] ::orc::proto::GeospatialStatistics* PROTOBUF_NULLABLE release_geospatial_statistics();
  ::orc::proto::GeospatialStatistics* PROTOBUF_NONNULL mutable_geospatial_statistics();
  void set_allocated_geospatial_statistics(::orc::proto::GeospatialStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_geospatial_statistics(::orc::proto::GeospatialStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::GeospatialStatistics* PROTOBUF_NULLABLE unsafe_arena_release_geospatial_statistics();

  private:
  const ::orc::proto::GeospatialStatistics& _internal_geospatial_statistics() const;
  ::orc::proto::GeospatialStatistics* PROTOBUF_NONNULL _internal_mutable_geospatial_statistics();

  public:
  // optional uint64 number_of_values = 1;
  [[nodiscard]] bool has_number_of_values()
      const;
  void clear_number_of_values() ;
  [[nodiscard]] ::uint64_t number_of_values() const;
  void set_number_of_values(::uint64_t value);

  private:
  ::uint64_t _internal_number_of_values() const;
  void _internal_set_number_of_values(::uint64_t value);

  public:
  // optional uint64 bytes_on_disk = 11;
  [[nodiscard]] bool has_bytes_on_disk()
      const;
  void clear_bytes_on_disk() ;
  [[nodiscard]] ::uint64_t bytes_on_disk() const;
  void set_bytes_on_disk(::uint64_t value);

  private:
  ::uint64_t _internal_bytes_on_disk() const;
  void _internal_set_bytes_on_disk(::uint64_t value);

  public:
  // optional bool has_null = 10;
  [[nodiscard]] bool has_has_null()
      const;
  void clear_has_null() ;
  [[nodiscard]] bool has_null() const;
  void set_has_null(bool value);

  private:
  bool _internal_has_null() const;
  void _internal_set_has_null(bool value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.ColumnStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 13,
                          10, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ColumnStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::orc::proto::IntegerStatistics* PROTOBUF_NULLABLE int_statistics_;
    ::orc::proto::DoubleStatistics* PROTOBUF_NULLABLE double_statistics_;
    ::orc::proto::StringStatistics* PROTOBUF_NULLABLE string_statistics_;
    ::orc::proto::BucketStatistics* PROTOBUF_NULLABLE bucket_statistics_;
    ::orc::proto::DecimalStatistics* PROTOBUF_NULLABLE decimal_statistics_;
    ::orc::proto::DateStatistics* PROTOBUF_NULLABLE date_statistics_;
    ::orc::proto::BinaryStatistics* PROTOBUF_NULLABLE binary_statistics_;
    ::orc::proto::TimestampStatistics* PROTOBUF_NULLABLE timestamp_statistics_;
    ::orc::proto::CollectionStatistics* PROTOBUF_NULLABLE collection_statistics_;
    ::orc::proto::GeospatialStatistics* PROTOBUF_NULLABLE geospatial_statistics_;
    ::uint64_t number_of_values_;
    ::uint64_t bytes_on_disk_;
    bool has_null_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StripeStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.StripeStatistics) */ {
 public:
  inline StripeStatistics() : StripeStatistics(nullptr) {}
  ~StripeStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StripeStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StripeStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr StripeStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StripeStatistics(const StripeStatistics& from) : StripeStatistics(nullptr, from) {}
  inline StripeStatistics(StripeStatistics&& from) noexcept : StripeStatistics(nullptr, ::std::move(from)) {}
  inline StripeStatistics& operator=(const StripeStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline StripeStatistics& operator=(StripeStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StripeStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StripeStatistics>(&StripeStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 24;
  friend void swap(StripeStatistics& a, StripeStatistics& b) { a.Swap(&b); }
  inline void Swap(StripeStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StripeStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] StripeStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StripeStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StripeStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StripeStatistics& from) { StripeStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StripeStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.StripeStatistics"; }

  explicit StripeStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StripeStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StripeStatistics& from);
  StripeStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StripeStatistics&& from) noexcept
      : StripeStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kColStatsFieldNumber = 1,
  };
  // repeated .orc.proto.ColumnStatistics col_stats = 1;
  [[nodiscard]] int col_stats_size()
      const;
  private:
  int _internal_col_stats_size() const;

  public:
  void clear_col_stats() ;
  [[nodiscard]] const ::orc::proto::ColumnStatistics& col_stats(int index) const;
  [[nodiscard]] ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL mutable_col_stats(int index);
  ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL add_col_stats();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>&
  col_stats() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
  mutable_col_stats();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>& _internal_col_stats() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL _internal_mutable_col_stats();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.StripeStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StripeStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::ColumnStatistics > col_stats_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RowIndexEntry final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.RowIndexEntry) */ {
 public:
  inline RowIndexEntry() : RowIndexEntry(nullptr) {}
  ~RowIndexEntry() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RowIndexEntry* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RowIndexEntry));
  }
#endif

  template <typename = void>
  explicit constexpr RowIndexEntry(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RowIndexEntry(const RowIndexEntry& from) : RowIndexEntry(nullptr, from) {}
  inline RowIndexEntry(RowIndexEntry&& from) noexcept : RowIndexEntry(nullptr, ::std::move(from)) {}
  inline RowIndexEntry& operator=(const RowIndexEntry& from) {
    CopyFrom(from);
    return *this;
  }
  inline RowIndexEntry& operator=(RowIndexEntry&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RowIndexEntry& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RowIndexEntry>(&RowIndexEntry_globals_);
  }
  static constexpr int kIndexInFileMessages = 12;
  friend void swap(RowIndexEntry& a, RowIndexEntry& b) { a.Swap(&b); }
  inline void Swap(RowIndexEntry* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RowIndexEntry* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] RowIndexEntry* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RowIndexEntry>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RowIndexEntry& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RowIndexEntry& from) { RowIndexEntry::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RowIndexEntry* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.RowIndexEntry"; }

  explicit RowIndexEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RowIndexEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RowIndexEntry& from);
  RowIndexEntry(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RowIndexEntry&& from) noexcept
      : RowIndexEntry(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPositionsFieldNumber = 1,
    kStatisticsFieldNumber = 2,
  };
  // repeated uint64 positions = 1 [packed = true];
  [[nodiscard]] int positions_size()
      const;
  private:
  int _internal_positions_size() const;

  public:
  void clear_positions() ;
  [[nodiscard]] ::uint64_t positions(int index) const;
  void set_positions(int index, ::uint64_t value);
  void add_positions(::uint64_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::uint64_t>& positions()
      const;
  ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL mutable_positions();

  private:
  const ::google::protobuf::RepeatedField<::uint64_t>& _internal_positions() const;
  ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL _internal_mutable_positions();

  public:
  // optional .orc.proto.ColumnStatistics statistics = 2;
  [[nodiscard]] bool has_statistics()
      const;
  void clear_statistics() ;
  [[nodiscard]] const ::orc::proto::ColumnStatistics& statistics() const;
  [[nodiscard]] ::orc::proto::ColumnStatistics* PROTOBUF_NULLABLE release_statistics();
  ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL mutable_statistics();
  void set_allocated_statistics(::orc::proto::ColumnStatistics* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_statistics(::orc::proto::ColumnStatistics* PROTOBUF_NULLABLE value);
  ::orc::proto::ColumnStatistics* PROTOBUF_NULLABLE unsafe_arena_release_statistics();

  private:
  const ::orc::proto::ColumnStatistics& _internal_statistics() const;
  ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL _internal_mutable_statistics();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.RowIndexEntry)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RowIndexEntry& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::uint64_t> positions_;
    ::google::protobuf::internal::CachedSize _positions_cached_byte_size_;
    ::orc::proto::ColumnStatistics* PROTOBUF_NULLABLE statistics_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Footer final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.Footer) */ {
 public:
  inline Footer() : Footer(nullptr) {}
  ~Footer() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Footer* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Footer));
  }
#endif

  template <typename = void>
  explicit constexpr Footer(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Footer(const Footer& from) : Footer(nullptr, from) {}
  inline Footer(Footer&& from) noexcept : Footer(nullptr, ::std::move(from)) {}
  inline Footer& operator=(const Footer& from) {
    CopyFrom(from);
    return *this;
  }
  inline Footer& operator=(Footer&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Footer& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Footer>(&Footer_globals_);
  }
  static constexpr int kIndexInFileMessages = 32;
  friend void swap(Footer& a, Footer& b) { a.Swap(&b); }
  inline void Swap(Footer* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Footer* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] Footer* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Footer>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Footer& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Footer& from) { Footer::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Footer* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.Footer"; }

  explicit Footer(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Footer(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Footer& from);
  Footer(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Footer&& from) noexcept
      : Footer(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kStripesFieldNumber = 3,
    kTypesFieldNumber = 4,
    kMetadataFieldNumber = 5,
    kStatisticsFieldNumber = 7,
    kSoftwareVersionFieldNumber = 12,
    kEncryptionFieldNumber = 10,
    kHeaderLengthFieldNumber = 1,
    kContentLengthFieldNumber = 2,
    kNumberOfRowsFieldNumber = 6,
    kRowIndexStrideFieldNumber = 8,
    kWriterFieldNumber = 9,
    kCalendarFieldNumber = 11,
  };
  // repeated .orc.proto.StripeInformation stripes = 3;
  [[nodiscard]] int stripes_size()
      const;
  private:
  int _internal_stripes_size() const;

  public:
  void clear_stripes() ;
  [[nodiscard]] const ::orc::proto::StripeInformation& stripes(int index) const;
  [[nodiscard]] ::orc::proto::StripeInformation* PROTOBUF_NONNULL mutable_stripes(int index);
  ::orc::proto::StripeInformation* PROTOBUF_NONNULL add_stripes();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeInformation>&
  stripes() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::StripeInformation>* PROTOBUF_NONNULL
  mutable_stripes();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeInformation>& _internal_stripes() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::StripeInformation>* PROTOBUF_NONNULL _internal_mutable_stripes();

  public:
  // repeated .orc.proto.Type types = 4;
  [[nodiscard]] int types_size()
      const;
  private:
  int _internal_types_size() const;

  public:
  void clear_types() ;
  [[nodiscard]] const ::orc::proto::Type& types(int index) const;
  [[nodiscard]] ::orc::proto::Type* PROTOBUF_NONNULL mutable_types(int index);
  ::orc::proto::Type* PROTOBUF_NONNULL add_types();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::Type>&
  types() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::Type>* PROTOBUF_NONNULL
  mutable_types();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::Type>& _internal_types() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::Type>* PROTOBUF_NONNULL _internal_mutable_types();

  public:
  // repeated .orc.proto.UserMetadataItem metadata = 5;
  [[nodiscard]] int metadata_size()
      const;
  private:
  int _internal_metadata_size() const;

  public:
  void clear_metadata() ;
  [[nodiscard]] const ::orc::proto::UserMetadataItem& metadata(int index) const;
  [[nodiscard]] ::orc::proto::UserMetadataItem* PROTOBUF_NONNULL mutable_metadata(int index);
  ::orc::proto::UserMetadataItem* PROTOBUF_NONNULL add_metadata();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::UserMetadataItem>&
  metadata() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::UserMetadataItem>* PROTOBUF_NONNULL
  mutable_metadata();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::UserMetadataItem>& _internal_metadata() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::UserMetadataItem>* PROTOBUF_NONNULL _internal_mutable_metadata();

  public:
  // repeated .orc.proto.ColumnStatistics statistics = 7;
  [[nodiscard]] int statistics_size()
      const;
  private:
  int _internal_statistics_size() const;

  public:
  void clear_statistics() ;
  [[nodiscard]] const ::orc::proto::ColumnStatistics& statistics(int index) const;
  [[nodiscard]] ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL mutable_statistics(int index);
  ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL add_statistics();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>&
  statistics() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
  mutable_statistics();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>& _internal_statistics() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL _internal_mutable_statistics();

  public:
  // optional string software_version = 12;
  [[nodiscard]] bool has_software_version()
      const;
  void clear_software_version() ;
  [[nodiscard]] const ::std::string& software_version() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_software_version(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_software_version();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_software_version();
  void set_allocated_software_version(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_software_version() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_software_version(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_software_version();

  public:
  // optional .orc.proto.Encryption encryption = 10;
  [[nodiscard]] bool has_encryption()
      const;
  void clear_encryption() ;
  [[nodiscard]] const ::orc::proto::Encryption& encryption() const;
  [[nodiscard]] ::orc::proto::Encryption* PROTOBUF_NULLABLE release_encryption();
  ::orc::proto::Encryption* PROTOBUF_NONNULL mutable_encryption();
  void set_allocated_encryption(::orc::proto::Encryption* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_encryption(::orc::proto::Encryption* PROTOBUF_NULLABLE value);
  ::orc::proto::Encryption* PROTOBUF_NULLABLE unsafe_arena_release_encryption();

  private:
  const ::orc::proto::Encryption& _internal_encryption() const;
  ::orc::proto::Encryption* PROTOBUF_NONNULL _internal_mutable_encryption();

  public:
  // optional uint64 header_length = 1;
  [[nodiscard]] bool has_header_length()
      const;
  void clear_header_length() ;
  [[nodiscard]] ::uint64_t header_length() const;
  void set_header_length(::uint64_t value);

  private:
  ::uint64_t _internal_header_length() const;
  void _internal_set_header_length(::uint64_t value);

  public:
  // optional uint64 content_length = 2;
  [[nodiscard]] bool has_content_length()
      const;
  void clear_content_length() ;
  [[nodiscard]] ::uint64_t content_length() const;
  void set_content_length(::uint64_t value);

  private:
  ::uint64_t _internal_content_length() const;
  void _internal_set_content_length(::uint64_t value);

  public:
  // optional uint64 number_of_rows = 6;
  [[nodiscard]] bool has_number_of_rows()
      const;
  void clear_number_of_rows() ;
  [[nodiscard]] ::uint64_t number_of_rows() const;
  void set_number_of_rows(::uint64_t value);

  private:
  ::uint64_t _internal_number_of_rows() const;
  void _internal_set_number_of_rows(::uint64_t value);

  public:
  // optional uint32 row_index_stride = 8;
  [[nodiscard]] bool has_row_index_stride()
      const;
  void clear_row_index_stride() ;
  [[nodiscard]] ::uint32_t row_index_stride() const;
  void set_row_index_stride(::uint32_t value);

  private:
  ::uint32_t _internal_row_index_stride() const;
  void _internal_set_row_index_stride(::uint32_t value);

  public:
  // optional uint32 writer = 9;
  [[nodiscard]] bool has_writer()
      const;
  void clear_writer() ;
  [[nodiscard]] ::uint32_t writer() const;
  void set_writer(::uint32_t value);

  private:
  ::uint32_t _internal_writer() const;
  void _internal_set_writer(::uint32_t value);

  public:
  // optional .orc.proto.CalendarKind calendar = 11;
  [[nodiscard]] bool has_calendar()
      const;
  void clear_calendar() ;
  [[nodiscard]] ::orc::proto::CalendarKind calendar() const;
  void set_calendar(::orc::proto::CalendarKind value);

  private:
  ::orc::proto::CalendarKind _internal_calendar() const;
  void _internal_set_calendar(::orc::proto::CalendarKind value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.Footer)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 12,
                          6, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Footer& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::StripeInformation > stripes_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::Type > types_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::UserMetadataItem > metadata_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::ColumnStatistics > statistics_;
    ::google::protobuf::internal::ArenaStringPtr software_version_;
    ::orc::proto::Encryption* PROTOBUF_NULLABLE encryption_;
    ::uint64_t header_length_;
    ::uint64_t content_length_;
    ::uint64_t number_of_rows_;
    ::uint32_t row_index_stride_;
    ::uint32_t writer_;
    int calendar_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FileStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.FileStatistics) */ {
 public:
  inline FileStatistics() : FileStatistics(nullptr) {}
  ~FileStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FileStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FileStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr FileStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FileStatistics(const FileStatistics& from) : FileStatistics(nullptr, from) {}
  inline FileStatistics(FileStatistics&& from) noexcept : FileStatistics(nullptr, ::std::move(from)) {}
  inline FileStatistics& operator=(const FileStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline FileStatistics& operator=(FileStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const FileStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FileStatistics>(&FileStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 27;
  friend void swap(FileStatistics& a, FileStatistics& b) { a.Swap(&b); }
  inline void Swap(FileStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FileStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FileStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<FileStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const FileStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const FileStatistics& from) { FileStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FileStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.FileStatistics"; }

  explicit FileStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FileStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FileStatistics& from);
  FileStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FileStatistics&& from) noexcept
      : FileStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kColumnFieldNumber = 1,
  };
  // repeated .orc.proto.ColumnStatistics column = 1;
  [[nodiscard]] int column_size()
      const;
  private:
  int _internal_column_size() const;

  public:
  void clear_column() ;
  [[nodiscard]] const ::orc::proto::ColumnStatistics& column(int index) const;
  [[nodiscard]] ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL mutable_column(int index);
  ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL add_column();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>&
  column() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
  mutable_column();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>& _internal_column() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL _internal_mutable_column();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.FileStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FileStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::ColumnStatistics > column_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ColumnarStripeStatistics final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.ColumnarStripeStatistics) */ {
 public:
  inline ColumnarStripeStatistics() : ColumnarStripeStatistics(nullptr) {}
  ~ColumnarStripeStatistics() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ColumnarStripeStatistics* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ColumnarStripeStatistics));
  }
#endif

  template <typename = void>
  explicit constexpr ColumnarStripeStatistics(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ColumnarStripeStatistics(const ColumnarStripeStatistics& from) : ColumnarStripeStatistics(nullptr, from) {}
  inline ColumnarStripeStatistics(ColumnarStripeStatistics&& from) noexcept : ColumnarStripeStatistics(nullptr, ::std::move(from)) {}
  inline ColumnarStripeStatistics& operator=(const ColumnarStripeStatistics& from) {
    CopyFrom(from);
    return *this;
  }
  inline ColumnarStripeStatistics& operator=(ColumnarStripeStatistics&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ColumnarStripeStatistics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ColumnarStripeStatistics>(&ColumnarStripeStatistics_globals_);
  }
  static constexpr int kIndexInFileMessages = 26;
  friend void swap(ColumnarStripeStatistics& a, ColumnarStripeStatistics& b) { a.Swap(&b); }
  inline void Swap(ColumnarStripeStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ColumnarStripeStatistics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] ColumnarStripeStatistics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ColumnarStripeStatistics>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ColumnarStripeStatistics& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ColumnarStripeStatistics& from) { ColumnarStripeStatistics::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ColumnarStripeStatistics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.ColumnarStripeStatistics"; }

  explicit ColumnarStripeStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ColumnarStripeStatistics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ColumnarStripeStatistics& from);
  ColumnarStripeStatistics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ColumnarStripeStatistics&& from) noexcept
      : ColumnarStripeStatistics(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kColStatsFieldNumber = 1,
  };
  // repeated .orc.proto.ColumnStatistics col_stats = 1;
  [[nodiscard]] int col_stats_size()
      const;
  private:
  int _internal_col_stats_size() const;

  public:
  void clear_col_stats() ;
  [[nodiscard]] const ::orc::proto::ColumnStatistics& col_stats(int index) const;
  [[nodiscard]] ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL mutable_col_stats(int index);
  ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL add_col_stats();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>&
  col_stats() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
  mutable_col_stats();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>& _internal_col_stats() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL _internal_mutable_col_stats();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.ColumnarStripeStatistics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ColumnarStripeStatistics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::ColumnStatistics > col_stats_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RowIndex final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.RowIndex) */ {
 public:
  inline RowIndex() : RowIndex(nullptr) {}
  ~RowIndex() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RowIndex* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RowIndex));
  }
#endif

  template <typename = void>
  explicit constexpr RowIndex(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RowIndex(const RowIndex& from) : RowIndex(nullptr, from) {}
  inline RowIndex(RowIndex&& from) noexcept : RowIndex(nullptr, ::std::move(from)) {}
  inline RowIndex& operator=(const RowIndex& from) {
    CopyFrom(from);
    return *this;
  }
  inline RowIndex& operator=(RowIndex&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RowIndex& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RowIndex>(&RowIndex_globals_);
  }
  static constexpr int kIndexInFileMessages = 13;
  friend void swap(RowIndex& a, RowIndex& b) { a.Swap(&b); }
  inline void Swap(RowIndex* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RowIndex* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] RowIndex* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RowIndex>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RowIndex& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RowIndex& from) { RowIndex::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RowIndex* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.RowIndex"; }

  explicit RowIndex(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RowIndex(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RowIndex& from);
  RowIndex(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RowIndex&& from) noexcept
      : RowIndex(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kEntryFieldNumber = 1,
  };
  // repeated .orc.proto.RowIndexEntry entry = 1;
  [[nodiscard]] int entry_size()
      const;
  private:
  int _internal_entry_size() const;

  public:
  void clear_entry() ;
  [[nodiscard]] const ::orc::proto::RowIndexEntry& entry(int index) const;
  [[nodiscard]] ::orc::proto::RowIndexEntry* PROTOBUF_NONNULL mutable_entry(int index);
  ::orc::proto::RowIndexEntry* PROTOBUF_NONNULL add_entry();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::RowIndexEntry>&
  entry() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::RowIndexEntry>* PROTOBUF_NONNULL
  mutable_entry();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::RowIndexEntry>& _internal_entry() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::RowIndexEntry>* PROTOBUF_NONNULL _internal_mutable_entry();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.RowIndex)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RowIndex& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::RowIndexEntry > entry_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Metadata final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.Metadata) */ {
 public:
  inline Metadata() : Metadata(nullptr) {}
  ~Metadata() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Metadata* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Metadata));
  }
#endif

  template <typename = void>
  explicit constexpr Metadata(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Metadata(const Metadata& from) : Metadata(nullptr, from) {}
  inline Metadata(Metadata&& from) noexcept : Metadata(nullptr, ::std::move(from)) {}
  inline Metadata& operator=(const Metadata& from) {
    CopyFrom(from);
    return *this;
  }
  inline Metadata& operator=(Metadata&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Metadata& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Metadata>(&Metadata_globals_);
  }
  static constexpr int kIndexInFileMessages = 25;
  friend void swap(Metadata& a, Metadata& b) { a.Swap(&b); }
  inline void Swap(Metadata* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Metadata* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] Metadata* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Metadata>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Metadata& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Metadata& from) { Metadata::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Metadata* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.Metadata"; }

  explicit Metadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Metadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Metadata& from);
  Metadata(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Metadata&& from) noexcept
      : Metadata(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kStripeStatsFieldNumber = 1,
  };
  // repeated .orc.proto.StripeStatistics stripe_stats = 1;
  [[nodiscard]] int stripe_stats_size()
      const;
  private:
  int _internal_stripe_stats_size() const;

  public:
  void clear_stripe_stats() ;
  [[nodiscard]] const ::orc::proto::StripeStatistics& stripe_stats(int index) const;
  [[nodiscard]] ::orc::proto::StripeStatistics* PROTOBUF_NONNULL mutable_stripe_stats(int index);
  ::orc::proto::StripeStatistics* PROTOBUF_NONNULL add_stripe_stats();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeStatistics>&
  stripe_stats() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::orc::proto::StripeStatistics>* PROTOBUF_NONNULL
  mutable_stripe_stats();

  private:
  const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeStatistics>& _internal_stripe_stats() const;
  ::google::protobuf::RepeatedPtrField<::orc::proto::StripeStatistics>* PROTOBUF_NONNULL _internal_mutable_stripe_stats();

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.Metadata)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Metadata& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::orc::proto::StripeStatistics > stripe_stats_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED FileTail final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:orc.proto.FileTail) */ {
 public:
  inline FileTail() : FileTail(nullptr) {}
  ~FileTail() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(FileTail* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(FileTail));
  }
#endif

  template <typename = void>
  explicit constexpr FileTail(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline FileTail(const FileTail& from) : FileTail(nullptr, from) {}
  inline FileTail(FileTail&& from) noexcept : FileTail(nullptr, ::std::move(from)) {}
  inline FileTail& operator=(const FileTail& from) {
    CopyFrom(from);
    return *this;
  }
  inline FileTail& operator=(FileTail&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const FileTail& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<FileTail>(&FileTail_globals_);
  }
  static constexpr int kIndexInFileMessages = 34;
  friend void swap(FileTail& a, FileTail& b) { a.Swap(&b); }
  inline void Swap(FileTail* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FileTail* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] FileTail* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<FileTail>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const FileTail& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const FileTail& from) { FileTail::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(FileTail* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "orc.proto.FileTail"; }

  explicit FileTail(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  FileTail(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FileTail& from);
  FileTail(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, FileTail&& from) noexcept
      : FileTail(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPostscriptFieldNumber = 1,
    kFooterFieldNumber = 2,
    kFileLengthFieldNumber = 3,
    kPostscriptLengthFieldNumber = 4,
  };
  // optional .orc.proto.PostScript postscript = 1;
  [[nodiscard]] bool has_postscript()
      const;
  void clear_postscript() ;
  [[nodiscard]] const ::orc::proto::PostScript& postscript() const;
  [[nodiscard]] ::orc::proto::PostScript* PROTOBUF_NULLABLE release_postscript();
  ::orc::proto::PostScript* PROTOBUF_NONNULL mutable_postscript();
  void set_allocated_postscript(::orc::proto::PostScript* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_postscript(::orc::proto::PostScript* PROTOBUF_NULLABLE value);
  ::orc::proto::PostScript* PROTOBUF_NULLABLE unsafe_arena_release_postscript();

  private:
  const ::orc::proto::PostScript& _internal_postscript() const;
  ::orc::proto::PostScript* PROTOBUF_NONNULL _internal_mutable_postscript();

  public:
  // optional .orc.proto.Footer footer = 2;
  [[nodiscard]] bool has_footer()
      const;
  void clear_footer() ;
  [[nodiscard]] const ::orc::proto::Footer& footer() const;
  [[nodiscard]] ::orc::proto::Footer* PROTOBUF_NULLABLE release_footer();
  ::orc::proto::Footer* PROTOBUF_NONNULL mutable_footer();
  void set_allocated_footer(::orc::proto::Footer* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_footer(::orc::proto::Footer* PROTOBUF_NULLABLE value);
  ::orc::proto::Footer* PROTOBUF_NULLABLE unsafe_arena_release_footer();

  private:
  const ::orc::proto::Footer& _internal_footer() const;
  ::orc::proto::Footer* PROTOBUF_NONNULL _internal_mutable_footer();

  public:
  // optional uint64 file_length = 3;
  [[nodiscard]] bool has_file_length()
      const;
  void clear_file_length() ;
  [[nodiscard]] ::uint64_t file_length() const;
  void set_file_length(::uint64_t value);

  private:
  ::uint64_t _internal_file_length() const;
  void _internal_set_file_length(::uint64_t value);

  public:
  // optional uint64 postscript_length = 4;
  [[nodiscard]] bool has_postscript_length()
      const;
  void clear_postscript_length() ;
  [[nodiscard]] ::uint64_t postscript_length() const;
  void set_postscript_length(::uint64_t value);

  private:
  ::uint64_t _internal_postscript_length() const;
  void _internal_set_postscript_length(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:orc.proto.FileTail)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FileTail& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::orc::proto::PostScript* PROTOBUF_NULLABLE postscript_;
    ::orc::proto::Footer* PROTOBUF_NULLABLE footer_;
    ::uint64_t file_length_;
    ::uint64_t postscript_length_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_orc_5fproto_2eproto;
};

// ===================================================================




// ===================================================================


#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// -------------------------------------------------------------------

// IntegerStatistics

// optional sint64 minimum = 1;
inline bool IntegerStatistics::has_minimum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void IntegerStatistics::clear_minimum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int64_t IntegerStatistics::minimum() const {
  // @@protoc_insertion_point(field_get:orc.proto.IntegerStatistics.minimum)
  return _internal_minimum();
}
inline void IntegerStatistics::set_minimum(::int64_t value) {
  _internal_set_minimum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:orc.proto.IntegerStatistics.minimum)
}
inline ::int64_t IntegerStatistics::_internal_minimum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.minimum_;
}
inline void IntegerStatistics::_internal_set_minimum(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_ = value;
}

// optional sint64 maximum = 2;
inline bool IntegerStatistics::has_maximum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void IntegerStatistics::clear_maximum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int64_t IntegerStatistics::maximum() const {
  // @@protoc_insertion_point(field_get:orc.proto.IntegerStatistics.maximum)
  return _internal_maximum();
}
inline void IntegerStatistics::set_maximum(::int64_t value) {
  _internal_set_maximum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:orc.proto.IntegerStatistics.maximum)
}
inline ::int64_t IntegerStatistics::_internal_maximum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_;
}
inline void IntegerStatistics::_internal_set_maximum(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_ = value;
}

// optional sint64 sum = 3;
inline bool IntegerStatistics::has_sum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void IntegerStatistics::clear_sum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sum_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int64_t IntegerStatistics::sum() const {
  // @@protoc_insertion_point(field_get:orc.proto.IntegerStatistics.sum)
  return _internal_sum();
}
inline void IntegerStatistics::set_sum(::int64_t value) {
  _internal_set_sum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.IntegerStatistics.sum)
}
inline ::int64_t IntegerStatistics::_internal_sum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sum_;
}
inline void IntegerStatistics::_internal_set_sum(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sum_ = value;
}

// -------------------------------------------------------------------

// DoubleStatistics

// optional double minimum = 1;
inline bool DoubleStatistics::has_minimum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void DoubleStatistics::clear_minimum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline double DoubleStatistics::minimum() const {
  // @@protoc_insertion_point(field_get:orc.proto.DoubleStatistics.minimum)
  return _internal_minimum();
}
inline void DoubleStatistics::set_minimum(double value) {
  _internal_set_minimum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:orc.proto.DoubleStatistics.minimum)
}
inline double DoubleStatistics::_internal_minimum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.minimum_;
}
inline void DoubleStatistics::_internal_set_minimum(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_ = value;
}

// optional double maximum = 2;
inline bool DoubleStatistics::has_maximum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void DoubleStatistics::clear_maximum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline double DoubleStatistics::maximum() const {
  // @@protoc_insertion_point(field_get:orc.proto.DoubleStatistics.maximum)
  return _internal_maximum();
}
inline void DoubleStatistics::set_maximum(double value) {
  _internal_set_maximum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:orc.proto.DoubleStatistics.maximum)
}
inline double DoubleStatistics::_internal_maximum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_;
}
inline void DoubleStatistics::_internal_set_maximum(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_ = value;
}

// optional double sum = 3;
inline bool DoubleStatistics::has_sum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void DoubleStatistics::clear_sum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sum_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline double DoubleStatistics::sum() const {
  // @@protoc_insertion_point(field_get:orc.proto.DoubleStatistics.sum)
  return _internal_sum();
}
inline void DoubleStatistics::set_sum(double value) {
  _internal_set_sum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.DoubleStatistics.sum)
}
inline double DoubleStatistics::_internal_sum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sum_;
}
inline void DoubleStatistics::_internal_set_sum(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sum_ = value;
}

// -------------------------------------------------------------------

// StringStatistics

// optional string minimum = 1;
inline bool StringStatistics::has_minimum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void StringStatistics::clear_minimum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& StringStatistics::minimum() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StringStatistics.minimum)
  return _internal_minimum();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void StringStatistics::set_minimum(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.minimum_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.StringStatistics.minimum)
}
inline ::std::string* PROTOBUF_NONNULL StringStatistics::mutable_minimum()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_minimum();
  // @@protoc_insertion_point(field_mutable:orc.proto.StringStatistics.minimum)
  return _s;
}
inline const ::std::string& StringStatistics::_internal_minimum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.minimum_.Get();
}
inline void StringStatistics::_internal_set_minimum(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL StringStatistics::_internal_mutable_minimum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.minimum_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE StringStatistics::release_minimum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.StringStatistics.minimum)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.minimum_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.minimum_.Set("", GetArena());
  }
  return released;
}
inline void StringStatistics::set_allocated_minimum(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.minimum_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.minimum_.IsDefault()) {
    _impl_.minimum_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.StringStatistics.minimum)
}

// optional string maximum = 2;
inline bool StringStatistics::has_maximum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void StringStatistics::clear_maximum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& StringStatistics::maximum() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StringStatistics.maximum)
  return _internal_maximum();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void StringStatistics::set_maximum(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.maximum_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.StringStatistics.maximum)
}
inline ::std::string* PROTOBUF_NONNULL StringStatistics::mutable_maximum()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_maximum();
  // @@protoc_insertion_point(field_mutable:orc.proto.StringStatistics.maximum)
  return _s;
}
inline const ::std::string& StringStatistics::_internal_maximum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_.Get();
}
inline void StringStatistics::_internal_set_maximum(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL StringStatistics::_internal_mutable_maximum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.maximum_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE StringStatistics::release_maximum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.StringStatistics.maximum)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.maximum_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.maximum_.Set("", GetArena());
  }
  return released;
}
inline void StringStatistics::set_allocated_maximum(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.maximum_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.maximum_.IsDefault()) {
    _impl_.maximum_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.StringStatistics.maximum)
}

// optional sint64 sum = 3;
inline bool StringStatistics::has_sum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void StringStatistics::clear_sum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sum_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::int64_t StringStatistics::sum() const {
  // @@protoc_insertion_point(field_get:orc.proto.StringStatistics.sum)
  return _internal_sum();
}
inline void StringStatistics::set_sum(::int64_t value) {
  _internal_set_sum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:orc.proto.StringStatistics.sum)
}
inline ::int64_t StringStatistics::_internal_sum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sum_;
}
inline void StringStatistics::_internal_set_sum(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sum_ = value;
}

// optional string lower_bound = 4;
inline bool StringStatistics::has_lower_bound() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void StringStatistics::clear_lower_bound() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.lower_bound_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& StringStatistics::lower_bound() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StringStatistics.lower_bound)
  return _internal_lower_bound();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void StringStatistics::set_lower_bound(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.lower_bound_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.StringStatistics.lower_bound)
}
inline ::std::string* PROTOBUF_NONNULL StringStatistics::mutable_lower_bound()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_lower_bound();
  // @@protoc_insertion_point(field_mutable:orc.proto.StringStatistics.lower_bound)
  return _s;
}
inline const ::std::string& StringStatistics::_internal_lower_bound() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.lower_bound_.Get();
}
inline void StringStatistics::_internal_set_lower_bound(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.lower_bound_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL StringStatistics::_internal_mutable_lower_bound() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.lower_bound_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE StringStatistics::release_lower_bound() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.StringStatistics.lower_bound)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.lower_bound_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.lower_bound_.Set("", GetArena());
  }
  return released;
}
inline void StringStatistics::set_allocated_lower_bound(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.lower_bound_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.lower_bound_.IsDefault()) {
    _impl_.lower_bound_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.StringStatistics.lower_bound)
}

// optional string upper_bound = 5;
inline bool StringStatistics::has_upper_bound() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void StringStatistics::clear_upper_bound() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.upper_bound_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& StringStatistics::upper_bound() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StringStatistics.upper_bound)
  return _internal_upper_bound();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void StringStatistics::set_upper_bound(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.upper_bound_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.StringStatistics.upper_bound)
}
inline ::std::string* PROTOBUF_NONNULL StringStatistics::mutable_upper_bound()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_upper_bound();
  // @@protoc_insertion_point(field_mutable:orc.proto.StringStatistics.upper_bound)
  return _s;
}
inline const ::std::string& StringStatistics::_internal_upper_bound() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.upper_bound_.Get();
}
inline void StringStatistics::_internal_set_upper_bound(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.upper_bound_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL StringStatistics::_internal_mutable_upper_bound() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.upper_bound_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE StringStatistics::release_upper_bound() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.StringStatistics.upper_bound)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.upper_bound_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.upper_bound_.Set("", GetArena());
  }
  return released;
}
inline void StringStatistics::set_allocated_upper_bound(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.upper_bound_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.upper_bound_.IsDefault()) {
    _impl_.upper_bound_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.StringStatistics.upper_bound)
}

// -------------------------------------------------------------------

// BucketStatistics

// repeated uint64 count = 1 [packed = true];
inline int BucketStatistics::_internal_count_size() const {
  return _internal_count().size();
}
inline int BucketStatistics::count_size() const {
  return _internal_count_size();
}
inline void BucketStatistics::clear_count() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.count_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint64_t BucketStatistics::count(int index) const {
  // @@protoc_insertion_point(field_get:orc.proto.BucketStatistics.count)
  return _internal_count().Get(index);
}
inline void BucketStatistics::set_count(int index, ::uint64_t value) {
  _internal_mutable_count()->Set(index, value);
  // @@protoc_insertion_point(field_set:orc.proto.BucketStatistics.count)
}
inline void BucketStatistics::add_count(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_count()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.BucketStatistics.count)
}
inline const ::google::protobuf::RepeatedField<::uint64_t>& BucketStatistics::count() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.BucketStatistics.count)
  return _internal_count();
}
inline ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL BucketStatistics::mutable_count()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.BucketStatistics.count)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_count();
}
inline const ::google::protobuf::RepeatedField<::uint64_t>&
BucketStatistics::_internal_count() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.count_;
}
inline ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL
BucketStatistics::_internal_mutable_count() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.count_;
}

// -------------------------------------------------------------------

// DecimalStatistics

// optional string minimum = 1;
inline bool DecimalStatistics::has_minimum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void DecimalStatistics::clear_minimum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DecimalStatistics::minimum() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.DecimalStatistics.minimum)
  return _internal_minimum();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DecimalStatistics::set_minimum(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.minimum_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.DecimalStatistics.minimum)
}
inline ::std::string* PROTOBUF_NONNULL DecimalStatistics::mutable_minimum()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_minimum();
  // @@protoc_insertion_point(field_mutable:orc.proto.DecimalStatistics.minimum)
  return _s;
}
inline const ::std::string& DecimalStatistics::_internal_minimum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.minimum_.Get();
}
inline void DecimalStatistics::_internal_set_minimum(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DecimalStatistics::_internal_mutable_minimum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.minimum_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DecimalStatistics::release_minimum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.DecimalStatistics.minimum)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.minimum_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.minimum_.Set("", GetArena());
  }
  return released;
}
inline void DecimalStatistics::set_allocated_minimum(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.minimum_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.minimum_.IsDefault()) {
    _impl_.minimum_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.DecimalStatistics.minimum)
}

// optional string maximum = 2;
inline bool DecimalStatistics::has_maximum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void DecimalStatistics::clear_maximum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& DecimalStatistics::maximum() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.DecimalStatistics.maximum)
  return _internal_maximum();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DecimalStatistics::set_maximum(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.maximum_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.DecimalStatistics.maximum)
}
inline ::std::string* PROTOBUF_NONNULL DecimalStatistics::mutable_maximum()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_maximum();
  // @@protoc_insertion_point(field_mutable:orc.proto.DecimalStatistics.maximum)
  return _s;
}
inline const ::std::string& DecimalStatistics::_internal_maximum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_.Get();
}
inline void DecimalStatistics::_internal_set_maximum(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DecimalStatistics::_internal_mutable_maximum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.maximum_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DecimalStatistics::release_maximum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.DecimalStatistics.maximum)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.maximum_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.maximum_.Set("", GetArena());
  }
  return released;
}
inline void DecimalStatistics::set_allocated_maximum(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.maximum_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.maximum_.IsDefault()) {
    _impl_.maximum_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.DecimalStatistics.maximum)
}

// optional string sum = 3;
inline bool DecimalStatistics::has_sum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void DecimalStatistics::clear_sum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sum_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& DecimalStatistics::sum() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.DecimalStatistics.sum)
  return _internal_sum();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DecimalStatistics::set_sum(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.sum_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.DecimalStatistics.sum)
}
inline ::std::string* PROTOBUF_NONNULL DecimalStatistics::mutable_sum()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_sum();
  // @@protoc_insertion_point(field_mutable:orc.proto.DecimalStatistics.sum)
  return _s;
}
inline const ::std::string& DecimalStatistics::_internal_sum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sum_.Get();
}
inline void DecimalStatistics::_internal_set_sum(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sum_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DecimalStatistics::_internal_mutable_sum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.sum_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DecimalStatistics::release_sum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.DecimalStatistics.sum)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.sum_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.sum_.Set("", GetArena());
  }
  return released;
}
inline void DecimalStatistics::set_allocated_sum(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.sum_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.sum_.IsDefault()) {
    _impl_.sum_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.DecimalStatistics.sum)
}

// -------------------------------------------------------------------

// DateStatistics

// optional sint32 minimum = 1;
inline bool DateStatistics::has_minimum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void DateStatistics::clear_minimum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int32_t DateStatistics::minimum() const {
  // @@protoc_insertion_point(field_get:orc.proto.DateStatistics.minimum)
  return _internal_minimum();
}
inline void DateStatistics::set_minimum(::int32_t value) {
  _internal_set_minimum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:orc.proto.DateStatistics.minimum)
}
inline ::int32_t DateStatistics::_internal_minimum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.minimum_;
}
inline void DateStatistics::_internal_set_minimum(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_ = value;
}

// optional sint32 maximum = 2;
inline bool DateStatistics::has_maximum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void DateStatistics::clear_maximum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int32_t DateStatistics::maximum() const {
  // @@protoc_insertion_point(field_get:orc.proto.DateStatistics.maximum)
  return _internal_maximum();
}
inline void DateStatistics::set_maximum(::int32_t value) {
  _internal_set_maximum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:orc.proto.DateStatistics.maximum)
}
inline ::int32_t DateStatistics::_internal_maximum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_;
}
inline void DateStatistics::_internal_set_maximum(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_ = value;
}

// -------------------------------------------------------------------

// TimestampStatistics

// optional sint64 minimum = 1;
inline bool TimestampStatistics::has_minimum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void TimestampStatistics::clear_minimum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int64_t TimestampStatistics::minimum() const {
  // @@protoc_insertion_point(field_get:orc.proto.TimestampStatistics.minimum)
  return _internal_minimum();
}
inline void TimestampStatistics::set_minimum(::int64_t value) {
  _internal_set_minimum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:orc.proto.TimestampStatistics.minimum)
}
inline ::int64_t TimestampStatistics::_internal_minimum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.minimum_;
}
inline void TimestampStatistics::_internal_set_minimum(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_ = value;
}

// optional sint64 maximum = 2;
inline bool TimestampStatistics::has_maximum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void TimestampStatistics::clear_maximum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int64_t TimestampStatistics::maximum() const {
  // @@protoc_insertion_point(field_get:orc.proto.TimestampStatistics.maximum)
  return _internal_maximum();
}
inline void TimestampStatistics::set_maximum(::int64_t value) {
  _internal_set_maximum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:orc.proto.TimestampStatistics.maximum)
}
inline ::int64_t TimestampStatistics::_internal_maximum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_;
}
inline void TimestampStatistics::_internal_set_maximum(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_ = value;
}

// optional sint64 minimum_utc = 3;
inline bool TimestampStatistics::has_minimum_utc() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void TimestampStatistics::clear_minimum_utc() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_utc_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int64_t TimestampStatistics::minimum_utc() const {
  // @@protoc_insertion_point(field_get:orc.proto.TimestampStatistics.minimum_utc)
  return _internal_minimum_utc();
}
inline void TimestampStatistics::set_minimum_utc(::int64_t value) {
  _internal_set_minimum_utc(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.TimestampStatistics.minimum_utc)
}
inline ::int64_t TimestampStatistics::_internal_minimum_utc() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.minimum_utc_;
}
inline void TimestampStatistics::_internal_set_minimum_utc(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_utc_ = value;
}

// optional sint64 maximum_utc = 4;
inline bool TimestampStatistics::has_maximum_utc() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void TimestampStatistics::clear_maximum_utc() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_utc_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::int64_t TimestampStatistics::maximum_utc() const {
  // @@protoc_insertion_point(field_get:orc.proto.TimestampStatistics.maximum_utc)
  return _internal_maximum_utc();
}
inline void TimestampStatistics::set_maximum_utc(::int64_t value) {
  _internal_set_maximum_utc(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:orc.proto.TimestampStatistics.maximum_utc)
}
inline ::int64_t TimestampStatistics::_internal_maximum_utc() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_utc_;
}
inline void TimestampStatistics::_internal_set_maximum_utc(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_utc_ = value;
}

// optional int32 minimum_nanos = 5;
inline bool TimestampStatistics::has_minimum_nanos() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void TimestampStatistics::clear_minimum_nanos() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_nanos_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::int32_t TimestampStatistics::minimum_nanos() const {
  // @@protoc_insertion_point(field_get:orc.proto.TimestampStatistics.minimum_nanos)
  return _internal_minimum_nanos();
}
inline void TimestampStatistics::set_minimum_nanos(::int32_t value) {
  _internal_set_minimum_nanos(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:orc.proto.TimestampStatistics.minimum_nanos)
}
inline ::int32_t TimestampStatistics::_internal_minimum_nanos() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.minimum_nanos_;
}
inline void TimestampStatistics::_internal_set_minimum_nanos(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.minimum_nanos_ = value;
}

// optional int32 maximum_nanos = 6;
inline bool TimestampStatistics::has_maximum_nanos() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void TimestampStatistics::clear_maximum_nanos() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_nanos_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::int32_t TimestampStatistics::maximum_nanos() const {
  // @@protoc_insertion_point(field_get:orc.proto.TimestampStatistics.maximum_nanos)
  return _internal_maximum_nanos();
}
inline void TimestampStatistics::set_maximum_nanos(::int32_t value) {
  _internal_set_maximum_nanos(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:orc.proto.TimestampStatistics.maximum_nanos)
}
inline ::int32_t TimestampStatistics::_internal_maximum_nanos() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_nanos_;
}
inline void TimestampStatistics::_internal_set_maximum_nanos(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_nanos_ = value;
}

// -------------------------------------------------------------------

// BinaryStatistics

// optional sint64 sum = 1;
inline bool BinaryStatistics::has_sum() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void BinaryStatistics::clear_sum() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sum_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int64_t BinaryStatistics::sum() const {
  // @@protoc_insertion_point(field_get:orc.proto.BinaryStatistics.sum)
  return _internal_sum();
}
inline void BinaryStatistics::set_sum(::int64_t value) {
  _internal_set_sum(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:orc.proto.BinaryStatistics.sum)
}
inline ::int64_t BinaryStatistics::_internal_sum() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sum_;
}
inline void BinaryStatistics::_internal_set_sum(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sum_ = value;
}

// -------------------------------------------------------------------

// CollectionStatistics

// optional uint64 min_children = 1;
inline bool CollectionStatistics::has_min_children() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void CollectionStatistics::clear_min_children() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.min_children_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint64_t CollectionStatistics::min_children() const {
  // @@protoc_insertion_point(field_get:orc.proto.CollectionStatistics.min_children)
  return _internal_min_children();
}
inline void CollectionStatistics::set_min_children(::uint64_t value) {
  _internal_set_min_children(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:orc.proto.CollectionStatistics.min_children)
}
inline ::uint64_t CollectionStatistics::_internal_min_children() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.min_children_;
}
inline void CollectionStatistics::_internal_set_min_children(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.min_children_ = value;
}

// optional uint64 max_children = 2;
inline bool CollectionStatistics::has_max_children() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void CollectionStatistics::clear_max_children() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_children_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint64_t CollectionStatistics::max_children() const {
  // @@protoc_insertion_point(field_get:orc.proto.CollectionStatistics.max_children)
  return _internal_max_children();
}
inline void CollectionStatistics::set_max_children(::uint64_t value) {
  _internal_set_max_children(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:orc.proto.CollectionStatistics.max_children)
}
inline ::uint64_t CollectionStatistics::_internal_max_children() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_children_;
}
inline void CollectionStatistics::_internal_set_max_children(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_children_ = value;
}

// optional uint64 total_children = 3;
inline bool CollectionStatistics::has_total_children() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void CollectionStatistics::clear_total_children() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_children_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t CollectionStatistics::total_children() const {
  // @@protoc_insertion_point(field_get:orc.proto.CollectionStatistics.total_children)
  return _internal_total_children();
}
inline void CollectionStatistics::set_total_children(::uint64_t value) {
  _internal_set_total_children(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.CollectionStatistics.total_children)
}
inline ::uint64_t CollectionStatistics::_internal_total_children() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.total_children_;
}
inline void CollectionStatistics::_internal_set_total_children(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_children_ = value;
}

// -------------------------------------------------------------------

// BoundingBox

// optional double xmin = 1;
inline bool BoundingBox::has_xmin() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void BoundingBox::clear_xmin() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.xmin_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline double BoundingBox::xmin() const {
  // @@protoc_insertion_point(field_get:orc.proto.BoundingBox.xmin)
  return _internal_xmin();
}
inline void BoundingBox::set_xmin(double value) {
  _internal_set_xmin(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:orc.proto.BoundingBox.xmin)
}
inline double BoundingBox::_internal_xmin() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.xmin_;
}
inline void BoundingBox::_internal_set_xmin(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.xmin_ = value;
}

// optional double xmax = 2;
inline bool BoundingBox::has_xmax() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void BoundingBox::clear_xmax() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.xmax_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline double BoundingBox::xmax() const {
  // @@protoc_insertion_point(field_get:orc.proto.BoundingBox.xmax)
  return _internal_xmax();
}
inline void BoundingBox::set_xmax(double value) {
  _internal_set_xmax(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:orc.proto.BoundingBox.xmax)
}
inline double BoundingBox::_internal_xmax() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.xmax_;
}
inline void BoundingBox::_internal_set_xmax(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.xmax_ = value;
}

// optional double ymin = 3;
inline bool BoundingBox::has_ymin() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void BoundingBox::clear_ymin() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ymin_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline double BoundingBox::ymin() const {
  // @@protoc_insertion_point(field_get:orc.proto.BoundingBox.ymin)
  return _internal_ymin();
}
inline void BoundingBox::set_ymin(double value) {
  _internal_set_ymin(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.BoundingBox.ymin)
}
inline double BoundingBox::_internal_ymin() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ymin_;
}
inline void BoundingBox::_internal_set_ymin(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ymin_ = value;
}

// optional double ymax = 4;
inline bool BoundingBox::has_ymax() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void BoundingBox::clear_ymax() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ymax_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline double BoundingBox::ymax() const {
  // @@protoc_insertion_point(field_get:orc.proto.BoundingBox.ymax)
  return _internal_ymax();
}
inline void BoundingBox::set_ymax(double value) {
  _internal_set_ymax(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:orc.proto.BoundingBox.ymax)
}
inline double BoundingBox::_internal_ymax() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ymax_;
}
inline void BoundingBox::_internal_set_ymax(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ymax_ = value;
}

// optional double zmin = 5;
inline bool BoundingBox::has_zmin() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void BoundingBox::clear_zmin() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.zmin_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline double BoundingBox::zmin() const {
  // @@protoc_insertion_point(field_get:orc.proto.BoundingBox.zmin)
  return _internal_zmin();
}
inline void BoundingBox::set_zmin(double value) {
  _internal_set_zmin(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:orc.proto.BoundingBox.zmin)
}
inline double BoundingBox::_internal_zmin() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.zmin_;
}
inline void BoundingBox::_internal_set_zmin(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.zmin_ = value;
}

// optional double zmax = 6;
inline bool BoundingBox::has_zmax() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void BoundingBox::clear_zmax() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.zmax_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline double BoundingBox::zmax() const {
  // @@protoc_insertion_point(field_get:orc.proto.BoundingBox.zmax)
  return _internal_zmax();
}
inline void BoundingBox::set_zmax(double value) {
  _internal_set_zmax(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:orc.proto.BoundingBox.zmax)
}
inline double BoundingBox::_internal_zmax() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.zmax_;
}
inline void BoundingBox::_internal_set_zmax(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.zmax_ = value;
}

// optional double mmin = 7;
inline bool BoundingBox::has_mmin() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void BoundingBox::clear_mmin() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mmin_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline double BoundingBox::mmin() const {
  // @@protoc_insertion_point(field_get:orc.proto.BoundingBox.mmin)
  return _internal_mmin();
}
inline void BoundingBox::set_mmin(double value) {
  _internal_set_mmin(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:orc.proto.BoundingBox.mmin)
}
inline double BoundingBox::_internal_mmin() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mmin_;
}
inline void BoundingBox::_internal_set_mmin(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mmin_ = value;
}

// optional double mmax = 8;
inline bool BoundingBox::has_mmax() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void BoundingBox::clear_mmax() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mmax_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline double BoundingBox::mmax() const {
  // @@protoc_insertion_point(field_get:orc.proto.BoundingBox.mmax)
  return _internal_mmax();
}
inline void BoundingBox::set_mmax(double value) {
  _internal_set_mmax(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:orc.proto.BoundingBox.mmax)
}
inline double BoundingBox::_internal_mmax() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mmax_;
}
inline void BoundingBox::_internal_set_mmax(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mmax_ = value;
}

// -------------------------------------------------------------------

// GeospatialStatistics

// optional .orc.proto.BoundingBox bbox = 1;
inline bool GeospatialStatistics::has_bbox() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.bbox_ != nullptr);
  return value;
}
inline void GeospatialStatistics::clear_bbox() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bbox_ != nullptr) _impl_.bbox_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::orc::proto::BoundingBox& GeospatialStatistics::_internal_bbox() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::BoundingBox* p = _impl_.bbox_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::BoundingBox>(&::orc::proto::BoundingBox_globals_);
}
inline const ::orc::proto::BoundingBox& GeospatialStatistics::bbox() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.GeospatialStatistics.bbox)
  return _internal_bbox();
}
inline void GeospatialStatistics::unsafe_arena_set_allocated_bbox(
    ::orc::proto::BoundingBox* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.bbox_);
  }
  _impl_.bbox_ = reinterpret_cast<::orc::proto::BoundingBox*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.GeospatialStatistics.bbox)
}
inline ::orc::proto::BoundingBox* PROTOBUF_NULLABLE GeospatialStatistics::release_bbox() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::BoundingBox* released = _impl_.bbox_;
  _impl_.bbox_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::BoundingBox* PROTOBUF_NULLABLE GeospatialStatistics::unsafe_arena_release_bbox() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.GeospatialStatistics.bbox)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::BoundingBox* temp = _impl_.bbox_;
  _impl_.bbox_ = nullptr;
  return temp;
}
inline ::orc::proto::BoundingBox* PROTOBUF_NONNULL GeospatialStatistics::_internal_mutable_bbox() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bbox_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::BoundingBox>(GetArena());
    _impl_.bbox_ = reinterpret_cast<::orc::proto::BoundingBox*>(p);
  }
  return _impl_.bbox_;
}
inline ::orc::proto::BoundingBox* PROTOBUF_NONNULL GeospatialStatistics::mutable_bbox()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::BoundingBox* _msg = _internal_mutable_bbox();
  // @@protoc_insertion_point(field_mutable:orc.proto.GeospatialStatistics.bbox)
  return _msg;
}
inline void GeospatialStatistics::set_allocated_bbox(::orc::proto::BoundingBox* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.bbox_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.bbox_ = reinterpret_cast<::orc::proto::BoundingBox*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.GeospatialStatistics.bbox)
}

// repeated int32 geospatial_types = 2;
inline int GeospatialStatistics::_internal_geospatial_types_size() const {
  return _internal_geospatial_types().size();
}
inline int GeospatialStatistics::geospatial_types_size() const {
  return _internal_geospatial_types_size();
}
inline void GeospatialStatistics::clear_geospatial_types() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.geospatial_types_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int32_t GeospatialStatistics::geospatial_types(int index) const {
  // @@protoc_insertion_point(field_get:orc.proto.GeospatialStatistics.geospatial_types)
  return _internal_geospatial_types().Get(index);
}
inline void GeospatialStatistics::set_geospatial_types(int index, ::int32_t value) {
  _internal_mutable_geospatial_types()->Set(index, value);
  // @@protoc_insertion_point(field_set:orc.proto.GeospatialStatistics.geospatial_types)
}
inline void GeospatialStatistics::add_geospatial_types(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_geospatial_types()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.GeospatialStatistics.geospatial_types)
}
inline const ::google::protobuf::RepeatedField<::int32_t>& GeospatialStatistics::geospatial_types() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.GeospatialStatistics.geospatial_types)
  return _internal_geospatial_types();
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL GeospatialStatistics::mutable_geospatial_types()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.GeospatialStatistics.geospatial_types)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_geospatial_types();
}
inline const ::google::protobuf::RepeatedField<::int32_t>&
GeospatialStatistics::_internal_geospatial_types() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.geospatial_types_;
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL
GeospatialStatistics::_internal_mutable_geospatial_types() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.geospatial_types_;
}

// -------------------------------------------------------------------

// ColumnStatistics

// optional uint64 number_of_values = 1;
inline bool ColumnStatistics::has_number_of_values() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  return value;
}
inline void ColumnStatistics::clear_number_of_values() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.number_of_values_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::uint64_t ColumnStatistics::number_of_values() const {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.number_of_values)
  return _internal_number_of_values();
}
inline void ColumnStatistics::set_number_of_values(::uint64_t value) {
  _internal_set_number_of_values(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:orc.proto.ColumnStatistics.number_of_values)
}
inline ::uint64_t ColumnStatistics::_internal_number_of_values() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.number_of_values_;
}
inline void ColumnStatistics::_internal_set_number_of_values(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.number_of_values_ = value;
}

// optional .orc.proto.IntegerStatistics int_statistics = 2;
inline bool ColumnStatistics::has_int_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.int_statistics_ != nullptr);
  return value;
}
inline void ColumnStatistics::clear_int_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.int_statistics_ != nullptr) _impl_.int_statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::IntegerStatistics& ColumnStatistics::_internal_int_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::IntegerStatistics* p = _impl_.int_statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::IntegerStatistics>(&::orc::proto::IntegerStatistics_globals_);
}
inline const ::orc::proto::IntegerStatistics& ColumnStatistics::int_statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.int_statistics)
  return _internal_int_statistics();
}
inline void ColumnStatistics::unsafe_arena_set_allocated_int_statistics(
    ::orc::proto::IntegerStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.int_statistics_);
  }
  _impl_.int_statistics_ = reinterpret_cast<::orc::proto::IntegerStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.ColumnStatistics.int_statistics)
}
inline ::orc::proto::IntegerStatistics* PROTOBUF_NULLABLE ColumnStatistics::release_int_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::orc::proto::IntegerStatistics* released = _impl_.int_statistics_;
  _impl_.int_statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::IntegerStatistics* PROTOBUF_NULLABLE ColumnStatistics::unsafe_arena_release_int_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.ColumnStatistics.int_statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::orc::proto::IntegerStatistics* temp = _impl_.int_statistics_;
  _impl_.int_statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::IntegerStatistics* PROTOBUF_NONNULL ColumnStatistics::_internal_mutable_int_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.int_statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::IntegerStatistics>(GetArena());
    _impl_.int_statistics_ = reinterpret_cast<::orc::proto::IntegerStatistics*>(p);
  }
  return _impl_.int_statistics_;
}
inline ::orc::proto::IntegerStatistics* PROTOBUF_NONNULL ColumnStatistics::mutable_int_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::orc::proto::IntegerStatistics* _msg = _internal_mutable_int_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnStatistics.int_statistics)
  return _msg;
}
inline void ColumnStatistics::set_allocated_int_statistics(::orc::proto::IntegerStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.int_statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.int_statistics_ = reinterpret_cast<::orc::proto::IntegerStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.ColumnStatistics.int_statistics)
}

// optional .orc.proto.DoubleStatistics double_statistics = 3;
inline bool ColumnStatistics::has_double_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.double_statistics_ != nullptr);
  return value;
}
inline void ColumnStatistics::clear_double_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.double_statistics_ != nullptr) _impl_.double_statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::orc::proto::DoubleStatistics& ColumnStatistics::_internal_double_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::DoubleStatistics* p = _impl_.double_statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::DoubleStatistics>(&::orc::proto::DoubleStatistics_globals_);
}
inline const ::orc::proto::DoubleStatistics& ColumnStatistics::double_statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.double_statistics)
  return _internal_double_statistics();
}
inline void ColumnStatistics::unsafe_arena_set_allocated_double_statistics(
    ::orc::proto::DoubleStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.double_statistics_);
  }
  _impl_.double_statistics_ = reinterpret_cast<::orc::proto::DoubleStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.ColumnStatistics.double_statistics)
}
inline ::orc::proto::DoubleStatistics* PROTOBUF_NULLABLE ColumnStatistics::release_double_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::DoubleStatistics* released = _impl_.double_statistics_;
  _impl_.double_statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::DoubleStatistics* PROTOBUF_NULLABLE ColumnStatistics::unsafe_arena_release_double_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.ColumnStatistics.double_statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::DoubleStatistics* temp = _impl_.double_statistics_;
  _impl_.double_statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::DoubleStatistics* PROTOBUF_NONNULL ColumnStatistics::_internal_mutable_double_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.double_statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::DoubleStatistics>(GetArena());
    _impl_.double_statistics_ = reinterpret_cast<::orc::proto::DoubleStatistics*>(p);
  }
  return _impl_.double_statistics_;
}
inline ::orc::proto::DoubleStatistics* PROTOBUF_NONNULL ColumnStatistics::mutable_double_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::DoubleStatistics* _msg = _internal_mutable_double_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnStatistics.double_statistics)
  return _msg;
}
inline void ColumnStatistics::set_allocated_double_statistics(::orc::proto::DoubleStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.double_statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.double_statistics_ = reinterpret_cast<::orc::proto::DoubleStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.ColumnStatistics.double_statistics)
}

// optional .orc.proto.StringStatistics string_statistics = 4;
inline bool ColumnStatistics::has_string_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.string_statistics_ != nullptr);
  return value;
}
inline void ColumnStatistics::clear_string_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.string_statistics_ != nullptr) _impl_.string_statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::orc::proto::StringStatistics& ColumnStatistics::_internal_string_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::StringStatistics* p = _impl_.string_statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::StringStatistics>(&::orc::proto::StringStatistics_globals_);
}
inline const ::orc::proto::StringStatistics& ColumnStatistics::string_statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.string_statistics)
  return _internal_string_statistics();
}
inline void ColumnStatistics::unsafe_arena_set_allocated_string_statistics(
    ::orc::proto::StringStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.string_statistics_);
  }
  _impl_.string_statistics_ = reinterpret_cast<::orc::proto::StringStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.ColumnStatistics.string_statistics)
}
inline ::orc::proto::StringStatistics* PROTOBUF_NULLABLE ColumnStatistics::release_string_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::orc::proto::StringStatistics* released = _impl_.string_statistics_;
  _impl_.string_statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::StringStatistics* PROTOBUF_NULLABLE ColumnStatistics::unsafe_arena_release_string_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.ColumnStatistics.string_statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::orc::proto::StringStatistics* temp = _impl_.string_statistics_;
  _impl_.string_statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::StringStatistics* PROTOBUF_NONNULL ColumnStatistics::_internal_mutable_string_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.string_statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::StringStatistics>(GetArena());
    _impl_.string_statistics_ = reinterpret_cast<::orc::proto::StringStatistics*>(p);
  }
  return _impl_.string_statistics_;
}
inline ::orc::proto::StringStatistics* PROTOBUF_NONNULL ColumnStatistics::mutable_string_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::orc::proto::StringStatistics* _msg = _internal_mutable_string_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnStatistics.string_statistics)
  return _msg;
}
inline void ColumnStatistics::set_allocated_string_statistics(::orc::proto::StringStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.string_statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.string_statistics_ = reinterpret_cast<::orc::proto::StringStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.ColumnStatistics.string_statistics)
}

// optional .orc.proto.BucketStatistics bucket_statistics = 5;
inline bool ColumnStatistics::has_bucket_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.bucket_statistics_ != nullptr);
  return value;
}
inline void ColumnStatistics::clear_bucket_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bucket_statistics_ != nullptr) _impl_.bucket_statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::orc::proto::BucketStatistics& ColumnStatistics::_internal_bucket_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::BucketStatistics* p = _impl_.bucket_statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::BucketStatistics>(&::orc::proto::BucketStatistics_globals_);
}
inline const ::orc::proto::BucketStatistics& ColumnStatistics::bucket_statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.bucket_statistics)
  return _internal_bucket_statistics();
}
inline void ColumnStatistics::unsafe_arena_set_allocated_bucket_statistics(
    ::orc::proto::BucketStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.bucket_statistics_);
  }
  _impl_.bucket_statistics_ = reinterpret_cast<::orc::proto::BucketStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.ColumnStatistics.bucket_statistics)
}
inline ::orc::proto::BucketStatistics* PROTOBUF_NULLABLE ColumnStatistics::release_bucket_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::orc::proto::BucketStatistics* released = _impl_.bucket_statistics_;
  _impl_.bucket_statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::BucketStatistics* PROTOBUF_NULLABLE ColumnStatistics::unsafe_arena_release_bucket_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.ColumnStatistics.bucket_statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::orc::proto::BucketStatistics* temp = _impl_.bucket_statistics_;
  _impl_.bucket_statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::BucketStatistics* PROTOBUF_NONNULL ColumnStatistics::_internal_mutable_bucket_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bucket_statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::BucketStatistics>(GetArena());
    _impl_.bucket_statistics_ = reinterpret_cast<::orc::proto::BucketStatistics*>(p);
  }
  return _impl_.bucket_statistics_;
}
inline ::orc::proto::BucketStatistics* PROTOBUF_NONNULL ColumnStatistics::mutable_bucket_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::orc::proto::BucketStatistics* _msg = _internal_mutable_bucket_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnStatistics.bucket_statistics)
  return _msg;
}
inline void ColumnStatistics::set_allocated_bucket_statistics(::orc::proto::BucketStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.bucket_statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.bucket_statistics_ = reinterpret_cast<::orc::proto::BucketStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.ColumnStatistics.bucket_statistics)
}

// optional .orc.proto.DecimalStatistics decimal_statistics = 6;
inline bool ColumnStatistics::has_decimal_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.decimal_statistics_ != nullptr);
  return value;
}
inline void ColumnStatistics::clear_decimal_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.decimal_statistics_ != nullptr) _impl_.decimal_statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::orc::proto::DecimalStatistics& ColumnStatistics::_internal_decimal_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::DecimalStatistics* p = _impl_.decimal_statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::DecimalStatistics>(&::orc::proto::DecimalStatistics_globals_);
}
inline const ::orc::proto::DecimalStatistics& ColumnStatistics::decimal_statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.decimal_statistics)
  return _internal_decimal_statistics();
}
inline void ColumnStatistics::unsafe_arena_set_allocated_decimal_statistics(
    ::orc::proto::DecimalStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.decimal_statistics_);
  }
  _impl_.decimal_statistics_ = reinterpret_cast<::orc::proto::DecimalStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.ColumnStatistics.decimal_statistics)
}
inline ::orc::proto::DecimalStatistics* PROTOBUF_NULLABLE ColumnStatistics::release_decimal_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::orc::proto::DecimalStatistics* released = _impl_.decimal_statistics_;
  _impl_.decimal_statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::DecimalStatistics* PROTOBUF_NULLABLE ColumnStatistics::unsafe_arena_release_decimal_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.ColumnStatistics.decimal_statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::orc::proto::DecimalStatistics* temp = _impl_.decimal_statistics_;
  _impl_.decimal_statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::DecimalStatistics* PROTOBUF_NONNULL ColumnStatistics::_internal_mutable_decimal_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.decimal_statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::DecimalStatistics>(GetArena());
    _impl_.decimal_statistics_ = reinterpret_cast<::orc::proto::DecimalStatistics*>(p);
  }
  return _impl_.decimal_statistics_;
}
inline ::orc::proto::DecimalStatistics* PROTOBUF_NONNULL ColumnStatistics::mutable_decimal_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::orc::proto::DecimalStatistics* _msg = _internal_mutable_decimal_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnStatistics.decimal_statistics)
  return _msg;
}
inline void ColumnStatistics::set_allocated_decimal_statistics(::orc::proto::DecimalStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.decimal_statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.decimal_statistics_ = reinterpret_cast<::orc::proto::DecimalStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.ColumnStatistics.decimal_statistics)
}

// optional .orc.proto.DateStatistics date_statistics = 7;
inline bool ColumnStatistics::has_date_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.date_statistics_ != nullptr);
  return value;
}
inline void ColumnStatistics::clear_date_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.date_statistics_ != nullptr) _impl_.date_statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::orc::proto::DateStatistics& ColumnStatistics::_internal_date_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::DateStatistics* p = _impl_.date_statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::DateStatistics>(&::orc::proto::DateStatistics_globals_);
}
inline const ::orc::proto::DateStatistics& ColumnStatistics::date_statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.date_statistics)
  return _internal_date_statistics();
}
inline void ColumnStatistics::unsafe_arena_set_allocated_date_statistics(
    ::orc::proto::DateStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.date_statistics_);
  }
  _impl_.date_statistics_ = reinterpret_cast<::orc::proto::DateStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.ColumnStatistics.date_statistics)
}
inline ::orc::proto::DateStatistics* PROTOBUF_NULLABLE ColumnStatistics::release_date_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::orc::proto::DateStatistics* released = _impl_.date_statistics_;
  _impl_.date_statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::DateStatistics* PROTOBUF_NULLABLE ColumnStatistics::unsafe_arena_release_date_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.ColumnStatistics.date_statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::orc::proto::DateStatistics* temp = _impl_.date_statistics_;
  _impl_.date_statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::DateStatistics* PROTOBUF_NONNULL ColumnStatistics::_internal_mutable_date_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.date_statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::DateStatistics>(GetArena());
    _impl_.date_statistics_ = reinterpret_cast<::orc::proto::DateStatistics*>(p);
  }
  return _impl_.date_statistics_;
}
inline ::orc::proto::DateStatistics* PROTOBUF_NONNULL ColumnStatistics::mutable_date_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::orc::proto::DateStatistics* _msg = _internal_mutable_date_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnStatistics.date_statistics)
  return _msg;
}
inline void ColumnStatistics::set_allocated_date_statistics(::orc::proto::DateStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.date_statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.date_statistics_ = reinterpret_cast<::orc::proto::DateStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.ColumnStatistics.date_statistics)
}

// optional .orc.proto.BinaryStatistics binary_statistics = 8;
inline bool ColumnStatistics::has_binary_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.binary_statistics_ != nullptr);
  return value;
}
inline void ColumnStatistics::clear_binary_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.binary_statistics_ != nullptr) _impl_.binary_statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::orc::proto::BinaryStatistics& ColumnStatistics::_internal_binary_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::BinaryStatistics* p = _impl_.binary_statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::BinaryStatistics>(&::orc::proto::BinaryStatistics_globals_);
}
inline const ::orc::proto::BinaryStatistics& ColumnStatistics::binary_statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.binary_statistics)
  return _internal_binary_statistics();
}
inline void ColumnStatistics::unsafe_arena_set_allocated_binary_statistics(
    ::orc::proto::BinaryStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.binary_statistics_);
  }
  _impl_.binary_statistics_ = reinterpret_cast<::orc::proto::BinaryStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.ColumnStatistics.binary_statistics)
}
inline ::orc::proto::BinaryStatistics* PROTOBUF_NULLABLE ColumnStatistics::release_binary_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::orc::proto::BinaryStatistics* released = _impl_.binary_statistics_;
  _impl_.binary_statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::BinaryStatistics* PROTOBUF_NULLABLE ColumnStatistics::unsafe_arena_release_binary_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.ColumnStatistics.binary_statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::orc::proto::BinaryStatistics* temp = _impl_.binary_statistics_;
  _impl_.binary_statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::BinaryStatistics* PROTOBUF_NONNULL ColumnStatistics::_internal_mutable_binary_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.binary_statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::BinaryStatistics>(GetArena());
    _impl_.binary_statistics_ = reinterpret_cast<::orc::proto::BinaryStatistics*>(p);
  }
  return _impl_.binary_statistics_;
}
inline ::orc::proto::BinaryStatistics* PROTOBUF_NONNULL ColumnStatistics::mutable_binary_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::orc::proto::BinaryStatistics* _msg = _internal_mutable_binary_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnStatistics.binary_statistics)
  return _msg;
}
inline void ColumnStatistics::set_allocated_binary_statistics(::orc::proto::BinaryStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.binary_statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.binary_statistics_ = reinterpret_cast<::orc::proto::BinaryStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.ColumnStatistics.binary_statistics)
}

// optional .orc.proto.TimestampStatistics timestamp_statistics = 9;
inline bool ColumnStatistics::has_timestamp_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.timestamp_statistics_ != nullptr);
  return value;
}
inline void ColumnStatistics::clear_timestamp_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.timestamp_statistics_ != nullptr) _impl_.timestamp_statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::orc::proto::TimestampStatistics& ColumnStatistics::_internal_timestamp_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::TimestampStatistics* p = _impl_.timestamp_statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::TimestampStatistics>(&::orc::proto::TimestampStatistics_globals_);
}
inline const ::orc::proto::TimestampStatistics& ColumnStatistics::timestamp_statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.timestamp_statistics)
  return _internal_timestamp_statistics();
}
inline void ColumnStatistics::unsafe_arena_set_allocated_timestamp_statistics(
    ::orc::proto::TimestampStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.timestamp_statistics_);
  }
  _impl_.timestamp_statistics_ = reinterpret_cast<::orc::proto::TimestampStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.ColumnStatistics.timestamp_statistics)
}
inline ::orc::proto::TimestampStatistics* PROTOBUF_NULLABLE ColumnStatistics::release_timestamp_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::orc::proto::TimestampStatistics* released = _impl_.timestamp_statistics_;
  _impl_.timestamp_statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::TimestampStatistics* PROTOBUF_NULLABLE ColumnStatistics::unsafe_arena_release_timestamp_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.ColumnStatistics.timestamp_statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::orc::proto::TimestampStatistics* temp = _impl_.timestamp_statistics_;
  _impl_.timestamp_statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::TimestampStatistics* PROTOBUF_NONNULL ColumnStatistics::_internal_mutable_timestamp_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.timestamp_statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::TimestampStatistics>(GetArena());
    _impl_.timestamp_statistics_ = reinterpret_cast<::orc::proto::TimestampStatistics*>(p);
  }
  return _impl_.timestamp_statistics_;
}
inline ::orc::proto::TimestampStatistics* PROTOBUF_NONNULL ColumnStatistics::mutable_timestamp_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::orc::proto::TimestampStatistics* _msg = _internal_mutable_timestamp_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnStatistics.timestamp_statistics)
  return _msg;
}
inline void ColumnStatistics::set_allocated_timestamp_statistics(::orc::proto::TimestampStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.timestamp_statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.timestamp_statistics_ = reinterpret_cast<::orc::proto::TimestampStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.ColumnStatistics.timestamp_statistics)
}

// optional bool has_null = 10;
inline bool ColumnStatistics::has_has_null() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00001000U);
  return value;
}
inline void ColumnStatistics::clear_has_null() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.has_null_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline bool ColumnStatistics::has_null() const {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.has_null)
  return _internal_has_null();
}
inline void ColumnStatistics::set_has_null(bool value) {
  _internal_set_has_null(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:orc.proto.ColumnStatistics.has_null)
}
inline bool ColumnStatistics::_internal_has_null() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.has_null_;
}
inline void ColumnStatistics::_internal_set_has_null(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.has_null_ = value;
}

// optional uint64 bytes_on_disk = 11;
inline bool ColumnStatistics::has_bytes_on_disk() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000800U);
  return value;
}
inline void ColumnStatistics::clear_bytes_on_disk() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bytes_on_disk_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline ::uint64_t ColumnStatistics::bytes_on_disk() const {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.bytes_on_disk)
  return _internal_bytes_on_disk();
}
inline void ColumnStatistics::set_bytes_on_disk(::uint64_t value) {
  _internal_set_bytes_on_disk(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:orc.proto.ColumnStatistics.bytes_on_disk)
}
inline ::uint64_t ColumnStatistics::_internal_bytes_on_disk() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bytes_on_disk_;
}
inline void ColumnStatistics::_internal_set_bytes_on_disk(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bytes_on_disk_ = value;
}

// optional .orc.proto.CollectionStatistics collection_statistics = 12;
inline bool ColumnStatistics::has_collection_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  PROTOBUF_ASSUME(!value || _impl_.collection_statistics_ != nullptr);
  return value;
}
inline void ColumnStatistics::clear_collection_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.collection_statistics_ != nullptr) _impl_.collection_statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::orc::proto::CollectionStatistics& ColumnStatistics::_internal_collection_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::CollectionStatistics* p = _impl_.collection_statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::CollectionStatistics>(&::orc::proto::CollectionStatistics_globals_);
}
inline const ::orc::proto::CollectionStatistics& ColumnStatistics::collection_statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.collection_statistics)
  return _internal_collection_statistics();
}
inline void ColumnStatistics::unsafe_arena_set_allocated_collection_statistics(
    ::orc::proto::CollectionStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.collection_statistics_);
  }
  _impl_.collection_statistics_ = reinterpret_cast<::orc::proto::CollectionStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.ColumnStatistics.collection_statistics)
}
inline ::orc::proto::CollectionStatistics* PROTOBUF_NULLABLE ColumnStatistics::release_collection_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::orc::proto::CollectionStatistics* released = _impl_.collection_statistics_;
  _impl_.collection_statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::CollectionStatistics* PROTOBUF_NULLABLE ColumnStatistics::unsafe_arena_release_collection_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.ColumnStatistics.collection_statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::orc::proto::CollectionStatistics* temp = _impl_.collection_statistics_;
  _impl_.collection_statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::CollectionStatistics* PROTOBUF_NONNULL ColumnStatistics::_internal_mutable_collection_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.collection_statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::CollectionStatistics>(GetArena());
    _impl_.collection_statistics_ = reinterpret_cast<::orc::proto::CollectionStatistics*>(p);
  }
  return _impl_.collection_statistics_;
}
inline ::orc::proto::CollectionStatistics* PROTOBUF_NONNULL ColumnStatistics::mutable_collection_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::orc::proto::CollectionStatistics* _msg = _internal_mutable_collection_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnStatistics.collection_statistics)
  return _msg;
}
inline void ColumnStatistics::set_allocated_collection_statistics(::orc::proto::CollectionStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.collection_statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }

  _impl_.collection_statistics_ = reinterpret_cast<::orc::proto::CollectionStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.ColumnStatistics.collection_statistics)
}

// optional .orc.proto.GeospatialStatistics geospatial_statistics = 13;
inline bool ColumnStatistics::has_geospatial_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  PROTOBUF_ASSUME(!value || _impl_.geospatial_statistics_ != nullptr);
  return value;
}
inline void ColumnStatistics::clear_geospatial_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.geospatial_statistics_ != nullptr) _impl_.geospatial_statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline const ::orc::proto::GeospatialStatistics& ColumnStatistics::_internal_geospatial_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::GeospatialStatistics* p = _impl_.geospatial_statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::GeospatialStatistics>(&::orc::proto::GeospatialStatistics_globals_);
}
inline const ::orc::proto::GeospatialStatistics& ColumnStatistics::geospatial_statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnStatistics.geospatial_statistics)
  return _internal_geospatial_statistics();
}
inline void ColumnStatistics::unsafe_arena_set_allocated_geospatial_statistics(
    ::orc::proto::GeospatialStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.geospatial_statistics_);
  }
  _impl_.geospatial_statistics_ = reinterpret_cast<::orc::proto::GeospatialStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.ColumnStatistics.geospatial_statistics)
}
inline ::orc::proto::GeospatialStatistics* PROTOBUF_NULLABLE ColumnStatistics::release_geospatial_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::orc::proto::GeospatialStatistics* released = _impl_.geospatial_statistics_;
  _impl_.geospatial_statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::GeospatialStatistics* PROTOBUF_NULLABLE ColumnStatistics::unsafe_arena_release_geospatial_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.ColumnStatistics.geospatial_statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::orc::proto::GeospatialStatistics* temp = _impl_.geospatial_statistics_;
  _impl_.geospatial_statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::GeospatialStatistics* PROTOBUF_NONNULL ColumnStatistics::_internal_mutable_geospatial_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.geospatial_statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::GeospatialStatistics>(GetArena());
    _impl_.geospatial_statistics_ = reinterpret_cast<::orc::proto::GeospatialStatistics*>(p);
  }
  return _impl_.geospatial_statistics_;
}
inline ::orc::proto::GeospatialStatistics* PROTOBUF_NONNULL ColumnStatistics::mutable_geospatial_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::orc::proto::GeospatialStatistics* _msg = _internal_mutable_geospatial_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnStatistics.geospatial_statistics)
  return _msg;
}
inline void ColumnStatistics::set_allocated_geospatial_statistics(::orc::proto::GeospatialStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.geospatial_statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }

  _impl_.geospatial_statistics_ = reinterpret_cast<::orc::proto::GeospatialStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.ColumnStatistics.geospatial_statistics)
}

// -------------------------------------------------------------------

// RowIndexEntry

// repeated uint64 positions = 1 [packed = true];
inline int RowIndexEntry::_internal_positions_size() const {
  return _internal_positions().size();
}
inline int RowIndexEntry::positions_size() const {
  return _internal_positions_size();
}
inline void RowIndexEntry::clear_positions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.positions_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint64_t RowIndexEntry::positions(int index) const {
  // @@protoc_insertion_point(field_get:orc.proto.RowIndexEntry.positions)
  return _internal_positions().Get(index);
}
inline void RowIndexEntry::set_positions(int index, ::uint64_t value) {
  _internal_mutable_positions()->Set(index, value);
  // @@protoc_insertion_point(field_set:orc.proto.RowIndexEntry.positions)
}
inline void RowIndexEntry::add_positions(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_positions()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.RowIndexEntry.positions)
}
inline const ::google::protobuf::RepeatedField<::uint64_t>& RowIndexEntry::positions() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.RowIndexEntry.positions)
  return _internal_positions();
}
inline ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL RowIndexEntry::mutable_positions()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.RowIndexEntry.positions)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_positions();
}
inline const ::google::protobuf::RepeatedField<::uint64_t>&
RowIndexEntry::_internal_positions() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.positions_;
}
inline ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL
RowIndexEntry::_internal_mutable_positions() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.positions_;
}

// optional .orc.proto.ColumnStatistics statistics = 2;
inline bool RowIndexEntry::has_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.statistics_ != nullptr);
  return value;
}
inline void RowIndexEntry::clear_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.statistics_ != nullptr) _impl_.statistics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::orc::proto::ColumnStatistics& RowIndexEntry::_internal_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::ColumnStatistics* p = _impl_.statistics_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::ColumnStatistics>(&::orc::proto::ColumnStatistics_globals_);
}
inline const ::orc::proto::ColumnStatistics& RowIndexEntry::statistics() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.RowIndexEntry.statistics)
  return _internal_statistics();
}
inline void RowIndexEntry::unsafe_arena_set_allocated_statistics(
    ::orc::proto::ColumnStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.statistics_);
  }
  _impl_.statistics_ = reinterpret_cast<::orc::proto::ColumnStatistics*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.RowIndexEntry.statistics)
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NULLABLE RowIndexEntry::release_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::ColumnStatistics* released = _impl_.statistics_;
  _impl_.statistics_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NULLABLE RowIndexEntry::unsafe_arena_release_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.RowIndexEntry.statistics)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::ColumnStatistics* temp = _impl_.statistics_;
  _impl_.statistics_ = nullptr;
  return temp;
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL RowIndexEntry::_internal_mutable_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.statistics_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::ColumnStatistics>(GetArena());
    _impl_.statistics_ = reinterpret_cast<::orc::proto::ColumnStatistics*>(p);
  }
  return _impl_.statistics_;
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL RowIndexEntry::mutable_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::ColumnStatistics* _msg = _internal_mutable_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.RowIndexEntry.statistics)
  return _msg;
}
inline void RowIndexEntry::set_allocated_statistics(::orc::proto::ColumnStatistics* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.statistics_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.statistics_ = reinterpret_cast<::orc::proto::ColumnStatistics*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.RowIndexEntry.statistics)
}

// -------------------------------------------------------------------

// RowIndex

// repeated .orc.proto.RowIndexEntry entry = 1;
inline int RowIndex::_internal_entry_size() const {
  return _internal_entry().size();
}
inline int RowIndex::entry_size() const {
  return _internal_entry_size();
}
inline void RowIndex::clear_entry() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.entry_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::RowIndexEntry& RowIndex::entry(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.RowIndex.entry)
  return _internal_entry().Get(index);
}
inline ::orc::proto::RowIndexEntry* PROTOBUF_NONNULL RowIndex::mutable_entry(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.RowIndex.entry)
  return _internal_mutable_entry()->Mutable(index);
}
inline ::orc::proto::RowIndexEntry* PROTOBUF_NONNULL RowIndex::add_entry()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::RowIndexEntry* _add =
      _internal_mutable_entry()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.RowIndex.entry)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::RowIndexEntry>& RowIndex::entry() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.RowIndex.entry)
  return _internal_entry();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::RowIndexEntry>* PROTOBUF_NONNULL
RowIndex::mutable_entry() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.RowIndex.entry)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_entry();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::RowIndexEntry>&
RowIndex::_internal_entry() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.entry_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::RowIndexEntry>* PROTOBUF_NONNULL
RowIndex::_internal_mutable_entry() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.entry_;
}

// -------------------------------------------------------------------

// BloomFilter

// optional uint32 num_hash_functions = 1;
inline bool BloomFilter::has_num_hash_functions() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void BloomFilter::clear_num_hash_functions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.num_hash_functions_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint32_t BloomFilter::num_hash_functions() const {
  // @@protoc_insertion_point(field_get:orc.proto.BloomFilter.num_hash_functions)
  return _internal_num_hash_functions();
}
inline void BloomFilter::set_num_hash_functions(::uint32_t value) {
  _internal_set_num_hash_functions(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.BloomFilter.num_hash_functions)
}
inline ::uint32_t BloomFilter::_internal_num_hash_functions() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.num_hash_functions_;
}
inline void BloomFilter::_internal_set_num_hash_functions(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.num_hash_functions_ = value;
}

// repeated fixed64 bitset = 2;
inline int BloomFilter::_internal_bitset_size() const {
  return _internal_bitset().size();
}
inline int BloomFilter::bitset_size() const {
  return _internal_bitset_size();
}
inline void BloomFilter::clear_bitset() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bitset_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint64_t BloomFilter::bitset(int index) const {
  // @@protoc_insertion_point(field_get:orc.proto.BloomFilter.bitset)
  return _internal_bitset().Get(index);
}
inline void BloomFilter::set_bitset(int index, ::uint64_t value) {
  _internal_mutable_bitset()->Set(index, value);
  // @@protoc_insertion_point(field_set:orc.proto.BloomFilter.bitset)
}
inline void BloomFilter::add_bitset(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_bitset()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.BloomFilter.bitset)
}
inline const ::google::protobuf::RepeatedField<::uint64_t>& BloomFilter::bitset() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.BloomFilter.bitset)
  return _internal_bitset();
}
inline ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL BloomFilter::mutable_bitset()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.BloomFilter.bitset)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_bitset();
}
inline const ::google::protobuf::RepeatedField<::uint64_t>&
BloomFilter::_internal_bitset() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bitset_;
}
inline ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL
BloomFilter::_internal_mutable_bitset() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.bitset_;
}

// optional bytes utf8bitset = 3;
inline bool BloomFilter::has_utf8bitset() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void BloomFilter::clear_utf8bitset() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.utf8bitset_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& BloomFilter::utf8bitset() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.BloomFilter.utf8bitset)
  return _internal_utf8bitset();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void BloomFilter::set_utf8bitset(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.utf8bitset_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.BloomFilter.utf8bitset)
}
inline ::std::string* PROTOBUF_NONNULL BloomFilter::mutable_utf8bitset()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_utf8bitset();
  // @@protoc_insertion_point(field_mutable:orc.proto.BloomFilter.utf8bitset)
  return _s;
}
inline const ::std::string& BloomFilter::_internal_utf8bitset() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.utf8bitset_.Get();
}
inline void BloomFilter::_internal_set_utf8bitset(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.utf8bitset_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL BloomFilter::_internal_mutable_utf8bitset() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.utf8bitset_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE BloomFilter::release_utf8bitset() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.BloomFilter.utf8bitset)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.utf8bitset_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.utf8bitset_.Set("", GetArena());
  }
  return released;
}
inline void BloomFilter::set_allocated_utf8bitset(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.utf8bitset_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.utf8bitset_.IsDefault()) {
    _impl_.utf8bitset_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.BloomFilter.utf8bitset)
}

// -------------------------------------------------------------------

// BloomFilterIndex

// repeated .orc.proto.BloomFilter bloom_filter = 1;
inline int BloomFilterIndex::_internal_bloom_filter_size() const {
  return _internal_bloom_filter().size();
}
inline int BloomFilterIndex::bloom_filter_size() const {
  return _internal_bloom_filter_size();
}
inline void BloomFilterIndex::clear_bloom_filter() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bloom_filter_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::BloomFilter& BloomFilterIndex::bloom_filter(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.BloomFilterIndex.bloom_filter)
  return _internal_bloom_filter().Get(index);
}
inline ::orc::proto::BloomFilter* PROTOBUF_NONNULL BloomFilterIndex::mutable_bloom_filter(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.BloomFilterIndex.bloom_filter)
  return _internal_mutable_bloom_filter()->Mutable(index);
}
inline ::orc::proto::BloomFilter* PROTOBUF_NONNULL BloomFilterIndex::add_bloom_filter()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::BloomFilter* _add =
      _internal_mutable_bloom_filter()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.BloomFilterIndex.bloom_filter)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::BloomFilter>& BloomFilterIndex::bloom_filter() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.BloomFilterIndex.bloom_filter)
  return _internal_bloom_filter();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::BloomFilter>* PROTOBUF_NONNULL
BloomFilterIndex::mutable_bloom_filter() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.BloomFilterIndex.bloom_filter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_bloom_filter();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::BloomFilter>&
BloomFilterIndex::_internal_bloom_filter() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bloom_filter_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::BloomFilter>* PROTOBUF_NONNULL
BloomFilterIndex::_internal_mutable_bloom_filter() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.bloom_filter_;
}

// -------------------------------------------------------------------

// Stream

// optional .orc.proto.Stream.Kind kind = 1;
inline bool Stream::has_kind() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void Stream::clear_kind() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.kind_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::orc::proto::Stream_Kind Stream::kind() const {
  // @@protoc_insertion_point(field_get:orc.proto.Stream.kind)
  return _internal_kind();
}
inline void Stream::set_kind(::orc::proto::Stream_Kind value) {
  _internal_set_kind(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:orc.proto.Stream.kind)
}
inline ::orc::proto::Stream_Kind Stream::_internal_kind() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::orc::proto::Stream_Kind>(_impl_.kind_);
}
inline void Stream::_internal_set_kind(::orc::proto::Stream_Kind value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::orc::proto::Stream_Kind_internal_data_));
                                          _impl_.kind_ = value;
}

// optional uint32 column = 2;
inline bool Stream::has_column() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void Stream::clear_column() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.column_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t Stream::column() const {
  // @@protoc_insertion_point(field_get:orc.proto.Stream.column)
  return _internal_column();
}
inline void Stream::set_column(::uint32_t value) {
  _internal_set_column(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:orc.proto.Stream.column)
}
inline ::uint32_t Stream::_internal_column() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.column_;
}
inline void Stream::_internal_set_column(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.column_ = value;
}

// optional uint64 length = 3;
inline bool Stream::has_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void Stream::clear_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t Stream::length() const {
  // @@protoc_insertion_point(field_get:orc.proto.Stream.length)
  return _internal_length();
}
inline void Stream::set_length(::uint64_t value) {
  _internal_set_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.Stream.length)
}
inline ::uint64_t Stream::_internal_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.length_;
}
inline void Stream::_internal_set_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.length_ = value;
}

// -------------------------------------------------------------------

// ColumnEncoding

// optional .orc.proto.ColumnEncoding.Kind kind = 1;
inline bool ColumnEncoding::has_kind() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ColumnEncoding::clear_kind() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.kind_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::orc::proto::ColumnEncoding_Kind ColumnEncoding::kind() const {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnEncoding.kind)
  return _internal_kind();
}
inline void ColumnEncoding::set_kind(::orc::proto::ColumnEncoding_Kind value) {
  _internal_set_kind(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:orc.proto.ColumnEncoding.kind)
}
inline ::orc::proto::ColumnEncoding_Kind ColumnEncoding::_internal_kind() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::orc::proto::ColumnEncoding_Kind>(_impl_.kind_);
}
inline void ColumnEncoding::_internal_set_kind(::orc::proto::ColumnEncoding_Kind value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::orc::proto::ColumnEncoding_Kind_internal_data_));
                                          _impl_.kind_ = value;
}

// optional uint32 dictionary_size = 2;
inline bool ColumnEncoding::has_dictionary_size() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ColumnEncoding::clear_dictionary_size() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dictionary_size_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t ColumnEncoding::dictionary_size() const {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnEncoding.dictionary_size)
  return _internal_dictionary_size();
}
inline void ColumnEncoding::set_dictionary_size(::uint32_t value) {
  _internal_set_dictionary_size(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:orc.proto.ColumnEncoding.dictionary_size)
}
inline ::uint32_t ColumnEncoding::_internal_dictionary_size() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.dictionary_size_;
}
inline void ColumnEncoding::_internal_set_dictionary_size(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dictionary_size_ = value;
}

// optional uint32 bloom_encoding = 3;
inline bool ColumnEncoding::has_bloom_encoding() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void ColumnEncoding::clear_bloom_encoding() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bloom_encoding_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint32_t ColumnEncoding::bloom_encoding() const {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnEncoding.bloom_encoding)
  return _internal_bloom_encoding();
}
inline void ColumnEncoding::set_bloom_encoding(::uint32_t value) {
  _internal_set_bloom_encoding(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.ColumnEncoding.bloom_encoding)
}
inline ::uint32_t ColumnEncoding::_internal_bloom_encoding() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bloom_encoding_;
}
inline void ColumnEncoding::_internal_set_bloom_encoding(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bloom_encoding_ = value;
}

// -------------------------------------------------------------------

// StripeEncryptionVariant

// repeated .orc.proto.Stream streams = 1;
inline int StripeEncryptionVariant::_internal_streams_size() const {
  return _internal_streams().size();
}
inline int StripeEncryptionVariant::streams_size() const {
  return _internal_streams_size();
}
inline void StripeEncryptionVariant::clear_streams() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.streams_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::Stream& StripeEncryptionVariant::streams(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StripeEncryptionVariant.streams)
  return _internal_streams().Get(index);
}
inline ::orc::proto::Stream* PROTOBUF_NONNULL StripeEncryptionVariant::mutable_streams(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.StripeEncryptionVariant.streams)
  return _internal_mutable_streams()->Mutable(index);
}
inline ::orc::proto::Stream* PROTOBUF_NONNULL StripeEncryptionVariant::add_streams()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::Stream* _add =
      _internal_mutable_streams()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.StripeEncryptionVariant.streams)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>& StripeEncryptionVariant::streams() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.StripeEncryptionVariant.streams)
  return _internal_streams();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL
StripeEncryptionVariant::mutable_streams() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.StripeEncryptionVariant.streams)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_streams();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>&
StripeEncryptionVariant::_internal_streams() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.streams_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL
StripeEncryptionVariant::_internal_mutable_streams() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.streams_;
}

// repeated .orc.proto.ColumnEncoding encoding = 2;
inline int StripeEncryptionVariant::_internal_encoding_size() const {
  return _internal_encoding().size();
}
inline int StripeEncryptionVariant::encoding_size() const {
  return _internal_encoding_size();
}
inline void StripeEncryptionVariant::clear_encoding() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encoding_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::orc::proto::ColumnEncoding& StripeEncryptionVariant::encoding(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StripeEncryptionVariant.encoding)
  return _internal_encoding().Get(index);
}
inline ::orc::proto::ColumnEncoding* PROTOBUF_NONNULL StripeEncryptionVariant::mutable_encoding(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.StripeEncryptionVariant.encoding)
  return _internal_mutable_encoding()->Mutable(index);
}
inline ::orc::proto::ColumnEncoding* PROTOBUF_NONNULL StripeEncryptionVariant::add_encoding()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::ColumnEncoding* _add =
      _internal_mutable_encoding()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:orc.proto.StripeEncryptionVariant.encoding)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>& StripeEncryptionVariant::encoding() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.StripeEncryptionVariant.encoding)
  return _internal_encoding();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>* PROTOBUF_NONNULL
StripeEncryptionVariant::mutable_encoding() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.StripeEncryptionVariant.encoding)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_encoding();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>&
StripeEncryptionVariant::_internal_encoding() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.encoding_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>* PROTOBUF_NONNULL
StripeEncryptionVariant::_internal_mutable_encoding() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.encoding_;
}

// -------------------------------------------------------------------

// StripeFooter

// repeated .orc.proto.Stream streams = 1;
inline int StripeFooter::_internal_streams_size() const {
  return _internal_streams().size();
}
inline int StripeFooter::streams_size() const {
  return _internal_streams_size();
}
inline void StripeFooter::clear_streams() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.streams_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::Stream& StripeFooter::streams(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StripeFooter.streams)
  return _internal_streams().Get(index);
}
inline ::orc::proto::Stream* PROTOBUF_NONNULL StripeFooter::mutable_streams(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.StripeFooter.streams)
  return _internal_mutable_streams()->Mutable(index);
}
inline ::orc::proto::Stream* PROTOBUF_NONNULL StripeFooter::add_streams()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::Stream* _add =
      _internal_mutable_streams()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.StripeFooter.streams)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>& StripeFooter::streams() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.StripeFooter.streams)
  return _internal_streams();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL
StripeFooter::mutable_streams() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.StripeFooter.streams)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_streams();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>&
StripeFooter::_internal_streams() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.streams_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL
StripeFooter::_internal_mutable_streams() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.streams_;
}

// repeated .orc.proto.ColumnEncoding columns = 2;
inline int StripeFooter::_internal_columns_size() const {
  return _internal_columns().size();
}
inline int StripeFooter::columns_size() const {
  return _internal_columns_size();
}
inline void StripeFooter::clear_columns() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.columns_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::orc::proto::ColumnEncoding& StripeFooter::columns(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StripeFooter.columns)
  return _internal_columns().Get(index);
}
inline ::orc::proto::ColumnEncoding* PROTOBUF_NONNULL StripeFooter::mutable_columns(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.StripeFooter.columns)
  return _internal_mutable_columns()->Mutable(index);
}
inline ::orc::proto::ColumnEncoding* PROTOBUF_NONNULL StripeFooter::add_columns()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::ColumnEncoding* _add =
      _internal_mutable_columns()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:orc.proto.StripeFooter.columns)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>& StripeFooter::columns() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.StripeFooter.columns)
  return _internal_columns();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>* PROTOBUF_NONNULL
StripeFooter::mutable_columns() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.StripeFooter.columns)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_columns();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>&
StripeFooter::_internal_columns() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.columns_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnEncoding>* PROTOBUF_NONNULL
StripeFooter::_internal_mutable_columns() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.columns_;
}

// optional string writer_timezone = 3;
inline bool StripeFooter::has_writer_timezone() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void StripeFooter::clear_writer_timezone() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.writer_timezone_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& StripeFooter::writer_timezone() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StripeFooter.writer_timezone)
  return _internal_writer_timezone();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void StripeFooter::set_writer_timezone(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.writer_timezone_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.StripeFooter.writer_timezone)
}
inline ::std::string* PROTOBUF_NONNULL StripeFooter::mutable_writer_timezone()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_writer_timezone();
  // @@protoc_insertion_point(field_mutable:orc.proto.StripeFooter.writer_timezone)
  return _s;
}
inline const ::std::string& StripeFooter::_internal_writer_timezone() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.writer_timezone_.Get();
}
inline void StripeFooter::_internal_set_writer_timezone(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.writer_timezone_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL StripeFooter::_internal_mutable_writer_timezone() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.writer_timezone_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE StripeFooter::release_writer_timezone() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.StripeFooter.writer_timezone)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.writer_timezone_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.writer_timezone_.Set("", GetArena());
  }
  return released;
}
inline void StripeFooter::set_allocated_writer_timezone(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.writer_timezone_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.writer_timezone_.IsDefault()) {
    _impl_.writer_timezone_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.StripeFooter.writer_timezone)
}

// repeated .orc.proto.StripeEncryptionVariant encryption = 4;
inline int StripeFooter::_internal_encryption_size() const {
  return _internal_encryption().size();
}
inline int StripeFooter::encryption_size() const {
  return _internal_encryption_size();
}
inline void StripeFooter::clear_encryption() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encryption_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::orc::proto::StripeEncryptionVariant& StripeFooter::encryption(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StripeFooter.encryption)
  return _internal_encryption().Get(index);
}
inline ::orc::proto::StripeEncryptionVariant* PROTOBUF_NONNULL StripeFooter::mutable_encryption(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.StripeFooter.encryption)
  return _internal_mutable_encryption()->Mutable(index);
}
inline ::orc::proto::StripeEncryptionVariant* PROTOBUF_NONNULL StripeFooter::add_encryption()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::StripeEncryptionVariant* _add =
      _internal_mutable_encryption()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:orc.proto.StripeFooter.encryption)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeEncryptionVariant>& StripeFooter::encryption() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.StripeFooter.encryption)
  return _internal_encryption();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::StripeEncryptionVariant>* PROTOBUF_NONNULL
StripeFooter::mutable_encryption() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.StripeFooter.encryption)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_encryption();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeEncryptionVariant>&
StripeFooter::_internal_encryption() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.encryption_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::StripeEncryptionVariant>* PROTOBUF_NONNULL
StripeFooter::_internal_mutable_encryption() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.encryption_;
}

// -------------------------------------------------------------------

// StringPair

// optional string key = 1;
inline bool StringPair::has_key() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void StringPair::clear_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& StringPair::key() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StringPair.key)
  return _internal_key();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void StringPair::set_key(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.key_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.StringPair.key)
}
inline ::std::string* PROTOBUF_NONNULL StringPair::mutable_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_key();
  // @@protoc_insertion_point(field_mutable:orc.proto.StringPair.key)
  return _s;
}
inline const ::std::string& StringPair::_internal_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.key_.Get();
}
inline void StringPair::_internal_set_key(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL StringPair::_internal_mutable_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.key_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE StringPair::release_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.StringPair.key)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.key_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.key_.Set("", GetArena());
  }
  return released;
}
inline void StringPair::set_allocated_key(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.key_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.key_.IsDefault()) {
    _impl_.key_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.StringPair.key)
}

// optional string value = 2;
inline bool StringPair::has_value() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void StringPair::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& StringPair::value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StringPair.value)
  return _internal_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void StringPair::set_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.value_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.StringPair.value)
}
inline ::std::string* PROTOBUF_NONNULL StringPair::mutable_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:orc.proto.StringPair.value)
  return _s;
}
inline const ::std::string& StringPair::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_.Get();
}
inline void StringPair::_internal_set_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL StringPair::_internal_mutable_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE StringPair::release_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.StringPair.value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.value_.Set("", GetArena());
  }
  return released;
}
inline void StringPair::set_allocated_value(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.value_.IsDefault()) {
    _impl_.value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.StringPair.value)
}

// -------------------------------------------------------------------

// Type

// optional .orc.proto.Type.Kind kind = 1;
inline bool Type::has_kind() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void Type::clear_kind() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.kind_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::orc::proto::Type_Kind Type::kind() const {
  // @@protoc_insertion_point(field_get:orc.proto.Type.kind)
  return _internal_kind();
}
inline void Type::set_kind(::orc::proto::Type_Kind value) {
  _internal_set_kind(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:orc.proto.Type.kind)
}
inline ::orc::proto::Type_Kind Type::_internal_kind() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::orc::proto::Type_Kind>(_impl_.kind_);
}
inline void Type::_internal_set_kind(::orc::proto::Type_Kind value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::orc::proto::Type_Kind_internal_data_));
                                          _impl_.kind_ = value;
}

// repeated uint32 subtypes = 2 [packed = true];
inline int Type::_internal_subtypes_size() const {
  return _internal_subtypes().size();
}
inline int Type::subtypes_size() const {
  return _internal_subtypes_size();
}
inline void Type::clear_subtypes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subtypes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t Type::subtypes(int index) const {
  // @@protoc_insertion_point(field_get:orc.proto.Type.subtypes)
  return _internal_subtypes().Get(index);
}
inline void Type::set_subtypes(int index, ::uint32_t value) {
  _internal_mutable_subtypes()->Set(index, value);
  // @@protoc_insertion_point(field_set:orc.proto.Type.subtypes)
}
inline void Type::add_subtypes(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_subtypes()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.Type.subtypes)
}
inline const ::google::protobuf::RepeatedField<::uint32_t>& Type::subtypes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Type.subtypes)
  return _internal_subtypes();
}
inline ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL Type::mutable_subtypes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Type.subtypes)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_subtypes();
}
inline const ::google::protobuf::RepeatedField<::uint32_t>&
Type::_internal_subtypes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subtypes_;
}
inline ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL
Type::_internal_mutable_subtypes() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.subtypes_;
}

// repeated string field_names = 3;
inline int Type::_internal_field_names_size() const {
  return _internal_field_names().size();
}
inline int Type::field_names_size() const {
  return _internal_field_names_size();
}
inline void Type::clear_field_names() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.field_names_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::std::string* PROTOBUF_NONNULL Type::add_field_names()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_field_names()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add_mutable:orc.proto.Type.field_names)
  return _s;
}
inline const ::std::string& Type::field_names(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Type.field_names)
  return _internal_field_names().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL Type::mutable_field_names(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.Type.field_names)
  return _internal_mutable_field_names()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void Type::set_field_names(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_field_names()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:orc.proto.Type.field_names)
}
template <typename Arg_, typename... Args_>
inline void Type::add_field_names(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_field_names(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:orc.proto.Type.field_names)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& Type::field_names()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Type.field_names)
  return _internal_field_names();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Type::mutable_field_names() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Type.field_names)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_field_names();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
Type::_internal_field_names() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.field_names_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Type::_internal_mutable_field_names() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.field_names_;
}

// optional uint32 maximum_length = 4;
inline bool Type::has_maximum_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void Type::clear_maximum_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_length_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint32_t Type::maximum_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.Type.maximum_length)
  return _internal_maximum_length();
}
inline void Type::set_maximum_length(::uint32_t value) {
  _internal_set_maximum_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:orc.proto.Type.maximum_length)
}
inline ::uint32_t Type::_internal_maximum_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.maximum_length_;
}
inline void Type::_internal_set_maximum_length(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.maximum_length_ = value;
}

// optional uint32 precision = 5;
inline bool Type::has_precision() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void Type::clear_precision() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.precision_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint32_t Type::precision() const {
  // @@protoc_insertion_point(field_get:orc.proto.Type.precision)
  return _internal_precision();
}
inline void Type::set_precision(::uint32_t value) {
  _internal_set_precision(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:orc.proto.Type.precision)
}
inline ::uint32_t Type::_internal_precision() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.precision_;
}
inline void Type::_internal_set_precision(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.precision_ = value;
}

// optional uint32 scale = 6;
inline bool Type::has_scale() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void Type::clear_scale() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.scale_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint32_t Type::scale() const {
  // @@protoc_insertion_point(field_get:orc.proto.Type.scale)
  return _internal_scale();
}
inline void Type::set_scale(::uint32_t value) {
  _internal_set_scale(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:orc.proto.Type.scale)
}
inline ::uint32_t Type::_internal_scale() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.scale_;
}
inline void Type::_internal_set_scale(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.scale_ = value;
}

// repeated .orc.proto.StringPair attributes = 7;
inline int Type::_internal_attributes_size() const {
  return _internal_attributes().size();
}
inline int Type::attributes_size() const {
  return _internal_attributes_size();
}
inline void Type::clear_attributes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.attributes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::orc::proto::StringPair& Type::attributes(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Type.attributes)
  return _internal_attributes().Get(index);
}
inline ::orc::proto::StringPair* PROTOBUF_NONNULL Type::mutable_attributes(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.Type.attributes)
  return _internal_mutable_attributes()->Mutable(index);
}
inline ::orc::proto::StringPair* PROTOBUF_NONNULL Type::add_attributes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::StringPair* _add =
      _internal_mutable_attributes()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:orc.proto.Type.attributes)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::StringPair>& Type::attributes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Type.attributes)
  return _internal_attributes();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::StringPair>* PROTOBUF_NONNULL
Type::mutable_attributes() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Type.attributes)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_attributes();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::StringPair>&
Type::_internal_attributes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.attributes_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::StringPair>* PROTOBUF_NONNULL
Type::_internal_mutable_attributes() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.attributes_;
}

// optional string crs = 8;
inline bool Type::has_crs() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void Type::clear_crs() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.crs_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& Type::crs() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Type.crs)
  return _internal_crs();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Type::set_crs(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.crs_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.Type.crs)
}
inline ::std::string* PROTOBUF_NONNULL Type::mutable_crs()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_crs();
  // @@protoc_insertion_point(field_mutable:orc.proto.Type.crs)
  return _s;
}
inline const ::std::string& Type::_internal_crs() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.crs_.Get();
}
inline void Type::_internal_set_crs(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.crs_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Type::_internal_mutable_crs() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.crs_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Type::release_crs() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.Type.crs)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.crs_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.crs_.Set("", GetArena());
  }
  return released;
}
inline void Type::set_allocated_crs(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.crs_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.crs_.IsDefault()) {
    _impl_.crs_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.Type.crs)
}

// optional .orc.proto.Type.EdgeInterpolationAlgorithm algorithm = 9;
inline bool Type::has_algorithm() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  return value;
}
inline void Type::clear_algorithm() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.algorithm_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::orc::proto::Type_EdgeInterpolationAlgorithm Type::algorithm() const {
  // @@protoc_insertion_point(field_get:orc.proto.Type.algorithm)
  return _internal_algorithm();
}
inline void Type::set_algorithm(::orc::proto::Type_EdgeInterpolationAlgorithm value) {
  _internal_set_algorithm(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:orc.proto.Type.algorithm)
}
inline ::orc::proto::Type_EdgeInterpolationAlgorithm Type::_internal_algorithm() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::orc::proto::Type_EdgeInterpolationAlgorithm>(_impl_.algorithm_);
}
inline void Type::_internal_set_algorithm(::orc::proto::Type_EdgeInterpolationAlgorithm value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::orc::proto::Type_EdgeInterpolationAlgorithm_internal_data_));
                                          _impl_.algorithm_ = value;
}

// -------------------------------------------------------------------

// StripeInformation

// optional uint64 offset = 1;
inline bool StripeInformation::has_offset() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void StripeInformation::clear_offset() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.offset_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint64_t StripeInformation::offset() const {
  // @@protoc_insertion_point(field_get:orc.proto.StripeInformation.offset)
  return _internal_offset();
}
inline void StripeInformation::set_offset(::uint64_t value) {
  _internal_set_offset(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:orc.proto.StripeInformation.offset)
}
inline ::uint64_t StripeInformation::_internal_offset() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.offset_;
}
inline void StripeInformation::_internal_set_offset(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.offset_ = value;
}

// optional uint64 index_length = 2;
inline bool StripeInformation::has_index_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void StripeInformation::clear_index_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.index_length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t StripeInformation::index_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.StripeInformation.index_length)
  return _internal_index_length();
}
inline void StripeInformation::set_index_length(::uint64_t value) {
  _internal_set_index_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.StripeInformation.index_length)
}
inline ::uint64_t StripeInformation::_internal_index_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.index_length_;
}
inline void StripeInformation::_internal_set_index_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.index_length_ = value;
}

// optional uint64 data_length = 3;
inline bool StripeInformation::has_data_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void StripeInformation::clear_data_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.data_length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint64_t StripeInformation::data_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.StripeInformation.data_length)
  return _internal_data_length();
}
inline void StripeInformation::set_data_length(::uint64_t value) {
  _internal_set_data_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:orc.proto.StripeInformation.data_length)
}
inline ::uint64_t StripeInformation::_internal_data_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.data_length_;
}
inline void StripeInformation::_internal_set_data_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.data_length_ = value;
}

// optional uint64 footer_length = 4;
inline bool StripeInformation::has_footer_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void StripeInformation::clear_footer_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.footer_length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint64_t StripeInformation::footer_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.StripeInformation.footer_length)
  return _internal_footer_length();
}
inline void StripeInformation::set_footer_length(::uint64_t value) {
  _internal_set_footer_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:orc.proto.StripeInformation.footer_length)
}
inline ::uint64_t StripeInformation::_internal_footer_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.footer_length_;
}
inline void StripeInformation::_internal_set_footer_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.footer_length_ = value;
}

// optional uint64 number_of_rows = 5;
inline bool StripeInformation::has_number_of_rows() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void StripeInformation::clear_number_of_rows() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.number_of_rows_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint64_t StripeInformation::number_of_rows() const {
  // @@protoc_insertion_point(field_get:orc.proto.StripeInformation.number_of_rows)
  return _internal_number_of_rows();
}
inline void StripeInformation::set_number_of_rows(::uint64_t value) {
  _internal_set_number_of_rows(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:orc.proto.StripeInformation.number_of_rows)
}
inline ::uint64_t StripeInformation::_internal_number_of_rows() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.number_of_rows_;
}
inline void StripeInformation::_internal_set_number_of_rows(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.number_of_rows_ = value;
}

// optional uint64 encrypt_stripe_id = 6;
inline bool StripeInformation::has_encrypt_stripe_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void StripeInformation::clear_encrypt_stripe_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encrypt_stripe_id_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint64_t StripeInformation::encrypt_stripe_id() const {
  // @@protoc_insertion_point(field_get:orc.proto.StripeInformation.encrypt_stripe_id)
  return _internal_encrypt_stripe_id();
}
inline void StripeInformation::set_encrypt_stripe_id(::uint64_t value) {
  _internal_set_encrypt_stripe_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:orc.proto.StripeInformation.encrypt_stripe_id)
}
inline ::uint64_t StripeInformation::_internal_encrypt_stripe_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.encrypt_stripe_id_;
}
inline void StripeInformation::_internal_set_encrypt_stripe_id(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encrypt_stripe_id_ = value;
}

// repeated bytes encrypted_local_keys = 7;
inline int StripeInformation::_internal_encrypted_local_keys_size() const {
  return _internal_encrypted_local_keys().size();
}
inline int StripeInformation::encrypted_local_keys_size() const {
  return _internal_encrypted_local_keys_size();
}
inline void StripeInformation::clear_encrypted_local_keys() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encrypted_local_keys_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL StripeInformation::add_encrypted_local_keys()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_encrypted_local_keys()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:orc.proto.StripeInformation.encrypted_local_keys)
  return _s;
}
inline const ::std::string& StripeInformation::encrypted_local_keys(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StripeInformation.encrypted_local_keys)
  return _internal_encrypted_local_keys().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StripeInformation::mutable_encrypted_local_keys(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.StripeInformation.encrypted_local_keys)
  return _internal_mutable_encrypted_local_keys()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StripeInformation::set_encrypted_local_keys(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_encrypted_local_keys()->Mutable(index),
      ::std::forward<Arg_>(value), args... , ::google::protobuf::internal::BytesTag{});
  // @@protoc_insertion_point(field_set:orc.proto.StripeInformation.encrypted_local_keys)
}
template <typename Arg_, typename... Args_>
inline void StripeInformation::add_encrypted_local_keys(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_encrypted_local_keys(), ::std::forward<Arg_>(value),
      args... , ::google::protobuf::internal::BytesTag{});
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.StripeInformation.encrypted_local_keys)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StripeInformation::encrypted_local_keys()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.StripeInformation.encrypted_local_keys)
  return _internal_encrypted_local_keys();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StripeInformation::mutable_encrypted_local_keys() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.StripeInformation.encrypted_local_keys)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_encrypted_local_keys();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StripeInformation::_internal_encrypted_local_keys() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.encrypted_local_keys_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StripeInformation::_internal_mutable_encrypted_local_keys() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.encrypted_local_keys_;
}

// -------------------------------------------------------------------

// UserMetadataItem

// optional string name = 1;
inline bool UserMetadataItem::has_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void UserMetadataItem::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& UserMetadataItem::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.UserMetadataItem.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void UserMetadataItem::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.UserMetadataItem.name)
}
inline ::std::string* PROTOBUF_NONNULL UserMetadataItem::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:orc.proto.UserMetadataItem.name)
  return _s;
}
inline const ::std::string& UserMetadataItem::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void UserMetadataItem::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL UserMetadataItem::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE UserMetadataItem::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.UserMetadataItem.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void UserMetadataItem::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.UserMetadataItem.name)
}

// optional bytes value = 2;
inline bool UserMetadataItem::has_value() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void UserMetadataItem::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& UserMetadataItem::value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.UserMetadataItem.value)
  return _internal_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void UserMetadataItem::set_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.value_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.UserMetadataItem.value)
}
inline ::std::string* PROTOBUF_NONNULL UserMetadataItem::mutable_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:orc.proto.UserMetadataItem.value)
  return _s;
}
inline const ::std::string& UserMetadataItem::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_.Get();
}
inline void UserMetadataItem::_internal_set_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL UserMetadataItem::_internal_mutable_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE UserMetadataItem::release_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.UserMetadataItem.value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.value_.Set("", GetArena());
  }
  return released;
}
inline void UserMetadataItem::set_allocated_value(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.value_.IsDefault()) {
    _impl_.value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.UserMetadataItem.value)
}

// -------------------------------------------------------------------

// StripeStatistics

// repeated .orc.proto.ColumnStatistics col_stats = 1;
inline int StripeStatistics::_internal_col_stats_size() const {
  return _internal_col_stats().size();
}
inline int StripeStatistics::col_stats_size() const {
  return _internal_col_stats_size();
}
inline void StripeStatistics::clear_col_stats() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.col_stats_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::ColumnStatistics& StripeStatistics::col_stats(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.StripeStatistics.col_stats)
  return _internal_col_stats().Get(index);
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL StripeStatistics::mutable_col_stats(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.StripeStatistics.col_stats)
  return _internal_mutable_col_stats()->Mutable(index);
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL StripeStatistics::add_col_stats()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::ColumnStatistics* _add =
      _internal_mutable_col_stats()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.StripeStatistics.col_stats)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>& StripeStatistics::col_stats() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.StripeStatistics.col_stats)
  return _internal_col_stats();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
StripeStatistics::mutable_col_stats() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.StripeStatistics.col_stats)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_col_stats();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>&
StripeStatistics::_internal_col_stats() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.col_stats_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
StripeStatistics::_internal_mutable_col_stats() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.col_stats_;
}

// -------------------------------------------------------------------

// Metadata

// repeated .orc.proto.StripeStatistics stripe_stats = 1;
inline int Metadata::_internal_stripe_stats_size() const {
  return _internal_stripe_stats().size();
}
inline int Metadata::stripe_stats_size() const {
  return _internal_stripe_stats_size();
}
inline void Metadata::clear_stripe_stats() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stripe_stats_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::StripeStatistics& Metadata::stripe_stats(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Metadata.stripe_stats)
  return _internal_stripe_stats().Get(index);
}
inline ::orc::proto::StripeStatistics* PROTOBUF_NONNULL Metadata::mutable_stripe_stats(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.Metadata.stripe_stats)
  return _internal_mutable_stripe_stats()->Mutable(index);
}
inline ::orc::proto::StripeStatistics* PROTOBUF_NONNULL Metadata::add_stripe_stats()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::StripeStatistics* _add =
      _internal_mutable_stripe_stats()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.Metadata.stripe_stats)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeStatistics>& Metadata::stripe_stats() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Metadata.stripe_stats)
  return _internal_stripe_stats();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::StripeStatistics>* PROTOBUF_NONNULL
Metadata::mutable_stripe_stats() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Metadata.stripe_stats)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_stripe_stats();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeStatistics>&
Metadata::_internal_stripe_stats() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stripe_stats_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::StripeStatistics>* PROTOBUF_NONNULL
Metadata::_internal_mutable_stripe_stats() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.stripe_stats_;
}

// -------------------------------------------------------------------

// ColumnarStripeStatistics

// repeated .orc.proto.ColumnStatistics col_stats = 1;
inline int ColumnarStripeStatistics::_internal_col_stats_size() const {
  return _internal_col_stats().size();
}
inline int ColumnarStripeStatistics::col_stats_size() const {
  return _internal_col_stats_size();
}
inline void ColumnarStripeStatistics::clear_col_stats() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.col_stats_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::ColumnStatistics& ColumnarStripeStatistics::col_stats(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.ColumnarStripeStatistics.col_stats)
  return _internal_col_stats().Get(index);
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL ColumnarStripeStatistics::mutable_col_stats(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.ColumnarStripeStatistics.col_stats)
  return _internal_mutable_col_stats()->Mutable(index);
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL ColumnarStripeStatistics::add_col_stats()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::ColumnStatistics* _add =
      _internal_mutable_col_stats()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.ColumnarStripeStatistics.col_stats)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>& ColumnarStripeStatistics::col_stats() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.ColumnarStripeStatistics.col_stats)
  return _internal_col_stats();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
ColumnarStripeStatistics::mutable_col_stats() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.ColumnarStripeStatistics.col_stats)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_col_stats();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>&
ColumnarStripeStatistics::_internal_col_stats() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.col_stats_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
ColumnarStripeStatistics::_internal_mutable_col_stats() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.col_stats_;
}

// -------------------------------------------------------------------

// FileStatistics

// repeated .orc.proto.ColumnStatistics column = 1;
inline int FileStatistics::_internal_column_size() const {
  return _internal_column().size();
}
inline int FileStatistics::column_size() const {
  return _internal_column_size();
}
inline void FileStatistics::clear_column() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.column_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::ColumnStatistics& FileStatistics::column(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.FileStatistics.column)
  return _internal_column().Get(index);
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL FileStatistics::mutable_column(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.FileStatistics.column)
  return _internal_mutable_column()->Mutable(index);
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL FileStatistics::add_column()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::ColumnStatistics* _add =
      _internal_mutable_column()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.FileStatistics.column)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>& FileStatistics::column() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.FileStatistics.column)
  return _internal_column();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
FileStatistics::mutable_column() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.FileStatistics.column)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_column();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>&
FileStatistics::_internal_column() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.column_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
FileStatistics::_internal_mutable_column() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.column_;
}

// -------------------------------------------------------------------

// DataMask

// optional string name = 1;
inline bool DataMask::has_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void DataMask::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& DataMask::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.DataMask.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DataMask::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.DataMask.name)
}
inline ::std::string* PROTOBUF_NONNULL DataMask::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:orc.proto.DataMask.name)
  return _s;
}
inline const ::std::string& DataMask::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void DataMask::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DataMask::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DataMask::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.DataMask.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void DataMask::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.DataMask.name)
}

// repeated string mask_parameters = 2;
inline int DataMask::_internal_mask_parameters_size() const {
  return _internal_mask_parameters().size();
}
inline int DataMask::mask_parameters_size() const {
  return _internal_mask_parameters_size();
}
inline void DataMask::clear_mask_parameters() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mask_parameters_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL DataMask::add_mask_parameters()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_mask_parameters()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:orc.proto.DataMask.mask_parameters)
  return _s;
}
inline const ::std::string& DataMask::mask_parameters(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.DataMask.mask_parameters)
  return _internal_mask_parameters().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL DataMask::mutable_mask_parameters(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.DataMask.mask_parameters)
  return _internal_mutable_mask_parameters()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void DataMask::set_mask_parameters(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_mask_parameters()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:orc.proto.DataMask.mask_parameters)
}
template <typename Arg_, typename... Args_>
inline void DataMask::add_mask_parameters(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_mask_parameters(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.DataMask.mask_parameters)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& DataMask::mask_parameters()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.DataMask.mask_parameters)
  return _internal_mask_parameters();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
DataMask::mutable_mask_parameters() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.DataMask.mask_parameters)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_mask_parameters();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
DataMask::_internal_mask_parameters() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mask_parameters_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
DataMask::_internal_mutable_mask_parameters() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.mask_parameters_;
}

// repeated uint32 columns = 3 [packed = true];
inline int DataMask::_internal_columns_size() const {
  return _internal_columns().size();
}
inline int DataMask::columns_size() const {
  return _internal_columns_size();
}
inline void DataMask::clear_columns() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.columns_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t DataMask::columns(int index) const {
  // @@protoc_insertion_point(field_get:orc.proto.DataMask.columns)
  return _internal_columns().Get(index);
}
inline void DataMask::set_columns(int index, ::uint32_t value) {
  _internal_mutable_columns()->Set(index, value);
  // @@protoc_insertion_point(field_set:orc.proto.DataMask.columns)
}
inline void DataMask::add_columns(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_columns()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:orc.proto.DataMask.columns)
}
inline const ::google::protobuf::RepeatedField<::uint32_t>& DataMask::columns() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.DataMask.columns)
  return _internal_columns();
}
inline ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL DataMask::mutable_columns()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.DataMask.columns)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_columns();
}
inline const ::google::protobuf::RepeatedField<::uint32_t>&
DataMask::_internal_columns() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.columns_;
}
inline ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL
DataMask::_internal_mutable_columns() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.columns_;
}

// -------------------------------------------------------------------

// EncryptionKey

// optional string key_name = 1;
inline bool EncryptionKey::has_key_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void EncryptionKey::clear_key_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& EncryptionKey::key_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.EncryptionKey.key_name)
  return _internal_key_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void EncryptionKey::set_key_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.key_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.EncryptionKey.key_name)
}
inline ::std::string* PROTOBUF_NONNULL EncryptionKey::mutable_key_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_key_name();
  // @@protoc_insertion_point(field_mutable:orc.proto.EncryptionKey.key_name)
  return _s;
}
inline const ::std::string& EncryptionKey::_internal_key_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.key_name_.Get();
}
inline void EncryptionKey::_internal_set_key_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL EncryptionKey::_internal_mutable_key_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.key_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE EncryptionKey::release_key_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.EncryptionKey.key_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.key_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.key_name_.Set("", GetArena());
  }
  return released;
}
inline void EncryptionKey::set_allocated_key_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.key_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.key_name_.IsDefault()) {
    _impl_.key_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.EncryptionKey.key_name)
}

// optional uint32 key_version = 2;
inline bool EncryptionKey::has_key_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void EncryptionKey::clear_key_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_version_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t EncryptionKey::key_version() const {
  // @@protoc_insertion_point(field_get:orc.proto.EncryptionKey.key_version)
  return _internal_key_version();
}
inline void EncryptionKey::set_key_version(::uint32_t value) {
  _internal_set_key_version(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:orc.proto.EncryptionKey.key_version)
}
inline ::uint32_t EncryptionKey::_internal_key_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.key_version_;
}
inline void EncryptionKey::_internal_set_key_version(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_version_ = value;
}

// optional .orc.proto.EncryptionAlgorithm algorithm = 3;
inline bool EncryptionKey::has_algorithm() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void EncryptionKey::clear_algorithm() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.algorithm_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::orc::proto::EncryptionAlgorithm EncryptionKey::algorithm() const {
  // @@protoc_insertion_point(field_get:orc.proto.EncryptionKey.algorithm)
  return _internal_algorithm();
}
inline void EncryptionKey::set_algorithm(::orc::proto::EncryptionAlgorithm value) {
  _internal_set_algorithm(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.EncryptionKey.algorithm)
}
inline ::orc::proto::EncryptionAlgorithm EncryptionKey::_internal_algorithm() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::orc::proto::EncryptionAlgorithm>(_impl_.algorithm_);
}
inline void EncryptionKey::_internal_set_algorithm(::orc::proto::EncryptionAlgorithm value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::orc::proto::EncryptionAlgorithm_internal_data_));
                                          _impl_.algorithm_ = value;
}

// -------------------------------------------------------------------

// EncryptionVariant

// optional uint32 root = 1;
inline bool EncryptionVariant::has_root() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void EncryptionVariant::clear_root() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.root_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t EncryptionVariant::root() const {
  // @@protoc_insertion_point(field_get:orc.proto.EncryptionVariant.root)
  return _internal_root();
}
inline void EncryptionVariant::set_root(::uint32_t value) {
  _internal_set_root(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:orc.proto.EncryptionVariant.root)
}
inline ::uint32_t EncryptionVariant::_internal_root() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.root_;
}
inline void EncryptionVariant::_internal_set_root(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.root_ = value;
}

// optional uint32 key = 2;
inline bool EncryptionVariant::has_key() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void EncryptionVariant::clear_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t EncryptionVariant::key() const {
  // @@protoc_insertion_point(field_get:orc.proto.EncryptionVariant.key)
  return _internal_key();
}
inline void EncryptionVariant::set_key(::uint32_t value) {
  _internal_set_key(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:orc.proto.EncryptionVariant.key)
}
inline ::uint32_t EncryptionVariant::_internal_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.key_;
}
inline void EncryptionVariant::_internal_set_key(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_ = value;
}

// optional bytes encrypted_key = 3;
inline bool EncryptionVariant::has_encrypted_key() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void EncryptionVariant::clear_encrypted_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encrypted_key_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& EncryptionVariant::encrypted_key() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.EncryptionVariant.encrypted_key)
  return _internal_encrypted_key();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void EncryptionVariant::set_encrypted_key(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.encrypted_key_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.EncryptionVariant.encrypted_key)
}
inline ::std::string* PROTOBUF_NONNULL EncryptionVariant::mutable_encrypted_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_encrypted_key();
  // @@protoc_insertion_point(field_mutable:orc.proto.EncryptionVariant.encrypted_key)
  return _s;
}
inline const ::std::string& EncryptionVariant::_internal_encrypted_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.encrypted_key_.Get();
}
inline void EncryptionVariant::_internal_set_encrypted_key(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encrypted_key_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL EncryptionVariant::_internal_mutable_encrypted_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.encrypted_key_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE EncryptionVariant::release_encrypted_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.EncryptionVariant.encrypted_key)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.encrypted_key_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.encrypted_key_.Set("", GetArena());
  }
  return released;
}
inline void EncryptionVariant::set_allocated_encrypted_key(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.encrypted_key_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.encrypted_key_.IsDefault()) {
    _impl_.encrypted_key_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.EncryptionVariant.encrypted_key)
}

// repeated .orc.proto.Stream stripe_statistics = 4;
inline int EncryptionVariant::_internal_stripe_statistics_size() const {
  return _internal_stripe_statistics().size();
}
inline int EncryptionVariant::stripe_statistics_size() const {
  return _internal_stripe_statistics_size();
}
inline void EncryptionVariant::clear_stripe_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stripe_statistics_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::Stream& EncryptionVariant::stripe_statistics(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.EncryptionVariant.stripe_statistics)
  return _internal_stripe_statistics().Get(index);
}
inline ::orc::proto::Stream* PROTOBUF_NONNULL EncryptionVariant::mutable_stripe_statistics(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.EncryptionVariant.stripe_statistics)
  return _internal_mutable_stripe_statistics()->Mutable(index);
}
inline ::orc::proto::Stream* PROTOBUF_NONNULL EncryptionVariant::add_stripe_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::Stream* _add =
      _internal_mutable_stripe_statistics()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.EncryptionVariant.stripe_statistics)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>& EncryptionVariant::stripe_statistics() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.EncryptionVariant.stripe_statistics)
  return _internal_stripe_statistics();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL
EncryptionVariant::mutable_stripe_statistics() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.EncryptionVariant.stripe_statistics)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_stripe_statistics();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>&
EncryptionVariant::_internal_stripe_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stripe_statistics_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::Stream>* PROTOBUF_NONNULL
EncryptionVariant::_internal_mutable_stripe_statistics() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.stripe_statistics_;
}

// optional bytes file_statistics = 5;
inline bool EncryptionVariant::has_file_statistics() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void EncryptionVariant::clear_file_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_statistics_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& EncryptionVariant::file_statistics() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.EncryptionVariant.file_statistics)
  return _internal_file_statistics();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void EncryptionVariant::set_file_statistics(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.file_statistics_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.EncryptionVariant.file_statistics)
}
inline ::std::string* PROTOBUF_NONNULL EncryptionVariant::mutable_file_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_file_statistics();
  // @@protoc_insertion_point(field_mutable:orc.proto.EncryptionVariant.file_statistics)
  return _s;
}
inline const ::std::string& EncryptionVariant::_internal_file_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.file_statistics_.Get();
}
inline void EncryptionVariant::_internal_set_file_statistics(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_statistics_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL EncryptionVariant::_internal_mutable_file_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.file_statistics_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE EncryptionVariant::release_file_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.EncryptionVariant.file_statistics)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.file_statistics_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.file_statistics_.Set("", GetArena());
  }
  return released;
}
inline void EncryptionVariant::set_allocated_file_statistics(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.file_statistics_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.file_statistics_.IsDefault()) {
    _impl_.file_statistics_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.EncryptionVariant.file_statistics)
}

// -------------------------------------------------------------------

// Encryption

// repeated .orc.proto.DataMask mask = 1;
inline int Encryption::_internal_mask_size() const {
  return _internal_mask().size();
}
inline int Encryption::mask_size() const {
  return _internal_mask_size();
}
inline void Encryption::clear_mask() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mask_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::DataMask& Encryption::mask(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Encryption.mask)
  return _internal_mask().Get(index);
}
inline ::orc::proto::DataMask* PROTOBUF_NONNULL Encryption::mutable_mask(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.Encryption.mask)
  return _internal_mutable_mask()->Mutable(index);
}
inline ::orc::proto::DataMask* PROTOBUF_NONNULL Encryption::add_mask()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::DataMask* _add =
      _internal_mutable_mask()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.Encryption.mask)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::DataMask>& Encryption::mask() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Encryption.mask)
  return _internal_mask();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::DataMask>* PROTOBUF_NONNULL
Encryption::mutable_mask() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Encryption.mask)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_mask();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::DataMask>&
Encryption::_internal_mask() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mask_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::DataMask>* PROTOBUF_NONNULL
Encryption::_internal_mutable_mask() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.mask_;
}

// repeated .orc.proto.EncryptionKey key = 2;
inline int Encryption::_internal_key_size() const {
  return _internal_key().size();
}
inline int Encryption::key_size() const {
  return _internal_key_size();
}
inline void Encryption::clear_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::orc::proto::EncryptionKey& Encryption::key(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Encryption.key)
  return _internal_key().Get(index);
}
inline ::orc::proto::EncryptionKey* PROTOBUF_NONNULL Encryption::mutable_key(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.Encryption.key)
  return _internal_mutable_key()->Mutable(index);
}
inline ::orc::proto::EncryptionKey* PROTOBUF_NONNULL Encryption::add_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::EncryptionKey* _add =
      _internal_mutable_key()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:orc.proto.Encryption.key)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionKey>& Encryption::key() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Encryption.key)
  return _internal_key();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionKey>* PROTOBUF_NONNULL
Encryption::mutable_key() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Encryption.key)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_key();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionKey>&
Encryption::_internal_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.key_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionKey>* PROTOBUF_NONNULL
Encryption::_internal_mutable_key() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.key_;
}

// repeated .orc.proto.EncryptionVariant variants = 3;
inline int Encryption::_internal_variants_size() const {
  return _internal_variants().size();
}
inline int Encryption::variants_size() const {
  return _internal_variants_size();
}
inline void Encryption::clear_variants() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.variants_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::orc::proto::EncryptionVariant& Encryption::variants(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Encryption.variants)
  return _internal_variants().Get(index);
}
inline ::orc::proto::EncryptionVariant* PROTOBUF_NONNULL Encryption::mutable_variants(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.Encryption.variants)
  return _internal_mutable_variants()->Mutable(index);
}
inline ::orc::proto::EncryptionVariant* PROTOBUF_NONNULL Encryption::add_variants()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::EncryptionVariant* _add =
      _internal_mutable_variants()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:orc.proto.Encryption.variants)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionVariant>& Encryption::variants() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Encryption.variants)
  return _internal_variants();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionVariant>* PROTOBUF_NONNULL
Encryption::mutable_variants() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Encryption.variants)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_variants();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionVariant>&
Encryption::_internal_variants() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.variants_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::EncryptionVariant>* PROTOBUF_NONNULL
Encryption::_internal_mutable_variants() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.variants_;
}

// optional .orc.proto.KeyProviderKind key_provider = 4;
inline bool Encryption::has_key_provider() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void Encryption::clear_key_provider() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_provider_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::orc::proto::KeyProviderKind Encryption::key_provider() const {
  // @@protoc_insertion_point(field_get:orc.proto.Encryption.key_provider)
  return _internal_key_provider();
}
inline void Encryption::set_key_provider(::orc::proto::KeyProviderKind value) {
  _internal_set_key_provider(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:orc.proto.Encryption.key_provider)
}
inline ::orc::proto::KeyProviderKind Encryption::_internal_key_provider() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::orc::proto::KeyProviderKind>(_impl_.key_provider_);
}
inline void Encryption::_internal_set_key_provider(::orc::proto::KeyProviderKind value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::orc::proto::KeyProviderKind_internal_data_));
                                          _impl_.key_provider_ = value;
}

// -------------------------------------------------------------------

// Footer

// optional uint64 header_length = 1;
inline bool Footer::has_header_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void Footer::clear_header_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.header_length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint64_t Footer::header_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.header_length)
  return _internal_header_length();
}
inline void Footer::set_header_length(::uint64_t value) {
  _internal_set_header_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:orc.proto.Footer.header_length)
}
inline ::uint64_t Footer::_internal_header_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.header_length_;
}
inline void Footer::_internal_set_header_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.header_length_ = value;
}

// optional uint64 content_length = 2;
inline bool Footer::has_content_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void Footer::clear_content_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.content_length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint64_t Footer::content_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.content_length)
  return _internal_content_length();
}
inline void Footer::set_content_length(::uint64_t value) {
  _internal_set_content_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:orc.proto.Footer.content_length)
}
inline ::uint64_t Footer::_internal_content_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.content_length_;
}
inline void Footer::_internal_set_content_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.content_length_ = value;
}

// repeated .orc.proto.StripeInformation stripes = 3;
inline int Footer::_internal_stripes_size() const {
  return _internal_stripes().size();
}
inline int Footer::stripes_size() const {
  return _internal_stripes_size();
}
inline void Footer::clear_stripes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stripes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::StripeInformation& Footer::stripes(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.stripes)
  return _internal_stripes().Get(index);
}
inline ::orc::proto::StripeInformation* PROTOBUF_NONNULL Footer::mutable_stripes(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.Footer.stripes)
  return _internal_mutable_stripes()->Mutable(index);
}
inline ::orc::proto::StripeInformation* PROTOBUF_NONNULL Footer::add_stripes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::StripeInformation* _add =
      _internal_mutable_stripes()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.Footer.stripes)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeInformation>& Footer::stripes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Footer.stripes)
  return _internal_stripes();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::StripeInformation>* PROTOBUF_NONNULL
Footer::mutable_stripes() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Footer.stripes)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_stripes();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::StripeInformation>&
Footer::_internal_stripes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stripes_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::StripeInformation>* PROTOBUF_NONNULL
Footer::_internal_mutable_stripes() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.stripes_;
}

// repeated .orc.proto.Type types = 4;
inline int Footer::_internal_types_size() const {
  return _internal_types().size();
}
inline int Footer::types_size() const {
  return _internal_types_size();
}
inline void Footer::clear_types() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.types_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::orc::proto::Type& Footer::types(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.types)
  return _internal_types().Get(index);
}
inline ::orc::proto::Type* PROTOBUF_NONNULL Footer::mutable_types(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.Footer.types)
  return _internal_mutable_types()->Mutable(index);
}
inline ::orc::proto::Type* PROTOBUF_NONNULL Footer::add_types()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::Type* _add =
      _internal_mutable_types()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:orc.proto.Footer.types)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::Type>& Footer::types() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Footer.types)
  return _internal_types();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::Type>* PROTOBUF_NONNULL
Footer::mutable_types() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Footer.types)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_types();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::Type>&
Footer::_internal_types() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.types_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::Type>* PROTOBUF_NONNULL
Footer::_internal_mutable_types() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.types_;
}

// repeated .orc.proto.UserMetadataItem metadata = 5;
inline int Footer::_internal_metadata_size() const {
  return _internal_metadata().size();
}
inline int Footer::metadata_size() const {
  return _internal_metadata_size();
}
inline void Footer::clear_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.metadata_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::orc::proto::UserMetadataItem& Footer::metadata(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.metadata)
  return _internal_metadata().Get(index);
}
inline ::orc::proto::UserMetadataItem* PROTOBUF_NONNULL Footer::mutable_metadata(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.Footer.metadata)
  return _internal_mutable_metadata()->Mutable(index);
}
inline ::orc::proto::UserMetadataItem* PROTOBUF_NONNULL Footer::add_metadata()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::UserMetadataItem* _add =
      _internal_mutable_metadata()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:orc.proto.Footer.metadata)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::UserMetadataItem>& Footer::metadata() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Footer.metadata)
  return _internal_metadata();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::UserMetadataItem>* PROTOBUF_NONNULL
Footer::mutable_metadata() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Footer.metadata)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_metadata();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::UserMetadataItem>&
Footer::_internal_metadata() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.metadata_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::UserMetadataItem>* PROTOBUF_NONNULL
Footer::_internal_mutable_metadata() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.metadata_;
}

// optional uint64 number_of_rows = 6;
inline bool Footer::has_number_of_rows() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  return value;
}
inline void Footer::clear_number_of_rows() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.number_of_rows_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::uint64_t Footer::number_of_rows() const {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.number_of_rows)
  return _internal_number_of_rows();
}
inline void Footer::set_number_of_rows(::uint64_t value) {
  _internal_set_number_of_rows(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:orc.proto.Footer.number_of_rows)
}
inline ::uint64_t Footer::_internal_number_of_rows() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.number_of_rows_;
}
inline void Footer::_internal_set_number_of_rows(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.number_of_rows_ = value;
}

// repeated .orc.proto.ColumnStatistics statistics = 7;
inline int Footer::_internal_statistics_size() const {
  return _internal_statistics().size();
}
inline int Footer::statistics_size() const {
  return _internal_statistics_size();
}
inline void Footer::clear_statistics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.statistics_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::orc::proto::ColumnStatistics& Footer::statistics(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.statistics)
  return _internal_statistics().Get(index);
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL Footer::mutable_statistics(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:orc.proto.Footer.statistics)
  return _internal_mutable_statistics()->Mutable(index);
}
inline ::orc::proto::ColumnStatistics* PROTOBUF_NONNULL Footer::add_statistics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::orc::proto::ColumnStatistics* _add =
      _internal_mutable_statistics()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_add:orc.proto.Footer.statistics)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>& Footer::statistics() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.Footer.statistics)
  return _internal_statistics();
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
Footer::mutable_statistics() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.Footer.statistics)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_statistics();
}
inline const ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>&
Footer::_internal_statistics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.statistics_;
}
inline ::google::protobuf::RepeatedPtrField<::orc::proto::ColumnStatistics>* PROTOBUF_NONNULL
Footer::_internal_mutable_statistics() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.statistics_;
}

// optional uint32 row_index_stride = 8;
inline bool Footer::has_row_index_stride() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  return value;
}
inline void Footer::clear_row_index_stride() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.row_index_stride_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::uint32_t Footer::row_index_stride() const {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.row_index_stride)
  return _internal_row_index_stride();
}
inline void Footer::set_row_index_stride(::uint32_t value) {
  _internal_set_row_index_stride(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:orc.proto.Footer.row_index_stride)
}
inline ::uint32_t Footer::_internal_row_index_stride() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.row_index_stride_;
}
inline void Footer::_internal_set_row_index_stride(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.row_index_stride_ = value;
}

// optional uint32 writer = 9;
inline bool Footer::has_writer() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  return value;
}
inline void Footer::clear_writer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.writer_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::uint32_t Footer::writer() const {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.writer)
  return _internal_writer();
}
inline void Footer::set_writer(::uint32_t value) {
  _internal_set_writer(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:orc.proto.Footer.writer)
}
inline ::uint32_t Footer::_internal_writer() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.writer_;
}
inline void Footer::_internal_set_writer(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.writer_ = value;
}

// optional .orc.proto.Encryption encryption = 10;
inline bool Footer::has_encryption() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.encryption_ != nullptr);
  return value;
}
inline void Footer::clear_encryption() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.encryption_ != nullptr) _impl_.encryption_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::orc::proto::Encryption& Footer::_internal_encryption() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::Encryption* p = _impl_.encryption_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::Encryption>(&::orc::proto::Encryption_globals_);
}
inline const ::orc::proto::Encryption& Footer::encryption() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.encryption)
  return _internal_encryption();
}
inline void Footer::unsafe_arena_set_allocated_encryption(
    ::orc::proto::Encryption* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.encryption_);
  }
  _impl_.encryption_ = reinterpret_cast<::orc::proto::Encryption*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.Footer.encryption)
}
inline ::orc::proto::Encryption* PROTOBUF_NULLABLE Footer::release_encryption() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::orc::proto::Encryption* released = _impl_.encryption_;
  _impl_.encryption_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::Encryption* PROTOBUF_NULLABLE Footer::unsafe_arena_release_encryption() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.Footer.encryption)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::orc::proto::Encryption* temp = _impl_.encryption_;
  _impl_.encryption_ = nullptr;
  return temp;
}
inline ::orc::proto::Encryption* PROTOBUF_NONNULL Footer::_internal_mutable_encryption() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.encryption_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::Encryption>(GetArena());
    _impl_.encryption_ = reinterpret_cast<::orc::proto::Encryption*>(p);
  }
  return _impl_.encryption_;
}
inline ::orc::proto::Encryption* PROTOBUF_NONNULL Footer::mutable_encryption()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::orc::proto::Encryption* _msg = _internal_mutable_encryption();
  // @@protoc_insertion_point(field_mutable:orc.proto.Footer.encryption)
  return _msg;
}
inline void Footer::set_allocated_encryption(::orc::proto::Encryption* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.encryption_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.encryption_ = reinterpret_cast<::orc::proto::Encryption*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.Footer.encryption)
}

// optional .orc.proto.CalendarKind calendar = 11;
inline bool Footer::has_calendar() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000800U);
  return value;
}
inline void Footer::clear_calendar() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.calendar_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline ::orc::proto::CalendarKind Footer::calendar() const {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.calendar)
  return _internal_calendar();
}
inline void Footer::set_calendar(::orc::proto::CalendarKind value) {
  _internal_set_calendar(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:orc.proto.Footer.calendar)
}
inline ::orc::proto::CalendarKind Footer::_internal_calendar() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::orc::proto::CalendarKind>(_impl_.calendar_);
}
inline void Footer::_internal_set_calendar(::orc::proto::CalendarKind value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::orc::proto::CalendarKind_internal_data_));
                                          _impl_.calendar_ = value;
}

// optional string software_version = 12;
inline bool Footer::has_software_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void Footer::clear_software_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.software_version_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& Footer::software_version() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.Footer.software_version)
  return _internal_software_version();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Footer::set_software_version(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.software_version_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.Footer.software_version)
}
inline ::std::string* PROTOBUF_NONNULL Footer::mutable_software_version()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_software_version();
  // @@protoc_insertion_point(field_mutable:orc.proto.Footer.software_version)
  return _s;
}
inline const ::std::string& Footer::_internal_software_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.software_version_.Get();
}
inline void Footer::_internal_set_software_version(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.software_version_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Footer::_internal_mutable_software_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.software_version_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Footer::release_software_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.Footer.software_version)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.software_version_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.software_version_.Set("", GetArena());
  }
  return released;
}
inline void Footer::set_allocated_software_version(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.software_version_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.software_version_.IsDefault()) {
    _impl_.software_version_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.Footer.software_version)
}

// -------------------------------------------------------------------

// PostScript

// optional uint64 footer_length = 1;
inline bool PostScript::has_footer_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void PostScript::clear_footer_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.footer_length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t PostScript::footer_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.PostScript.footer_length)
  return _internal_footer_length();
}
inline void PostScript::set_footer_length(::uint64_t value) {
  _internal_set_footer_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.PostScript.footer_length)
}
inline ::uint64_t PostScript::_internal_footer_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.footer_length_;
}
inline void PostScript::_internal_set_footer_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.footer_length_ = value;
}

// optional .orc.proto.CompressionKind compression = 2;
inline bool PostScript::has_compression() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void PostScript::clear_compression() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.compression_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::orc::proto::CompressionKind PostScript::compression() const {
  // @@protoc_insertion_point(field_get:orc.proto.PostScript.compression)
  return _internal_compression();
}
inline void PostScript::set_compression(::orc::proto::CompressionKind value) {
  _internal_set_compression(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:orc.proto.PostScript.compression)
}
inline ::orc::proto::CompressionKind PostScript::_internal_compression() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::orc::proto::CompressionKind>(_impl_.compression_);
}
inline void PostScript::_internal_set_compression(::orc::proto::CompressionKind value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::orc::proto::CompressionKind_internal_data_));
                                          _impl_.compression_ = value;
}

// optional uint64 compression_block_size = 3;
inline bool PostScript::has_compression_block_size() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void PostScript::clear_compression_block_size() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.compression_block_size_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint64_t PostScript::compression_block_size() const {
  // @@protoc_insertion_point(field_get:orc.proto.PostScript.compression_block_size)
  return _internal_compression_block_size();
}
inline void PostScript::set_compression_block_size(::uint64_t value) {
  _internal_set_compression_block_size(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:orc.proto.PostScript.compression_block_size)
}
inline ::uint64_t PostScript::_internal_compression_block_size() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.compression_block_size_;
}
inline void PostScript::_internal_set_compression_block_size(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.compression_block_size_ = value;
}

// repeated uint32 version = 4 [packed = true];
inline int PostScript::_internal_version_size() const {
  return _internal_version().size();
}
inline int PostScript::version_size() const {
  return _internal_version_size();
}
inline void PostScript::clear_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.version_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t PostScript::version(int index) const {
  // @@protoc_insertion_point(field_get:orc.proto.PostScript.version)
  return _internal_version().Get(index);
}
inline void PostScript::set_version(int index, ::uint32_t value) {
  _internal_mutable_version()->Set(index, value);
  // @@protoc_insertion_point(field_set:orc.proto.PostScript.version)
}
inline void PostScript::add_version(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_version()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:orc.proto.PostScript.version)
}
inline const ::google::protobuf::RepeatedField<::uint32_t>& PostScript::version() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:orc.proto.PostScript.version)
  return _internal_version();
}
inline ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL PostScript::mutable_version()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:orc.proto.PostScript.version)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_version();
}
inline const ::google::protobuf::RepeatedField<::uint32_t>&
PostScript::_internal_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.version_;
}
inline ::google::protobuf::RepeatedField<::uint32_t>* PROTOBUF_NONNULL
PostScript::_internal_mutable_version() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.version_;
}

// optional uint64 metadata_length = 5;
inline bool PostScript::has_metadata_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void PostScript::clear_metadata_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.metadata_length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint64_t PostScript::metadata_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.PostScript.metadata_length)
  return _internal_metadata_length();
}
inline void PostScript::set_metadata_length(::uint64_t value) {
  _internal_set_metadata_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:orc.proto.PostScript.metadata_length)
}
inline ::uint64_t PostScript::_internal_metadata_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.metadata_length_;
}
inline void PostScript::_internal_set_metadata_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.metadata_length_ = value;
}

// optional uint32 writer_version = 6;
inline bool PostScript::has_writer_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void PostScript::clear_writer_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.writer_version_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint32_t PostScript::writer_version() const {
  // @@protoc_insertion_point(field_get:orc.proto.PostScript.writer_version)
  return _internal_writer_version();
}
inline void PostScript::set_writer_version(::uint32_t value) {
  _internal_set_writer_version(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:orc.proto.PostScript.writer_version)
}
inline ::uint32_t PostScript::_internal_writer_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.writer_version_;
}
inline void PostScript::_internal_set_writer_version(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.writer_version_ = value;
}

// optional uint64 stripe_statistics_length = 7;
inline bool PostScript::has_stripe_statistics_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void PostScript::clear_stripe_statistics_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stripe_statistics_length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint64_t PostScript::stripe_statistics_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.PostScript.stripe_statistics_length)
  return _internal_stripe_statistics_length();
}
inline void PostScript::set_stripe_statistics_length(::uint64_t value) {
  _internal_set_stripe_statistics_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:orc.proto.PostScript.stripe_statistics_length)
}
inline ::uint64_t PostScript::_internal_stripe_statistics_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stripe_statistics_length_;
}
inline void PostScript::_internal_set_stripe_statistics_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stripe_statistics_length_ = value;
}

// optional string magic = 8000;
inline bool PostScript::has_magic() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void PostScript::clear_magic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.magic_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PostScript::magic() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.PostScript.magic)
  return _internal_magic();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PostScript::set_magic(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.magic_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:orc.proto.PostScript.magic)
}
inline ::std::string* PROTOBUF_NONNULL PostScript::mutable_magic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_magic();
  // @@protoc_insertion_point(field_mutable:orc.proto.PostScript.magic)
  return _s;
}
inline const ::std::string& PostScript::_internal_magic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.magic_.Get();
}
inline void PostScript::_internal_set_magic(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.magic_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PostScript::_internal_mutable_magic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.magic_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PostScript::release_magic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.PostScript.magic)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.magic_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.magic_.Set("", GetArena());
  }
  return released;
}
inline void PostScript::set_allocated_magic(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.magic_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.magic_.IsDefault()) {
    _impl_.magic_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:orc.proto.PostScript.magic)
}

// -------------------------------------------------------------------

// FileTail

// optional .orc.proto.PostScript postscript = 1;
inline bool FileTail::has_postscript() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.postscript_ != nullptr);
  return value;
}
inline void FileTail::clear_postscript() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.postscript_ != nullptr) _impl_.postscript_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::orc::proto::PostScript& FileTail::_internal_postscript() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::PostScript* p = _impl_.postscript_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::PostScript>(&::orc::proto::PostScript_globals_);
}
inline const ::orc::proto::PostScript& FileTail::postscript() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.FileTail.postscript)
  return _internal_postscript();
}
inline void FileTail::unsafe_arena_set_allocated_postscript(
    ::orc::proto::PostScript* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.postscript_);
  }
  _impl_.postscript_ = reinterpret_cast<::orc::proto::PostScript*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.FileTail.postscript)
}
inline ::orc::proto::PostScript* PROTOBUF_NULLABLE FileTail::release_postscript() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::orc::proto::PostScript* released = _impl_.postscript_;
  _impl_.postscript_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::PostScript* PROTOBUF_NULLABLE FileTail::unsafe_arena_release_postscript() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.FileTail.postscript)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::orc::proto::PostScript* temp = _impl_.postscript_;
  _impl_.postscript_ = nullptr;
  return temp;
}
inline ::orc::proto::PostScript* PROTOBUF_NONNULL FileTail::_internal_mutable_postscript() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.postscript_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::PostScript>(GetArena());
    _impl_.postscript_ = reinterpret_cast<::orc::proto::PostScript*>(p);
  }
  return _impl_.postscript_;
}
inline ::orc::proto::PostScript* PROTOBUF_NONNULL FileTail::mutable_postscript()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::orc::proto::PostScript* _msg = _internal_mutable_postscript();
  // @@protoc_insertion_point(field_mutable:orc.proto.FileTail.postscript)
  return _msg;
}
inline void FileTail::set_allocated_postscript(::orc::proto::PostScript* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.postscript_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.postscript_ = reinterpret_cast<::orc::proto::PostScript*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.FileTail.postscript)
}

// optional .orc.proto.Footer footer = 2;
inline bool FileTail::has_footer() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.footer_ != nullptr);
  return value;
}
inline void FileTail::clear_footer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.footer_ != nullptr) _impl_.footer_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::orc::proto::Footer& FileTail::_internal_footer() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::orc::proto::Footer* p = _impl_.footer_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::orc::proto::Footer>(&::orc::proto::Footer_globals_);
}
inline const ::orc::proto::Footer& FileTail::footer() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:orc.proto.FileTail.footer)
  return _internal_footer();
}
inline void FileTail::unsafe_arena_set_allocated_footer(
    ::orc::proto::Footer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.footer_);
  }
  _impl_.footer_ = reinterpret_cast<::orc::proto::Footer*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:orc.proto.FileTail.footer)
}
inline ::orc::proto::Footer* PROTOBUF_NULLABLE FileTail::release_footer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::Footer* released = _impl_.footer_;
  _impl_.footer_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::orc::proto::Footer* PROTOBUF_NULLABLE FileTail::unsafe_arena_release_footer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:orc.proto.FileTail.footer)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::Footer* temp = _impl_.footer_;
  _impl_.footer_ = nullptr;
  return temp;
}
inline ::orc::proto::Footer* PROTOBUF_NONNULL FileTail::_internal_mutable_footer() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.footer_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::orc::proto::Footer>(GetArena());
    _impl_.footer_ = reinterpret_cast<::orc::proto::Footer*>(p);
  }
  return _impl_.footer_;
}
inline ::orc::proto::Footer* PROTOBUF_NONNULL FileTail::mutable_footer()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::orc::proto::Footer* _msg = _internal_mutable_footer();
  // @@protoc_insertion_point(field_mutable:orc.proto.FileTail.footer)
  return _msg;
}
inline void FileTail::set_allocated_footer(::orc::proto::Footer* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.footer_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.footer_ = reinterpret_cast<::orc::proto::Footer*>(value);
  // @@protoc_insertion_point(field_set_allocated:orc.proto.FileTail.footer)
}

// optional uint64 file_length = 3;
inline bool FileTail::has_file_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void FileTail::clear_file_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t FileTail::file_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.FileTail.file_length)
  return _internal_file_length();
}
inline void FileTail::set_file_length(::uint64_t value) {
  _internal_set_file_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:orc.proto.FileTail.file_length)
}
inline ::uint64_t FileTail::_internal_file_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.file_length_;
}
inline void FileTail::_internal_set_file_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_length_ = value;
}

// optional uint64 postscript_length = 4;
inline bool FileTail::has_postscript_length() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void FileTail::clear_postscript_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.postscript_length_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint64_t FileTail::postscript_length() const {
  // @@protoc_insertion_point(field_get:orc.proto.FileTail.postscript_length)
  return _internal_postscript_length();
}
inline void FileTail::set_postscript_length(::uint64_t value) {
  _internal_set_postscript_length(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:orc.proto.FileTail.postscript_length)
}
inline ::uint64_t FileTail::_internal_postscript_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.postscript_length_;
}
inline void FileTail::_internal_set_postscript_length(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.postscript_length_ = value;
}

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)
}  // namespace proto
}  // namespace orc


namespace google {
namespace protobuf {

template <>
struct is_proto_enum<::orc::proto::Stream_Kind> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::orc::proto::Stream_Kind>() {
  return ::orc::proto::Stream_Kind_descriptor();
}
template <>
struct is_proto_enum<::orc::proto::ColumnEncoding_Kind> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::orc::proto::ColumnEncoding_Kind>() {
  return ::orc::proto::ColumnEncoding_Kind_descriptor();
}
template <>
struct is_proto_enum<::orc::proto::Type_Kind> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::orc::proto::Type_Kind>() {
  return ::orc::proto::Type_Kind_descriptor();
}
template <>
struct is_proto_enum<::orc::proto::Type_EdgeInterpolationAlgorithm> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::orc::proto::Type_EdgeInterpolationAlgorithm>() {
  return ::orc::proto::Type_EdgeInterpolationAlgorithm_descriptor();
}
template <>
struct is_proto_enum<::orc::proto::EncryptionAlgorithm> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::orc::proto::EncryptionAlgorithm>() {
  return ::orc::proto::EncryptionAlgorithm_descriptor();
}
template <>
struct is_proto_enum<::orc::proto::KeyProviderKind> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::orc::proto::KeyProviderKind>() {
  return ::orc::proto::KeyProviderKind_descriptor();
}
template <>
struct is_proto_enum<::orc::proto::CalendarKind> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::orc::proto::CalendarKind>() {
  return ::orc::proto::CalendarKind_descriptor();
}
template <>
struct is_proto_enum<::orc::proto::CompressionKind> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::orc::proto::CompressionKind>() {
  return ::orc::proto::CompressionKind_descriptor();
}

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"
// clang-format on

#endif  // orc_5fproto_2eproto_2epb_2eh
