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

#include "substrait/type.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/descriptor.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/reflection_ops.h"
#include "google/protobuf/wire_format.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
#ifdef PROTOBUF_MESSAGE_GLOBALS
namespace {
PROTOBUF_CONSTINIT ::google::protobuf::internal::ReflectionData
    file_reflection_data[] = {
        // ::substrait::Type_Boolean
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_I8
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_I16
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_I32
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_I64
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_FP32
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_FP64
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_String
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_Binary
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_Timestamp
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_Date
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_Time
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_TimestampTZ
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_IntervalYear
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_IntervalDay
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_UUID
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_FixedChar
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_VarChar
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_FixedBinary
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_Decimal
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_PrecisionTimestamp
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_PrecisionTimestampTZ
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_Struct
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_List
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_Map
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_UserDefined
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type_Parameter
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Type
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
        // ::substrait::NamedStruct
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2ftype_2eproto, /* tracker*/ nullptr,},
};
}  // namespace
#endif
namespace substrait {
class Type_VarChar::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_VarChar>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_._has_bits_);
};

constexpr Type_VarChar::ParseTableT_ Type_VarChar::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_VarChar>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // int32 length = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_VarChar, _impl_.length_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_.length_)}},
      // uint32 type_variation_reference = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_VarChar, _impl_.type_variation_reference_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_.type_variation_reference_)}},
      // .substrait.Type.Nullability nullability = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_VarChar, _impl_.nullability_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_.nullability_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 length = 1;
      {PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_.length_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // uint32 type_variation_reference = 2;
      {PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 3;
      {PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_.nullability_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_VarChar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        length_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_VarChar::Type_VarChar(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_VarChar::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_VarChar(arena);
}
constexpr auto Type_VarChar::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_VarChar), alignof(Type_VarChar));
}
constexpr auto Type_VarChar::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_VarChar::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_VarChar>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_VarChar::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_VarChar>(), &Type_VarChar::ByteSizeLong,
              &Type_VarChar::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[17],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_VarCharGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_VarCharGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_VarChar_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_VarChar::InternalGenerateClassData_(
            _default, &Type_VarChar_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_VarChar>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_VarCharGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_VarChar _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_VarChar>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_VarCharGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_VarCharGlobalsTypeInternal Type_VarChar_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_VarChar_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_VarChar_globals_.GetClassData();
#else
  return Type_VarChar_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_UUID::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_UUID>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_UUID, _impl_._has_bits_);
};

constexpr Type_UUID::ParseTableT_ Type_UUID::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_UUID, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_UUID>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_UUID, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_UUID, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_UUID, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_UUID, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_UUID, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_UUID, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_UUID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_UUID::Type_UUID(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_UUID::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_UUID(arena);
}
constexpr auto Type_UUID::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_UUID), alignof(Type_UUID));
}
constexpr auto Type_UUID::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_UUID::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_UUID>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_UUID::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_UUID>(), &Type_UUID::ByteSizeLong,
              &Type_UUID::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_UUID, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[15],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_UUIDGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_UUIDGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_UUID_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_UUID::InternalGenerateClassData_(
            _default, &Type_UUID_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_UUID>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_UUIDGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_UUID _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_UUID>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_UUIDGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_UUIDGlobalsTypeInternal Type_UUID_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_UUID_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_UUID_globals_.GetClassData();
#else
  return Type_UUID_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_TimestampTZ::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_TimestampTZ>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_TimestampTZ, _impl_._has_bits_);
};

constexpr Type_TimestampTZ::ParseTableT_ Type_TimestampTZ::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_TimestampTZ, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_TimestampTZ>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_TimestampTZ, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_TimestampTZ, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_TimestampTZ, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_TimestampTZ, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_TimestampTZ, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_TimestampTZ, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_TimestampTZ::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_TimestampTZ::Type_TimestampTZ(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_TimestampTZ::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_TimestampTZ(arena);
}
constexpr auto Type_TimestampTZ::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_TimestampTZ), alignof(Type_TimestampTZ));
}
constexpr auto Type_TimestampTZ::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_TimestampTZ::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_TimestampTZ>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_TimestampTZ::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_TimestampTZ>(), &Type_TimestampTZ::ByteSizeLong,
              &Type_TimestampTZ::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_TimestampTZ, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[12],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_TimestampTZGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_TimestampTZGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_TimestampTZ_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_TimestampTZ::InternalGenerateClassData_(
            _default, &Type_TimestampTZ_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_TimestampTZ>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_TimestampTZGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_TimestampTZ _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_TimestampTZ>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_TimestampTZGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_TimestampTZGlobalsTypeInternal Type_TimestampTZ_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_TimestampTZ_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_TimestampTZ_globals_.GetClassData();
#else
  return Type_TimestampTZ_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_Timestamp::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_Timestamp>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_Timestamp, _impl_._has_bits_);
};

constexpr Type_Timestamp::ParseTableT_ Type_Timestamp::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_Timestamp, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_Timestamp>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Timestamp, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_Timestamp, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Timestamp, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_Timestamp, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_Timestamp, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_Timestamp, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_Timestamp::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_Timestamp::Type_Timestamp(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_Timestamp::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_Timestamp(arena);
}
constexpr auto Type_Timestamp::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_Timestamp), alignof(Type_Timestamp));
}
constexpr auto Type_Timestamp::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_Timestamp::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_Timestamp>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_Timestamp::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_Timestamp>(), &Type_Timestamp::ByteSizeLong,
              &Type_Timestamp::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_Timestamp, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[9],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_TimestampGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_TimestampGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_Timestamp_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_Timestamp::InternalGenerateClassData_(
            _default, &Type_Timestamp_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_Timestamp>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_TimestampGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_Timestamp _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_Timestamp>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_TimestampGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_TimestampGlobalsTypeInternal Type_Timestamp_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_Timestamp_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_Timestamp_globals_.GetClassData();
#else
  return Type_Timestamp_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_Time::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_Time>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_Time, _impl_._has_bits_);
};

constexpr Type_Time::ParseTableT_ Type_Time::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_Time, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_Time>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Time, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_Time, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Time, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_Time, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_Time, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_Time, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_Time::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_Time::Type_Time(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_Time::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_Time(arena);
}
constexpr auto Type_Time::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_Time), alignof(Type_Time));
}
constexpr auto Type_Time::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_Time::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_Time>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_Time::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_Time>(), &Type_Time::ByteSizeLong,
              &Type_Time::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_Time, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[11],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_TimeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_TimeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_Time_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_Time::InternalGenerateClassData_(
            _default, &Type_Time_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_Time>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_TimeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_Time _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_Time>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_TimeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_TimeGlobalsTypeInternal Type_Time_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_Time_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_Time_globals_.GetClassData();
#else
  return Type_Time_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_String::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_String>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_String, _impl_._has_bits_);
};

constexpr Type_String::ParseTableT_ Type_String::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_String, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_String>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_String, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_String, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_String, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_String, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_String, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_String, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_String::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_String::Type_String(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_String::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_String(arena);
}
constexpr auto Type_String::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_String), alignof(Type_String));
}
constexpr auto Type_String::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_String::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_String>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_String::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_String>(), &Type_String::ByteSizeLong,
              &Type_String::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_String, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[7],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_StringGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_StringGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_String_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_String::InternalGenerateClassData_(
            _default, &Type_String_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_String>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_StringGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_String _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_String>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_StringGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_StringGlobalsTypeInternal Type_String_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_String_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_String_globals_.GetClassData();
#else
  return Type_String_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_PrecisionTimestampTZ::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_PrecisionTimestampTZ>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_._has_bits_);
};

constexpr Type_PrecisionTimestampTZ::ParseTableT_ Type_PrecisionTimestampTZ::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_PrecisionTimestampTZ>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // int32 precision = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_PrecisionTimestampTZ, _impl_.precision_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_.precision_)}},
      // uint32 type_variation_reference = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_PrecisionTimestampTZ, _impl_.type_variation_reference_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_.type_variation_reference_)}},
      // .substrait.Type.Nullability nullability = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_PrecisionTimestampTZ, _impl_.nullability_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_.nullability_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 precision = 1;
      {PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_.precision_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // uint32 type_variation_reference = 2;
      {PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 3;
      {PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_.nullability_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_PrecisionTimestampTZ::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        precision_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_PrecisionTimestampTZ::Type_PrecisionTimestampTZ(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_PrecisionTimestampTZ::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_PrecisionTimestampTZ(arena);
}
constexpr auto Type_PrecisionTimestampTZ::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_PrecisionTimestampTZ), alignof(Type_PrecisionTimestampTZ));
}
constexpr auto Type_PrecisionTimestampTZ::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_PrecisionTimestampTZ::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_PrecisionTimestampTZ>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_PrecisionTimestampTZ::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_PrecisionTimestampTZ>(), &Type_PrecisionTimestampTZ::ByteSizeLong,
              &Type_PrecisionTimestampTZ::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[21],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_PrecisionTimestampTZGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_PrecisionTimestampTZGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_PrecisionTimestampTZ_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_PrecisionTimestampTZ::InternalGenerateClassData_(
            _default, &Type_PrecisionTimestampTZ_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_PrecisionTimestampTZ>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_PrecisionTimestampTZGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_PrecisionTimestampTZ _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_PrecisionTimestampTZ>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_PrecisionTimestampTZGlobalsTypeInternal Type_PrecisionTimestampTZ_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_PrecisionTimestampTZ_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_PrecisionTimestampTZ_globals_.GetClassData();
#else
  return Type_PrecisionTimestampTZ_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_PrecisionTimestamp::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_PrecisionTimestamp>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_._has_bits_);
};

constexpr Type_PrecisionTimestamp::ParseTableT_ Type_PrecisionTimestamp::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_PrecisionTimestamp>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // int32 precision = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_PrecisionTimestamp, _impl_.precision_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_.precision_)}},
      // uint32 type_variation_reference = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_PrecisionTimestamp, _impl_.type_variation_reference_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_.type_variation_reference_)}},
      // .substrait.Type.Nullability nullability = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_PrecisionTimestamp, _impl_.nullability_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_.nullability_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 precision = 1;
      {PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_.precision_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // uint32 type_variation_reference = 2;
      {PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 3;
      {PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_.nullability_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_PrecisionTimestamp::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        precision_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_PrecisionTimestamp::Type_PrecisionTimestamp(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_PrecisionTimestamp::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_PrecisionTimestamp(arena);
}
constexpr auto Type_PrecisionTimestamp::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_PrecisionTimestamp), alignof(Type_PrecisionTimestamp));
}
constexpr auto Type_PrecisionTimestamp::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_PrecisionTimestamp::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_PrecisionTimestamp>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_PrecisionTimestamp::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_PrecisionTimestamp>(), &Type_PrecisionTimestamp::ByteSizeLong,
              &Type_PrecisionTimestamp::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[20],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_PrecisionTimestampGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_PrecisionTimestampGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_PrecisionTimestamp_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_PrecisionTimestamp::InternalGenerateClassData_(
            _default, &Type_PrecisionTimestamp_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_PrecisionTimestamp>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_PrecisionTimestampGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_PrecisionTimestamp _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_PrecisionTimestamp>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_PrecisionTimestampGlobalsTypeInternal Type_PrecisionTimestamp_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_PrecisionTimestamp_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_PrecisionTimestamp_globals_.GetClassData();
#else
  return Type_PrecisionTimestamp_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_IntervalYear::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_IntervalYear>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_IntervalYear, _impl_._has_bits_);
};

constexpr Type_IntervalYear::ParseTableT_ Type_IntervalYear::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_IntervalYear, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_IntervalYear>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_IntervalYear, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_IntervalYear, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_IntervalYear, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_IntervalYear, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_IntervalYear, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_IntervalYear, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_IntervalYear::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_IntervalYear::Type_IntervalYear(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_IntervalYear::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_IntervalYear(arena);
}
constexpr auto Type_IntervalYear::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_IntervalYear), alignof(Type_IntervalYear));
}
constexpr auto Type_IntervalYear::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_IntervalYear::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_IntervalYear>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_IntervalYear::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_IntervalYear>(), &Type_IntervalYear::ByteSizeLong,
              &Type_IntervalYear::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_IntervalYear, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[13],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_IntervalYearGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_IntervalYearGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_IntervalYear_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_IntervalYear::InternalGenerateClassData_(
            _default, &Type_IntervalYear_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_IntervalYear>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_IntervalYearGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_IntervalYear _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_IntervalYear>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_IntervalYearGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_IntervalYearGlobalsTypeInternal Type_IntervalYear_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_IntervalYear_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_IntervalYear_globals_.GetClassData();
#else
  return Type_IntervalYear_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_IntervalDay::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_IntervalDay>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_IntervalDay, _impl_._has_bits_);
};

constexpr Type_IntervalDay::ParseTableT_ Type_IntervalDay::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_IntervalDay, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_IntervalDay>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_IntervalDay, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_IntervalDay, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_IntervalDay, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_IntervalDay, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_IntervalDay, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_IntervalDay, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_IntervalDay::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_IntervalDay::Type_IntervalDay(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_IntervalDay::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_IntervalDay(arena);
}
constexpr auto Type_IntervalDay::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_IntervalDay), alignof(Type_IntervalDay));
}
constexpr auto Type_IntervalDay::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_IntervalDay::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_IntervalDay>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_IntervalDay::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_IntervalDay>(), &Type_IntervalDay::ByteSizeLong,
              &Type_IntervalDay::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_IntervalDay, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[14],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_IntervalDayGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_IntervalDayGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_IntervalDay_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_IntervalDay::InternalGenerateClassData_(
            _default, &Type_IntervalDay_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_IntervalDay>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_IntervalDayGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_IntervalDay _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_IntervalDay>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_IntervalDayGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_IntervalDayGlobalsTypeInternal Type_IntervalDay_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_IntervalDay_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_IntervalDay_globals_.GetClassData();
#else
  return Type_IntervalDay_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_I8::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_I8>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_I8, _impl_._has_bits_);
};

constexpr Type_I8::ParseTableT_ Type_I8::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_I8, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_I8>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_I8, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_I8, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_I8, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_I8, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_I8, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_I8, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_I8::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_I8::Type_I8(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_I8::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_I8(arena);
}
constexpr auto Type_I8::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_I8), alignof(Type_I8));
}
constexpr auto Type_I8::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_I8::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_I8>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_I8::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_I8>(), &Type_I8::ByteSizeLong,
              &Type_I8::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_I8, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[1],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_I8GlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_I8GlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_I8_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_I8::InternalGenerateClassData_(
            _default, &Type_I8_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_I8>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_I8GlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_I8 _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_I8>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_I8GlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_I8GlobalsTypeInternal Type_I8_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_I8_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_I8_globals_.GetClassData();
#else
  return Type_I8_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_I64::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_I64>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_I64, _impl_._has_bits_);
};

constexpr Type_I64::ParseTableT_ Type_I64::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_I64, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_I64>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_I64, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_I64, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_I64, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_I64, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_I64, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_I64, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_I64::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_I64::Type_I64(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_I64::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_I64(arena);
}
constexpr auto Type_I64::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_I64), alignof(Type_I64));
}
constexpr auto Type_I64::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_I64::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_I64>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_I64::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_I64>(), &Type_I64::ByteSizeLong,
              &Type_I64::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_I64, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[4],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_I64GlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_I64GlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_I64_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_I64::InternalGenerateClassData_(
            _default, &Type_I64_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_I64>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_I64GlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_I64 _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_I64>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_I64GlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_I64GlobalsTypeInternal Type_I64_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_I64_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_I64_globals_.GetClassData();
#else
  return Type_I64_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_I32::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_I32>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_I32, _impl_._has_bits_);
};

constexpr Type_I32::ParseTableT_ Type_I32::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_I32, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_I32>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_I32, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_I32, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_I32, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_I32, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_I32, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_I32, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_I32::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_I32::Type_I32(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_I32::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_I32(arena);
}
constexpr auto Type_I32::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_I32), alignof(Type_I32));
}
constexpr auto Type_I32::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_I32::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_I32>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_I32::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_I32>(), &Type_I32::ByteSizeLong,
              &Type_I32::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_I32, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[3],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_I32GlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_I32GlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_I32_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_I32::InternalGenerateClassData_(
            _default, &Type_I32_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_I32>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_I32GlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_I32 _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_I32>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_I32GlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_I32GlobalsTypeInternal Type_I32_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_I32_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_I32_globals_.GetClassData();
#else
  return Type_I32_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_I16::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_I16>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_I16, _impl_._has_bits_);
};

constexpr Type_I16::ParseTableT_ Type_I16::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_I16, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_I16>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_I16, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_I16, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_I16, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_I16, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_I16, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_I16, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_I16::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_I16::Type_I16(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_I16::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_I16(arena);
}
constexpr auto Type_I16::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_I16), alignof(Type_I16));
}
constexpr auto Type_I16::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_I16::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_I16>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_I16::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_I16>(), &Type_I16::ByteSizeLong,
              &Type_I16::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_I16, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[2],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_I16GlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_I16GlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_I16_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_I16::InternalGenerateClassData_(
            _default, &Type_I16_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_I16>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_I16GlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_I16 _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_I16>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_I16GlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_I16GlobalsTypeInternal Type_I16_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_I16_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_I16_globals_.GetClassData();
#else
  return Type_I16_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_FixedChar::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_FixedChar>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_._has_bits_);
};

constexpr Type_FixedChar::ParseTableT_ Type_FixedChar::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_FixedChar>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // int32 length = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_FixedChar, _impl_.length_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_.length_)}},
      // uint32 type_variation_reference = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_FixedChar, _impl_.type_variation_reference_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_.type_variation_reference_)}},
      // .substrait.Type.Nullability nullability = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_FixedChar, _impl_.nullability_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_.nullability_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 length = 1;
      {PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_.length_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // uint32 type_variation_reference = 2;
      {PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 3;
      {PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_.nullability_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_FixedChar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        length_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_FixedChar::Type_FixedChar(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_FixedChar::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_FixedChar(arena);
}
constexpr auto Type_FixedChar::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_FixedChar), alignof(Type_FixedChar));
}
constexpr auto Type_FixedChar::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_FixedChar::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_FixedChar>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_FixedChar::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_FixedChar>(), &Type_FixedChar::ByteSizeLong,
              &Type_FixedChar::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[16],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_FixedCharGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_FixedCharGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_FixedChar_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_FixedChar::InternalGenerateClassData_(
            _default, &Type_FixedChar_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_FixedChar>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_FixedCharGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_FixedChar _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_FixedChar>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_FixedCharGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_FixedCharGlobalsTypeInternal Type_FixedChar_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_FixedChar_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_FixedChar_globals_.GetClassData();
#else
  return Type_FixedChar_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_FixedBinary::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_FixedBinary>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_._has_bits_);
};

constexpr Type_FixedBinary::ParseTableT_ Type_FixedBinary::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_FixedBinary>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // int32 length = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_FixedBinary, _impl_.length_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_.length_)}},
      // uint32 type_variation_reference = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_FixedBinary, _impl_.type_variation_reference_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_.type_variation_reference_)}},
      // .substrait.Type.Nullability nullability = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_FixedBinary, _impl_.nullability_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_.nullability_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 length = 1;
      {PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_.length_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // uint32 type_variation_reference = 2;
      {PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 3;
      {PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_.nullability_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_FixedBinary::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        length_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_FixedBinary::Type_FixedBinary(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_FixedBinary::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_FixedBinary(arena);
}
constexpr auto Type_FixedBinary::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_FixedBinary), alignof(Type_FixedBinary));
}
constexpr auto Type_FixedBinary::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_FixedBinary::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_FixedBinary>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_FixedBinary::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_FixedBinary>(), &Type_FixedBinary::ByteSizeLong,
              &Type_FixedBinary::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[18],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_FixedBinaryGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_FixedBinaryGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_FixedBinary_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_FixedBinary::InternalGenerateClassData_(
            _default, &Type_FixedBinary_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_FixedBinary>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_FixedBinaryGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_FixedBinary _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_FixedBinary>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_FixedBinaryGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_FixedBinaryGlobalsTypeInternal Type_FixedBinary_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_FixedBinary_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_FixedBinary_globals_.GetClassData();
#else
  return Type_FixedBinary_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_FP64::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_FP64>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_FP64, _impl_._has_bits_);
};

constexpr Type_FP64::ParseTableT_ Type_FP64::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_FP64, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_FP64>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_FP64, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_FP64, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_FP64, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_FP64, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_FP64, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_FP64, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_FP64::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_FP64::Type_FP64(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_FP64::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_FP64(arena);
}
constexpr auto Type_FP64::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_FP64), alignof(Type_FP64));
}
constexpr auto Type_FP64::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_FP64::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_FP64>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_FP64::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_FP64>(), &Type_FP64::ByteSizeLong,
              &Type_FP64::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_FP64, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[6],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_FP64GlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_FP64GlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_FP64_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_FP64::InternalGenerateClassData_(
            _default, &Type_FP64_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_FP64>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_FP64GlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_FP64 _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_FP64>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_FP64GlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_FP64GlobalsTypeInternal Type_FP64_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_FP64_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_FP64_globals_.GetClassData();
#else
  return Type_FP64_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_FP32::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_FP32>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_FP32, _impl_._has_bits_);
};

constexpr Type_FP32::ParseTableT_ Type_FP32::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_FP32, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_FP32>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_FP32, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_FP32, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_FP32, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_FP32, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_FP32, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_FP32, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_FP32::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_FP32::Type_FP32(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_FP32::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_FP32(arena);
}
constexpr auto Type_FP32::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_FP32), alignof(Type_FP32));
}
constexpr auto Type_FP32::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_FP32::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_FP32>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_FP32::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_FP32>(), &Type_FP32::ByteSizeLong,
              &Type_FP32::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_FP32, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[5],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_FP32GlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_FP32GlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_FP32_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_FP32::InternalGenerateClassData_(
            _default, &Type_FP32_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_FP32>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_FP32GlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_FP32 _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_FP32>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_FP32GlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_FP32GlobalsTypeInternal Type_FP32_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_FP32_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_FP32_globals_.GetClassData();
#else
  return Type_FP32_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_Decimal::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_Decimal>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_._has_bits_);
};

constexpr Type_Decimal::ParseTableT_ Type_Decimal::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_Decimal>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Decimal, _impl_.nullability_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_.nullability_)}},
      // int32 scale = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Decimal, _impl_.scale_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_.scale_)}},
      // int32 precision = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Decimal, _impl_.precision_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_.precision_)}},
      // uint32 type_variation_reference = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Decimal, _impl_.type_variation_reference_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 scale = 1;
      {PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_.scale_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // int32 precision = 2;
      {PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_.precision_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // uint32 type_variation_reference = 3;
      {PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 4;
      {PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_.nullability_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_Decimal::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        scale_{0},
        precision_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_Decimal::Type_Decimal(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_Decimal::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_Decimal(arena);
}
constexpr auto Type_Decimal::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_Decimal), alignof(Type_Decimal));
}
constexpr auto Type_Decimal::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_Decimal::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_Decimal>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_Decimal::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_Decimal>(), &Type_Decimal::ByteSizeLong,
              &Type_Decimal::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[19],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_DecimalGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_DecimalGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_Decimal_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_Decimal::InternalGenerateClassData_(
            _default, &Type_Decimal_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_Decimal>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_DecimalGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_Decimal _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_Decimal>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_DecimalGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_DecimalGlobalsTypeInternal Type_Decimal_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_Decimal_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_Decimal_globals_.GetClassData();
#else
  return Type_Decimal_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_Date::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_Date>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_Date, _impl_._has_bits_);
};

constexpr Type_Date::ParseTableT_ Type_Date::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_Date, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_Date>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Date, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_Date, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Date, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_Date, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_Date, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_Date, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_Date::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_Date::Type_Date(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_Date::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_Date(arena);
}
constexpr auto Type_Date::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_Date), alignof(Type_Date));
}
constexpr auto Type_Date::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_Date::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_Date>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_Date::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_Date>(), &Type_Date::ByteSizeLong,
              &Type_Date::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_Date, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[10],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_DateGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_DateGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_Date_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_Date::InternalGenerateClassData_(
            _default, &Type_Date_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_Date>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_DateGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_Date _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_Date>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_DateGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_DateGlobalsTypeInternal Type_Date_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_Date_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_Date_globals_.GetClassData();
#else
  return Type_Date_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_Boolean::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_Boolean>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_Boolean, _impl_._has_bits_);
};

constexpr Type_Boolean::ParseTableT_ Type_Boolean::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_Boolean, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_Boolean>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Boolean, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_Boolean, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Boolean, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_Boolean, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_Boolean, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_Boolean, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_Boolean::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_Boolean::Type_Boolean(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_Boolean::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_Boolean(arena);
}
constexpr auto Type_Boolean::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_Boolean), alignof(Type_Boolean));
}
constexpr auto Type_Boolean::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_Boolean::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_Boolean>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_Boolean::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_Boolean>(), &Type_Boolean::ByteSizeLong,
              &Type_Boolean::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_Boolean, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[0],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_BooleanGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_BooleanGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_Boolean_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_Boolean::InternalGenerateClassData_(
            _default, &Type_Boolean_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_Boolean>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_BooleanGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_Boolean _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_Boolean>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_BooleanGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_BooleanGlobalsTypeInternal Type_Boolean_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_Boolean_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_Boolean_globals_.GetClassData();
#else
  return Type_Boolean_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_Binary::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_Binary>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_Binary, _impl_._has_bits_);
};

constexpr Type_Binary::ParseTableT_ Type_Binary::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_Binary, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_Binary>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Binary, _impl_.nullability_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_Binary, _impl_.nullability_)}},
      // uint32 type_variation_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Binary, _impl_.type_variation_reference_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_Binary, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_variation_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_Binary, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 2;
      {PROTOBUF_FIELD_OFFSET(Type_Binary, _impl_.nullability_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Type_Binary::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_Binary::Type_Binary(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_Binary::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_Binary(arena);
}
constexpr auto Type_Binary::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_Binary), alignof(Type_Binary));
}
constexpr auto Type_Binary::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_Binary::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_Binary>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_Binary::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_Binary>(), &Type_Binary::ByteSizeLong,
              &Type_Binary::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_Binary, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[8],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_BinaryGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_BinaryGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_Binary_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_Binary::InternalGenerateClassData_(
            _default, &Type_Binary_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_Binary>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_BinaryGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_Binary _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_Binary>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_BinaryGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_BinaryGlobalsTypeInternal Type_Binary_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_Binary_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_Binary_globals_.GetClassData();
#else
  return Type_Binary_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_._oneof_case_);
};

constexpr Type::ParseTableT_ Type::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      34, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      33702312,  // skipmap
      offsetof(ParseTableT_, field_entries),
      27,  // num_field_entries
      26,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      33, 0, 1,
      65532, 25,
      65535, 65535
    }}, {{
      // .substrait.Type.Boolean bool = 1;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.bool__), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.I8 i8 = 2;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.i8_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.I16 i16 = 3;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.i16_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.I32 i32 = 5;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.i32_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.I64 i64 = 7;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.i64_), _Internal::kOneofCaseOffset + 0, 4, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.FP32 fp32 = 10;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.fp32_), _Internal::kOneofCaseOffset + 0, 5, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.FP64 fp64 = 11;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.fp64_), _Internal::kOneofCaseOffset + 0, 6, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.String string = 12;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.string_), _Internal::kOneofCaseOffset + 0, 7, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.Binary binary = 13;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.binary_), _Internal::kOneofCaseOffset + 0, 8, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.Timestamp timestamp = 14 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.timestamp_), _Internal::kOneofCaseOffset + 0, 9, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.Date date = 16;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.date_), _Internal::kOneofCaseOffset + 0, 10, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.Time time = 17;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.time_), _Internal::kOneofCaseOffset + 0, 11, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.IntervalYear interval_year = 19;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.interval_year_), _Internal::kOneofCaseOffset + 0, 12, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.IntervalDay interval_day = 20;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.interval_day_), _Internal::kOneofCaseOffset + 0, 13, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.FixedChar fixed_char = 21;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.fixed_char_), _Internal::kOneofCaseOffset + 0, 14, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.VarChar varchar = 22;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.varchar_), _Internal::kOneofCaseOffset + 0, 15, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.FixedBinary fixed_binary = 23;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.fixed_binary_), _Internal::kOneofCaseOffset + 0, 16, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.Decimal decimal = 24;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.decimal_), _Internal::kOneofCaseOffset + 0, 17, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.Struct struct = 25;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.struct__), _Internal::kOneofCaseOffset + 0, 18, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.List list = 27;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.list_), _Internal::kOneofCaseOffset + 0, 19, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.Map map = 28;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.map_), _Internal::kOneofCaseOffset + 0, 20, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.TimestampTZ timestamp_tz = 29 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.timestamp_tz_), _Internal::kOneofCaseOffset + 0, 21, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.UserDefined user_defined = 30;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.user_defined_), _Internal::kOneofCaseOffset + 0, 22, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 user_defined_type_reference = 31 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.user_defined_type_reference_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUInt32)},
      // .substrait.Type.UUID uuid = 32;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.uuid_), _Internal::kOneofCaseOffset + 0, 23, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.PrecisionTimestamp precision_timestamp = 33;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.precision_timestamp_), _Internal::kOneofCaseOffset + 0, 24, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.PrecisionTimestampTZ precision_timestamp_tz = 34;
      {PROTOBUF_FIELD_OFFSET(Type, _impl_.kind_.precision_timestamp_tz_), _Internal::kOneofCaseOffset + 0, 25, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Boolean>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Boolean_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_I8>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_I8_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_I16>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_I16_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_I32>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_I32_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_I64>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_I64_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_FP32>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_FP32_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_FP64>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_FP64_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_String>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_String_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Binary>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Binary_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Timestamp>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Timestamp_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Date>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Date_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Time>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Time_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_IntervalYear>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_IntervalYear_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_IntervalDay>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_IntervalDay_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_FixedChar>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_FixedChar_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_VarChar>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_VarChar_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_FixedBinary>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_FixedBinary_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Decimal>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Decimal_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Struct>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Struct_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_List>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_List_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Map>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Map_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_TimestampTZ>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_TimestampTZ_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_UserDefined>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_UserDefined_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_UUID>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_UUID_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_PrecisionTimestamp>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_PrecisionTimestamp_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_PrecisionTimestampTZ>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_PrecisionTimestampTZ_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Type::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : kind_{},
        _cached_size_{0},
        _oneof_case_{} {}

template <typename>
constexpr Type::Type(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type(arena);
}
constexpr auto Type::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type), alignof(Type));
}
constexpr auto Type::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type>(), &Type::ByteSizeLong,
              &Type::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[27],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TypeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TypeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type::InternalGenerateClassData_(
            _default, &Type_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TypeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TypeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST TypeGlobalsTypeInternal Type_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_globals_.GetClassData();
#else
  return Type_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_List::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_List>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_List, _impl_._has_bits_);
};

constexpr Type_List::ParseTableT_ Type_List::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_List, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_List>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.Type type = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_List, _impl_.type_)}},
      // uint32 type_variation_reference = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_List, _impl_.type_variation_reference_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_List, _impl_.type_variation_reference_)}},
      // .substrait.Type.Nullability nullability = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_List, _impl_.nullability_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Type_List, _impl_.nullability_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Type type = 1;
      {PROTOBUF_FIELD_OFFSET(Type_List, _impl_.type_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 type_variation_reference = 2;
      {PROTOBUF_FIELD_OFFSET(Type_List, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 3;
      {PROTOBUF_FIELD_OFFSET(Type_List, _impl_.nullability_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Type_List::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_{nullptr},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_List::Type_List(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_List::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_List(arena);
}
constexpr auto Type_List::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_List), alignof(Type_List));
}
constexpr auto Type_List::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_List::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_List>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_List::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_List>(), &Type_List::ByteSizeLong,
              &Type_List::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_List, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[23],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_ListGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_ListGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_List_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_List::InternalGenerateClassData_(
            _default, &Type_List_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_List>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_ListGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_List _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_List>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_ListGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_ListGlobalsTypeInternal Type_List_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_List_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_List_globals_.GetClassData();
#else
  return Type_List_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_Map::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_Map>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_Map, _impl_._has_bits_);
};

constexpr Type_Map::ParseTableT_ Type_Map::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_Map, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_Map>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Nullability nullability = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Map, _impl_.nullability_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(Type_Map, _impl_.nullability_)}},
      // .substrait.Type key = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_Map, _impl_.key_)}},
      // .substrait.Type value = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Type_Map, _impl_.value_)}},
      // uint32 type_variation_reference = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Map, _impl_.type_variation_reference_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Type_Map, _impl_.type_variation_reference_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Type key = 1;
      {PROTOBUF_FIELD_OFFSET(Type_Map, _impl_.key_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type value = 2;
      {PROTOBUF_FIELD_OFFSET(Type_Map, _impl_.value_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 type_variation_reference = 3;
      {PROTOBUF_FIELD_OFFSET(Type_Map, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 4;
      {PROTOBUF_FIELD_OFFSET(Type_Map, _impl_.nullability_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Type_Map::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        key_{nullptr},
        value_{nullptr},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_Map::Type_Map(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_Map::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_Map(arena);
}
constexpr auto Type_Map::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_Map), alignof(Type_Map));
}
constexpr auto Type_Map::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_Map::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_Map>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_Map::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_Map>(), &Type_Map::ByteSizeLong,
              &Type_Map::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_Map, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[24],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_MapGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_MapGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_Map_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_Map::InternalGenerateClassData_(
            _default, &Type_Map_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_Map>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_MapGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_Map _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_Map>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_MapGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_MapGlobalsTypeInternal Type_Map_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_Map_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_Map_globals_.GetClassData();
#else
  return Type_Map_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_Parameter::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::substrait::Type_Parameter, _impl_._oneof_case_);
};

constexpr Type_Parameter::ParseTableT_ Type_Parameter::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_Parameter,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      6, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_Parameter>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Empty null = 1;
      {PROTOBUF_FIELD_OFFSET(Type_Parameter, _impl_.parameter_.null_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type data_type = 2;
      {PROTOBUF_FIELD_OFFSET(Type_Parameter, _impl_.parameter_.data_type_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // bool boolean = 3;
      {PROTOBUF_FIELD_OFFSET(Type_Parameter, _impl_.parameter_.boolean_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kBool)},
      // int64 integer = 4;
      {PROTOBUF_FIELD_OFFSET(Type_Parameter, _impl_.parameter_.integer_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kInt64)},
      // string enum = 5;
      {PROTOBUF_FIELD_OFFSET(Type_Parameter, _impl_.parameter_.enum__), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string string = 6;
      {PROTOBUF_FIELD_OFFSET(Type_Parameter, _impl_.parameter_.string_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Empty>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Empty_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
    }},
    {{
      "\30\0\0\0\0\4\6\0"
      "substrait.Type.Parameter"
      "enum"
      "string"
    }},
  };
}


inline constexpr Type_Parameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : parameter_{},
        _cached_size_{0},
        _oneof_case_{} {}

template <typename>
constexpr Type_Parameter::Type_Parameter(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_Parameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_Parameter(arena);
}
constexpr auto Type_Parameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Type_Parameter), alignof(Type_Parameter));
}
constexpr auto Type_Parameter::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_Parameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_Parameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_Parameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_Parameter>(), &Type_Parameter::ByteSizeLong,
              &Type_Parameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_Parameter, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[26],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_ParameterGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_ParameterGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_Parameter_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_Parameter::InternalGenerateClassData_(
            _default, &Type_Parameter_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_Parameter>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_ParameterGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_Parameter _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_Parameter>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_ParameterGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_ParameterGlobalsTypeInternal Type_Parameter_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_Parameter_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_Parameter_globals_.GetClassData();
#else
  return Type_Parameter_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_Struct::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_Struct>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_._has_bits_);
};

constexpr Type_Struct::ParseTableT_ Type_Struct::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_Struct>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .substrait.Type types = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_.types_)}},
      // uint32 type_variation_reference = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Struct, _impl_.type_variation_reference_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_.type_variation_reference_)}},
      // .substrait.Type.Nullability nullability = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_Struct, _impl_.nullability_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_.nullability_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Type types = 1;
      {PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_.types_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 type_variation_reference = 2;
      {PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 3;
      {PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_.nullability_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Type_Struct::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Type_Struct,
            PROTOBUF_FIELD_OFFSET(::substrait::Type_Struct, _impl_.types_)>()
         }
        ,
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_Struct::Type_Struct(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_Struct::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_Struct(arena);
}
constexpr auto Type_Struct::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Type_Struct), alignof(Type_Struct));
}
constexpr auto Type_Struct::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_Struct::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_Struct>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_Struct::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_Struct>(), &Type_Struct::ByteSizeLong,
              &Type_Struct::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[22],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_StructGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_StructGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_Struct_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_Struct::InternalGenerateClassData_(
            _default, &Type_Struct_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_Struct>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_StructGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_Struct _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_Struct>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_StructGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_StructGlobalsTypeInternal Type_Struct_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_Struct_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_Struct_globals_.GetClassData();
#else
  return Type_Struct_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Type_UserDefined::_Internal {
 public:
  using HasBits = decltype(::std::declval<Type_UserDefined>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_._has_bits_);
};

constexpr Type_UserDefined::ParseTableT_ Type_UserDefined::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::Type_UserDefined>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Type.Parameter type_parameters = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 0, 0,
        PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_.type_parameters_)}},
      // uint32 type_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_UserDefined, _impl_.type_reference_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_.type_reference_)}},
      // uint32 type_variation_reference = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_UserDefined, _impl_.type_variation_reference_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_.type_variation_reference_)}},
      // .substrait.Type.Nullability nullability = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Type_UserDefined, _impl_.nullability_), 3>(),
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_.nullability_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_.type_reference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 type_variation_reference = 2;
      {PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Type.Nullability nullability = 3;
      {PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_.nullability_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // repeated .substrait.Type.Parameter type_parameters = 4;
      {PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_.type_parameters_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Parameter>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Parameter_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Type_UserDefined::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_parameters_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Type_UserDefined,
            PROTOBUF_FIELD_OFFSET(::substrait::Type_UserDefined, _impl_.type_parameters_)>()
         }
        ,
        type_reference_{0u},
        type_variation_reference_{0u},
        nullability_{static_cast< ::substrait::Type_Nullability >(0)} {}

template <typename>
constexpr Type_UserDefined::Type_UserDefined(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Type_UserDefined::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Type_UserDefined(arena);
}
constexpr auto Type_UserDefined::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Type_UserDefined), alignof(Type_UserDefined));
}
constexpr auto Type_UserDefined::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Type_UserDefined::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Type_UserDefined>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Type_UserDefined::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Type_UserDefined>(), &Type_UserDefined::ByteSizeLong,
              &Type_UserDefined::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[25],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Type_UserDefinedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Type_UserDefinedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Type_UserDefined_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Type_UserDefined::InternalGenerateClassData_(
            _default, &Type_UserDefined_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Type_UserDefined>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Type_UserDefinedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Type_UserDefined _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Type_UserDefined>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Type_UserDefinedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Type_UserDefinedGlobalsTypeInternal Type_UserDefined_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Type_UserDefined_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Type_UserDefined_globals_.GetClassData();
#else
  return Type_UserDefined_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class NamedStruct::_Internal {
 public:
  using HasBits = decltype(::std::declval<NamedStruct>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NamedStruct, _impl_._has_bits_);
};

constexpr NamedStruct::ParseTableT_ NamedStruct::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(NamedStruct, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::substrait::NamedStruct>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type.Struct struct = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(NamedStruct, _impl_.struct__)}},
      // repeated string names = 1;
      {::_pbi::TcParser::FastUR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(NamedStruct, _impl_.names_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated string names = 1;
      {PROTOBUF_FIELD_OFFSET(NamedStruct, _impl_.names_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
      // .substrait.Type.Struct struct = 2;
      {PROTOBUF_FIELD_OFFSET(NamedStruct, _impl_.struct__), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Struct>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Struct_globals_},
        #endif
    }},
    {{
      "\25\5\0\0\0\0\0\0"
      "substrait.NamedStruct"
      "names"
    }},
  };
}


inline constexpr NamedStruct::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        names_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::NamedStruct,
            PROTOBUF_FIELD_OFFSET(::substrait::NamedStruct, _impl_.names_)>()
         }
        ,
        struct__{nullptr} {}

template <typename>
constexpr NamedStruct::NamedStruct(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL NamedStruct::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NamedStruct(arena);
}
constexpr auto NamedStruct::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(NamedStruct), alignof(NamedStruct));
}
constexpr auto NamedStruct::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &NamedStruct::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NamedStruct>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NamedStruct::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NamedStruct>(), &NamedStruct::ByteSizeLong,
              &NamedStruct::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NamedStruct, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[28],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2ftype_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct NamedStructGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr NamedStructGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 NamedStruct_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(NamedStruct::InternalGenerateClassData_(
            _default, &NamedStruct_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<NamedStruct>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~NamedStructGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) NamedStruct _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<NamedStruct>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(NamedStructGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST NamedStructGlobalsTypeInternal NamedStruct_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* NamedStruct_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return NamedStruct_globals_.GetClassData();
#else
  return NamedStruct_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace substrait
static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
    file_level_enum_descriptors_substrait_2ftype_2eproto[1];
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_service_descriptors_substrait_2ftype_2eproto = nullptr;
const ::uint32_t
    TableStruct_substrait_2ftype_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Boolean, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Boolean, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Boolean, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I8, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I8, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I8, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I16, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I16, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I16, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I32, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I32, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I32, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I64, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I64, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_I64, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FP32, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FP32, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FP32, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FP64, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FP64, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FP64, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_String, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_String, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_String, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Binary, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Binary, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Binary, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Timestamp, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Timestamp, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Timestamp, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Date, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Date, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Date, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Time, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Time, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Time, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_TimestampTZ, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_TimestampTZ, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_TimestampTZ, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_IntervalYear, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_IntervalYear, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_IntervalYear, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_IntervalDay, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_IntervalDay, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_IntervalDay, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_UUID, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_UUID, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_UUID, _impl_.nullability_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FixedChar, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FixedChar, _impl_.length_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FixedChar, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FixedChar, _impl_.nullability_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_VarChar, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_VarChar, _impl_.length_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_VarChar, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_VarChar, _impl_.nullability_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FixedBinary, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FixedBinary, _impl_.length_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FixedBinary, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_FixedBinary, _impl_.nullability_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Decimal, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Decimal, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Decimal, _impl_.precision_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Decimal, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Decimal, _impl_.nullability_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_PrecisionTimestamp, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_PrecisionTimestamp, _impl_.precision_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_PrecisionTimestamp, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_PrecisionTimestamp, _impl_.nullability_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_PrecisionTimestampTZ, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_PrecisionTimestampTZ, _impl_.precision_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_PrecisionTimestampTZ, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_PrecisionTimestampTZ, _impl_.nullability_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Struct, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Struct, _impl_.types_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Struct, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Struct, _impl_.nullability_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_List, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_List, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_List, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_List, _impl_.nullability_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Map, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Map, _impl_.key_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Map, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Map, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Map, _impl_.nullability_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_UserDefined, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Type_UserDefined, _impl_.type_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_UserDefined, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_UserDefined, _impl_.nullability_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_UserDefined, _impl_.type_parameters_),
        1,
        2,
        3,
        0,
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Parameter, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Parameter, _impl_.parameter_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Parameter, _impl_.parameter_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Parameter, _impl_.parameter_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Parameter, _impl_.parameter_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Parameter, _impl_.parameter_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Parameter, _impl_.parameter_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type_Parameter, _impl_.parameter_),
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Type, _impl_.kind_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::NamedStruct, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::NamedStruct, _impl_.names_),
        PROTOBUF_FIELD_OFFSET(::substrait::NamedStruct, _impl_.struct__),
        0,
        1,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::substrait::Type_Boolean)},
        {7, sizeof(::substrait::Type_I8)},
        {14, sizeof(::substrait::Type_I16)},
        {21, sizeof(::substrait::Type_I32)},
        {28, sizeof(::substrait::Type_I64)},
        {35, sizeof(::substrait::Type_FP32)},
        {42, sizeof(::substrait::Type_FP64)},
        {49, sizeof(::substrait::Type_String)},
        {56, sizeof(::substrait::Type_Binary)},
        {63, sizeof(::substrait::Type_Timestamp)},
        {70, sizeof(::substrait::Type_Date)},
        {77, sizeof(::substrait::Type_Time)},
        {84, sizeof(::substrait::Type_TimestampTZ)},
        {91, sizeof(::substrait::Type_IntervalYear)},
        {98, sizeof(::substrait::Type_IntervalDay)},
        {105, sizeof(::substrait::Type_UUID)},
        {112, sizeof(::substrait::Type_FixedChar)},
        {121, sizeof(::substrait::Type_VarChar)},
        {130, sizeof(::substrait::Type_FixedBinary)},
        {139, sizeof(::substrait::Type_Decimal)},
        {150, sizeof(::substrait::Type_PrecisionTimestamp)},
        {159, sizeof(::substrait::Type_PrecisionTimestampTZ)},
        {168, sizeof(::substrait::Type_Struct)},
        {177, sizeof(::substrait::Type_List)},
        {186, sizeof(::substrait::Type_Map)},
        {197, sizeof(::substrait::Type_UserDefined)},
        {208, sizeof(::substrait::Type_Parameter)},
        {217, sizeof(::substrait::Type)},
        {247, sizeof(::substrait::NamedStruct)},
};
static const ::_pbi::MessageGlobalsBase* PROTOBUF_NONNULL const
    file_message_globals[] = {
        &::substrait::Type_Boolean_globals_,
        &::substrait::Type_I8_globals_,
        &::substrait::Type_I16_globals_,
        &::substrait::Type_I32_globals_,
        &::substrait::Type_I64_globals_,
        &::substrait::Type_FP32_globals_,
        &::substrait::Type_FP64_globals_,
        &::substrait::Type_String_globals_,
        &::substrait::Type_Binary_globals_,
        &::substrait::Type_Timestamp_globals_,
        &::substrait::Type_Date_globals_,
        &::substrait::Type_Time_globals_,
        &::substrait::Type_TimestampTZ_globals_,
        &::substrait::Type_IntervalYear_globals_,
        &::substrait::Type_IntervalDay_globals_,
        &::substrait::Type_UUID_globals_,
        &::substrait::Type_FixedChar_globals_,
        &::substrait::Type_VarChar_globals_,
        &::substrait::Type_FixedBinary_globals_,
        &::substrait::Type_Decimal_globals_,
        &::substrait::Type_PrecisionTimestamp_globals_,
        &::substrait::Type_PrecisionTimestampTZ_globals_,
        &::substrait::Type_Struct_globals_,
        &::substrait::Type_List_globals_,
        &::substrait::Type_Map_globals_,
        &::substrait::Type_UserDefined_globals_,
        &::substrait::Type_Parameter_globals_,
        &::substrait::Type_globals_,
        &::substrait::NamedStruct_globals_,
};
const char descriptor_table_protodef_substrait_2ftype_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n\024substrait/type.proto\022\tsubstrait\032\033googl"
    "e/protobuf/empty.proto\"\316!\n\004Type\022\'\n\004bool\030"
    "\001 \001(\0132\027.substrait.Type.BooleanH\000\022 \n\002i8\030\002"
    " \001(\0132\022.substrait.Type.I8H\000\022\"\n\003i16\030\003 \001(\0132"
    "\023.substrait.Type.I16H\000\022\"\n\003i32\030\005 \001(\0132\023.su"
    "bstrait.Type.I32H\000\022\"\n\003i64\030\007 \001(\0132\023.substr"
    "ait.Type.I64H\000\022$\n\004fp32\030\n \001(\0132\024.substrait"
    ".Type.FP32H\000\022$\n\004fp64\030\013 \001(\0132\024.substrait.T"
    "ype.FP64H\000\022(\n\006string\030\014 \001(\0132\026.substrait.T"
    "ype.StringH\000\022(\n\006binary\030\r \001(\0132\026.substrait"
    ".Type.BinaryH\000\0222\n\ttimestamp\030\016 \001(\0132\031.subs"
    "trait.Type.TimestampB\002\030\001H\000\022$\n\004date\030\020 \001(\013"
    "2\024.substrait.Type.DateH\000\022$\n\004time\030\021 \001(\0132\024"
    ".substrait.Type.TimeH\000\0225\n\rinterval_year\030"
    "\023 \001(\0132\034.substrait.Type.IntervalYearH\000\0223\n"
    "\014interval_day\030\024 \001(\0132\033.substrait.Type.Int"
    "ervalDayH\000\0227\n\014timestamp_tz\030\035 \001(\0132\033.subst"
    "rait.Type.TimestampTZB\002\030\001H\000\022$\n\004uuid\030  \001("
    "\0132\024.substrait.Type.UUIDH\000\022/\n\nfixed_char\030"
    "\025 \001(\0132\031.substrait.Type.FixedCharH\000\022*\n\007va"
    "rchar\030\026 \001(\0132\027.substrait.Type.VarCharH\000\0223"
    "\n\014fixed_binary\030\027 \001(\0132\033.substrait.Type.Fi"
    "xedBinaryH\000\022*\n\007decimal\030\030 \001(\0132\027.substrait"
    ".Type.DecimalH\000\022A\n\023precision_timestamp\030!"
    " \001(\0132\".substrait.Type.PrecisionTimestamp"
    "H\000\022F\n\026precision_timestamp_tz\030\" \001(\0132$.sub"
    "strait.Type.PrecisionTimestampTZH\000\022(\n\006st"
    "ruct\030\031 \001(\0132\026.substrait.Type.StructH\000\022$\n\004"
    "list\030\033 \001(\0132\024.substrait.Type.ListH\000\022\"\n\003ma"
    "p\030\034 \001(\0132\023.substrait.Type.MapH\000\0223\n\014user_d"
    "efined\030\036 \001(\0132\033.substrait.Type.UserDefine"
    "dH\000\022)\n\033user_defined_type_reference\030\037 \001(\r"
    "B\002\030\001H\000\032]\n\007Boolean\022 \n\030type_variation_refe"
    "rence\030\001 \001(\r\0220\n\013nullability\030\002 \001(\0162\033.subst"
    "rait.Type.Nullability\032X\n\002I8\022 \n\030type_vari"
    "ation_reference\030\001 \001(\r\0220\n\013nullability\030\002 \001"
    "(\0162\033.substrait.Type.Nullability\032Y\n\003I16\022 "
    "\n\030type_variation_reference\030\001 \001(\r\0220\n\013null"
    "ability\030\002 \001(\0162\033.substrait.Type.Nullabili"
    "ty\032Y\n\003I32\022 \n\030type_variation_reference\030\001 "
    "\001(\r\0220\n\013nullability\030\002 \001(\0162\033.substrait.Typ"
    "e.Nullability\032Y\n\003I64\022 \n\030type_variation_r"
    "eference\030\001 \001(\r\0220\n\013nullability\030\002 \001(\0162\033.su"
    "bstrait.Type.Nullability\032Z\n\004FP32\022 \n\030type"
    "_variation_reference\030\001 \001(\r\0220\n\013nullabilit"
    "y\030\002 \001(\0162\033.substrait.Type.Nullability\032Z\n\004"
    "FP64\022 \n\030type_variation_reference\030\001 \001(\r\0220"
    "\n\013nullability\030\002 \001(\0162\033.substrait.Type.Nul"
    "lability\032\\\n\006String\022 \n\030type_variation_ref"
    "erence\030\001 \001(\r\0220\n\013nullability\030\002 \001(\0162\033.subs"
    "trait.Type.Nullability\032\\\n\006Binary\022 \n\030type"
    "_variation_reference\030\001 \001(\r\0220\n\013nullabilit"
    "y\030\002 \001(\0162\033.substrait.Type.Nullability\032_\n\t"
    "Timestamp\022 \n\030type_variation_reference\030\001 "
    "\001(\r\0220\n\013nullability\030\002 \001(\0162\033.substrait.Typ"
    "e.Nullability\032Z\n\004Date\022 \n\030type_variation_"
    "reference\030\001 \001(\r\0220\n\013nullability\030\002 \001(\0162\033.s"
    "ubstrait.Type.Nullability\032Z\n\004Time\022 \n\030typ"
    "e_variation_reference\030\001 \001(\r\0220\n\013nullabili"
    "ty\030\002 \001(\0162\033.substrait.Type.Nullability\032a\n"
    "\013TimestampTZ\022 \n\030type_variation_reference"
    "\030\001 \001(\r\0220\n\013nullability\030\002 \001(\0162\033.substrait."
    "Type.Nullability\032b\n\014IntervalYear\022 \n\030type"
    "_variation_reference\030\001 \001(\r\0220\n\013nullabilit"
    "y\030\002 \001(\0162\033.substrait.Type.Nullability\032a\n\013"
    "IntervalDay\022 \n\030type_variation_reference\030"
    "\001 \001(\r\0220\n\013nullability\030\002 \001(\0162\033.substrait.T"
    "ype.Nullability\032Z\n\004UUID\022 \n\030type_variatio"
    "n_reference\030\001 \001(\r\0220\n\013nullability\030\002 \001(\0162\033"
    ".substrait.Type.Nullability\032o\n\tFixedChar"
    "\022\016\n\006length\030\001 \001(\005\022 \n\030type_variation_refer"
    "ence\030\002 \001(\r\0220\n\013nullability\030\003 \001(\0162\033.substr"
    "ait.Type.Nullability\032m\n\007VarChar\022\016\n\006lengt"
    "h\030\001 \001(\005\022 \n\030type_variation_reference\030\002 \001("
    "\r\0220\n\013nullability\030\003 \001(\0162\033.substrait.Type."
    "Nullability\032q\n\013FixedBinary\022\016\n\006length\030\001 \001"
    "(\005\022 \n\030type_variation_reference\030\002 \001(\r\0220\n\013"
    "nullability\030\003 \001(\0162\033.substrait.Type.Nulla"
    "bility\032\177\n\007Decimal\022\r\n\005scale\030\001 \001(\005\022\021\n\tprec"
    "ision\030\002 \001(\005\022 \n\030type_variation_reference\030"
    "\003 \001(\r\0220\n\013nullability\030\004 \001(\0162\033.substrait.T"
    "ype.Nullability\032{\n\022PrecisionTimestamp\022\021\n"
    "\tprecision\030\001 \001(\005\022 \n\030type_variation_refer"
    "ence\030\002 \001(\r\0220\n\013nullability\030\003 \001(\0162\033.substr"
    "ait.Type.Nullability\032}\n\024PrecisionTimesta"
    "mpTZ\022\021\n\tprecision\030\001 \001(\005\022 \n\030type_variatio"
    "n_reference\030\002 \001(\r\0220\n\013nullability\030\003 \001(\0162\033"
    ".substrait.Type.Nullability\032|\n\006Struct\022\036\n"
    "\005types\030\001 \003(\0132\017.substrait.Type\022 \n\030type_va"
    "riation_reference\030\002 \001(\r\0220\n\013nullability\030\003"
    " \001(\0162\033.substrait.Type.Nullability\032y\n\004Lis"
    "t\022\035\n\004type\030\001 \001(\0132\017.substrait.Type\022 \n\030type"
    "_variation_reference\030\002 \001(\r\0220\n\013nullabilit"
    "y\030\003 \001(\0162\033.substrait.Type.Nullability\032\227\001\n"
    "\003Map\022\034\n\003key\030\001 \001(\0132\017.substrait.Type\022\036\n\005va"
    "lue\030\002 \001(\0132\017.substrait.Type\022 \n\030type_varia"
    "tion_reference\030\003 \001(\r\0220\n\013nullability\030\004 \001("
    "\0162\033.substrait.Type.Nullability\032\255\001\n\013UserD"
    "efined\022\026\n\016type_reference\030\001 \001(\r\022 \n\030type_v"
    "ariation_reference\030\002 \001(\r\0220\n\013nullability\030"
    "\003 \001(\0162\033.substrait.Type.Nullability\0222\n\017ty"
    "pe_parameters\030\004 \003(\0132\031.substrait.Type.Par"
    "ameter\032\256\001\n\tParameter\022&\n\004null\030\001 \001(\0132\026.goo"
    "gle.protobuf.EmptyH\000\022$\n\tdata_type\030\002 \001(\0132"
    "\017.substrait.TypeH\000\022\021\n\007boolean\030\003 \001(\010H\000\022\021\n"
    "\007integer\030\004 \001(\003H\000\022\016\n\004enum\030\005 \001(\tH\000\022\020\n\006stri"
    "ng\030\006 \001(\tH\000B\013\n\tparameter\"^\n\013Nullability\022\033"
    "\n\027NULLABILITY_UNSPECIFIED\020\000\022\030\n\024NULLABILI"
    "TY_NULLABLE\020\001\022\030\n\024NULLABILITY_REQUIRED\020\002B"
    "\006\n\004kind\"D\n\013NamedStruct\022\r\n\005names\030\001 \003(\t\022&\n"
    "\006struct\030\002 \001(\0132\026.substrait.Type.StructBW\n"
    "\022io.substrait.protoP\001Z*github.com/substr"
    "ait-io/substrait-go/proto\252\002\022Substrait.Pr"
    "otobufb\006proto3"
};
static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL const
    descriptor_table_substrait_2ftype_2eproto_deps[1] = {
        &::descriptor_table_google_2fprotobuf_2fempty_2eproto,
};
static ::absl::once_flag descriptor_table_substrait_2ftype_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_substrait_2ftype_2eproto = {
    false,
    false,
    4534,
    descriptor_table_protodef_substrait_2ftype_2eproto,
    "substrait/type.proto",
    &descriptor_table_substrait_2ftype_2eproto_once,
    descriptor_table_substrait_2ftype_2eproto_deps,
    1,
    29,
    schemas,
    file_message_globals,
    TableStruct_substrait_2ftype_2eproto::offsets,
    file_level_enum_descriptors_substrait_2ftype_2eproto,
    file_level_service_descriptors_substrait_2ftype_2eproto,
};
namespace substrait {
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Type_Nullability_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2ftype_2eproto);
  return file_level_enum_descriptors_substrait_2ftype_2eproto[0];
}
PROTOBUF_CONSTINIT const uint32_t Type_Nullability_internal_data_[] = {
    196608u, 0u, };
// ===================================================================

Type_Boolean::Type_Boolean(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Boolean_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.Boolean)
}
Type_Boolean::Type_Boolean(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_Boolean& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Boolean_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_Boolean::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_Boolean::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_Boolean::~Type_Boolean() {
  // @@protoc_insertion_point(destructor:substrait.Type.Boolean)
  SharedDtor(*this);
}
inline void Type_Boolean::SharedDtor(MessageLite& self) {
  Type_Boolean& this_ = static_cast<Type_Boolean&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_Boolean_class_data_ =
        Type_Boolean::InternalGenerateClassData_(Type_Boolean_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Boolean::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Boolean_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_Boolean_class_data_.tc_table);
  return Type_Boolean_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Boolean::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Boolean_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_Boolean_globals_));
  return Type_Boolean_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_Boolean::ParseTableT_
    Type_Boolean::_table_ =
        Type_Boolean::InternalGenerateParseTable_(Type_Boolean_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_Boolean::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.Boolean)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_Boolean::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_Boolean& this_ = static_cast<const Type_Boolean&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_Boolean::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_Boolean& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.Boolean)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.Boolean)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_Boolean::ByteSizeLong(const MessageLite& base) {
  const Type_Boolean& this_ = static_cast<const Type_Boolean&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_Boolean::ByteSizeLong() const {
  const Type_Boolean& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.Boolean)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_Boolean::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_Boolean*>(&to_msg);
  auto& from = static_cast<const Type_Boolean&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.Boolean)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_Boolean::CopyFrom(const Type_Boolean& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.Boolean)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_Boolean::InternalSwap(Type_Boolean* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_Boolean, _impl_.nullability_)
      + sizeof(Type_Boolean::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_Boolean, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_Boolean::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_I8::Type_I8(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_I8_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.I8)
}
Type_I8::Type_I8(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_I8& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_I8_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_I8::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_I8::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_I8::~Type_I8() {
  // @@protoc_insertion_point(destructor:substrait.Type.I8)
  SharedDtor(*this);
}
inline void Type_I8::SharedDtor(MessageLite& self) {
  Type_I8& this_ = static_cast<Type_I8&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_I8_class_data_ =
        Type_I8::InternalGenerateClassData_(Type_I8_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_I8::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_I8_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_I8_class_data_.tc_table);
  return Type_I8_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_I8::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_I8_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_I8_globals_));
  return Type_I8_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_I8::ParseTableT_
    Type_I8::_table_ =
        Type_I8::InternalGenerateParseTable_(Type_I8_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_I8::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.I8)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_I8::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_I8& this_ = static_cast<const Type_I8&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_I8::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_I8& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.I8)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.I8)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_I8::ByteSizeLong(const MessageLite& base) {
  const Type_I8& this_ = static_cast<const Type_I8&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_I8::ByteSizeLong() const {
  const Type_I8& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.I8)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_I8::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_I8*>(&to_msg);
  auto& from = static_cast<const Type_I8&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.I8)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_I8::CopyFrom(const Type_I8& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.I8)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_I8::InternalSwap(Type_I8* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_I8, _impl_.nullability_)
      + sizeof(Type_I8::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_I8, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_I8::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_I16::Type_I16(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_I16_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.I16)
}
Type_I16::Type_I16(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_I16& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_I16_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_I16::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_I16::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_I16::~Type_I16() {
  // @@protoc_insertion_point(destructor:substrait.Type.I16)
  SharedDtor(*this);
}
inline void Type_I16::SharedDtor(MessageLite& self) {
  Type_I16& this_ = static_cast<Type_I16&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_I16_class_data_ =
        Type_I16::InternalGenerateClassData_(Type_I16_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_I16::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_I16_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_I16_class_data_.tc_table);
  return Type_I16_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_I16::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_I16_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_I16_globals_));
  return Type_I16_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_I16::ParseTableT_
    Type_I16::_table_ =
        Type_I16::InternalGenerateParseTable_(Type_I16_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_I16::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.I16)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_I16::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_I16& this_ = static_cast<const Type_I16&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_I16::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_I16& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.I16)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.I16)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_I16::ByteSizeLong(const MessageLite& base) {
  const Type_I16& this_ = static_cast<const Type_I16&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_I16::ByteSizeLong() const {
  const Type_I16& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.I16)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_I16::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_I16*>(&to_msg);
  auto& from = static_cast<const Type_I16&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.I16)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_I16::CopyFrom(const Type_I16& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.I16)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_I16::InternalSwap(Type_I16* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_I16, _impl_.nullability_)
      + sizeof(Type_I16::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_I16, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_I16::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_I32::Type_I32(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_I32_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.I32)
}
Type_I32::Type_I32(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_I32& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_I32_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_I32::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_I32::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_I32::~Type_I32() {
  // @@protoc_insertion_point(destructor:substrait.Type.I32)
  SharedDtor(*this);
}
inline void Type_I32::SharedDtor(MessageLite& self) {
  Type_I32& this_ = static_cast<Type_I32&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_I32_class_data_ =
        Type_I32::InternalGenerateClassData_(Type_I32_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_I32::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_I32_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_I32_class_data_.tc_table);
  return Type_I32_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_I32::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_I32_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_I32_globals_));
  return Type_I32_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_I32::ParseTableT_
    Type_I32::_table_ =
        Type_I32::InternalGenerateParseTable_(Type_I32_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_I32::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.I32)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_I32::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_I32& this_ = static_cast<const Type_I32&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_I32::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_I32& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.I32)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.I32)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_I32::ByteSizeLong(const MessageLite& base) {
  const Type_I32& this_ = static_cast<const Type_I32&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_I32::ByteSizeLong() const {
  const Type_I32& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.I32)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_I32::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_I32*>(&to_msg);
  auto& from = static_cast<const Type_I32&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.I32)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_I32::CopyFrom(const Type_I32& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.I32)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_I32::InternalSwap(Type_I32* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_I32, _impl_.nullability_)
      + sizeof(Type_I32::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_I32, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_I32::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_I64::Type_I64(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_I64_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.I64)
}
Type_I64::Type_I64(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_I64& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_I64_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_I64::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_I64::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_I64::~Type_I64() {
  // @@protoc_insertion_point(destructor:substrait.Type.I64)
  SharedDtor(*this);
}
inline void Type_I64::SharedDtor(MessageLite& self) {
  Type_I64& this_ = static_cast<Type_I64&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_I64_class_data_ =
        Type_I64::InternalGenerateClassData_(Type_I64_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_I64::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_I64_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_I64_class_data_.tc_table);
  return Type_I64_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_I64::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_I64_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_I64_globals_));
  return Type_I64_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_I64::ParseTableT_
    Type_I64::_table_ =
        Type_I64::InternalGenerateParseTable_(Type_I64_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_I64::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.I64)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_I64::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_I64& this_ = static_cast<const Type_I64&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_I64::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_I64& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.I64)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.I64)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_I64::ByteSizeLong(const MessageLite& base) {
  const Type_I64& this_ = static_cast<const Type_I64&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_I64::ByteSizeLong() const {
  const Type_I64& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.I64)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_I64::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_I64*>(&to_msg);
  auto& from = static_cast<const Type_I64&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.I64)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_I64::CopyFrom(const Type_I64& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.I64)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_I64::InternalSwap(Type_I64* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_I64, _impl_.nullability_)
      + sizeof(Type_I64::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_I64, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_I64::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_FP32::Type_FP32(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_FP32_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.FP32)
}
Type_FP32::Type_FP32(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_FP32& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_FP32_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_FP32::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_FP32::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_FP32::~Type_FP32() {
  // @@protoc_insertion_point(destructor:substrait.Type.FP32)
  SharedDtor(*this);
}
inline void Type_FP32::SharedDtor(MessageLite& self) {
  Type_FP32& this_ = static_cast<Type_FP32&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_FP32_class_data_ =
        Type_FP32::InternalGenerateClassData_(Type_FP32_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_FP32::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_FP32_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_FP32_class_data_.tc_table);
  return Type_FP32_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_FP32::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_FP32_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_FP32_globals_));
  return Type_FP32_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_FP32::ParseTableT_
    Type_FP32::_table_ =
        Type_FP32::InternalGenerateParseTable_(Type_FP32_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_FP32::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.FP32)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_FP32::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_FP32& this_ = static_cast<const Type_FP32&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_FP32::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_FP32& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.FP32)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.FP32)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_FP32::ByteSizeLong(const MessageLite& base) {
  const Type_FP32& this_ = static_cast<const Type_FP32&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_FP32::ByteSizeLong() const {
  const Type_FP32& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.FP32)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_FP32::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_FP32*>(&to_msg);
  auto& from = static_cast<const Type_FP32&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.FP32)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_FP32::CopyFrom(const Type_FP32& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.FP32)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_FP32::InternalSwap(Type_FP32* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_FP32, _impl_.nullability_)
      + sizeof(Type_FP32::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_FP32, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_FP32::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_FP64::Type_FP64(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_FP64_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.FP64)
}
Type_FP64::Type_FP64(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_FP64& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_FP64_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_FP64::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_FP64::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_FP64::~Type_FP64() {
  // @@protoc_insertion_point(destructor:substrait.Type.FP64)
  SharedDtor(*this);
}
inline void Type_FP64::SharedDtor(MessageLite& self) {
  Type_FP64& this_ = static_cast<Type_FP64&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_FP64_class_data_ =
        Type_FP64::InternalGenerateClassData_(Type_FP64_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_FP64::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_FP64_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_FP64_class_data_.tc_table);
  return Type_FP64_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_FP64::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_FP64_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_FP64_globals_));
  return Type_FP64_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_FP64::ParseTableT_
    Type_FP64::_table_ =
        Type_FP64::InternalGenerateParseTable_(Type_FP64_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_FP64::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.FP64)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_FP64::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_FP64& this_ = static_cast<const Type_FP64&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_FP64::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_FP64& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.FP64)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.FP64)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_FP64::ByteSizeLong(const MessageLite& base) {
  const Type_FP64& this_ = static_cast<const Type_FP64&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_FP64::ByteSizeLong() const {
  const Type_FP64& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.FP64)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_FP64::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_FP64*>(&to_msg);
  auto& from = static_cast<const Type_FP64&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.FP64)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_FP64::CopyFrom(const Type_FP64& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.FP64)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_FP64::InternalSwap(Type_FP64* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_FP64, _impl_.nullability_)
      + sizeof(Type_FP64::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_FP64, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_FP64::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_String::Type_String(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_String_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.String)
}
Type_String::Type_String(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_String& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_String_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_String::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_String::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_String::~Type_String() {
  // @@protoc_insertion_point(destructor:substrait.Type.String)
  SharedDtor(*this);
}
inline void Type_String::SharedDtor(MessageLite& self) {
  Type_String& this_ = static_cast<Type_String&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_String_class_data_ =
        Type_String::InternalGenerateClassData_(Type_String_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_String::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_String_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_String_class_data_.tc_table);
  return Type_String_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_String::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_String_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_String_globals_));
  return Type_String_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_String::ParseTableT_
    Type_String::_table_ =
        Type_String::InternalGenerateParseTable_(Type_String_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_String::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.String)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_String::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_String& this_ = static_cast<const Type_String&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_String::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_String& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.String)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.String)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_String::ByteSizeLong(const MessageLite& base) {
  const Type_String& this_ = static_cast<const Type_String&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_String::ByteSizeLong() const {
  const Type_String& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.String)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_String::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_String*>(&to_msg);
  auto& from = static_cast<const Type_String&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.String)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_String::CopyFrom(const Type_String& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.String)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_String::InternalSwap(Type_String* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_String, _impl_.nullability_)
      + sizeof(Type_String::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_String, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_String::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_Binary::Type_Binary(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Binary_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.Binary)
}
Type_Binary::Type_Binary(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_Binary& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Binary_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_Binary::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_Binary::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_Binary::~Type_Binary() {
  // @@protoc_insertion_point(destructor:substrait.Type.Binary)
  SharedDtor(*this);
}
inline void Type_Binary::SharedDtor(MessageLite& self) {
  Type_Binary& this_ = static_cast<Type_Binary&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_Binary_class_data_ =
        Type_Binary::InternalGenerateClassData_(Type_Binary_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Binary::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Binary_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_Binary_class_data_.tc_table);
  return Type_Binary_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Binary::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Binary_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_Binary_globals_));
  return Type_Binary_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_Binary::ParseTableT_
    Type_Binary::_table_ =
        Type_Binary::InternalGenerateParseTable_(Type_Binary_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_Binary::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.Binary)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_Binary::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_Binary& this_ = static_cast<const Type_Binary&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_Binary::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_Binary& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.Binary)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.Binary)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_Binary::ByteSizeLong(const MessageLite& base) {
  const Type_Binary& this_ = static_cast<const Type_Binary&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_Binary::ByteSizeLong() const {
  const Type_Binary& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.Binary)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_Binary::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_Binary*>(&to_msg);
  auto& from = static_cast<const Type_Binary&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.Binary)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_Binary::CopyFrom(const Type_Binary& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.Binary)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_Binary::InternalSwap(Type_Binary* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_Binary, _impl_.nullability_)
      + sizeof(Type_Binary::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_Binary, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_Binary::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_Timestamp::Type_Timestamp(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Timestamp_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.Timestamp)
}
Type_Timestamp::Type_Timestamp(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_Timestamp& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Timestamp_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_Timestamp::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_Timestamp::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_Timestamp::~Type_Timestamp() {
  // @@protoc_insertion_point(destructor:substrait.Type.Timestamp)
  SharedDtor(*this);
}
inline void Type_Timestamp::SharedDtor(MessageLite& self) {
  Type_Timestamp& this_ = static_cast<Type_Timestamp&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_Timestamp_class_data_ =
        Type_Timestamp::InternalGenerateClassData_(Type_Timestamp_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Timestamp::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Timestamp_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_Timestamp_class_data_.tc_table);
  return Type_Timestamp_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Timestamp::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Timestamp_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_Timestamp_globals_));
  return Type_Timestamp_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_Timestamp::ParseTableT_
    Type_Timestamp::_table_ =
        Type_Timestamp::InternalGenerateParseTable_(Type_Timestamp_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_Timestamp::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.Timestamp)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_Timestamp::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_Timestamp& this_ = static_cast<const Type_Timestamp&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_Timestamp::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_Timestamp& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.Timestamp)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.Timestamp)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_Timestamp::ByteSizeLong(const MessageLite& base) {
  const Type_Timestamp& this_ = static_cast<const Type_Timestamp&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_Timestamp::ByteSizeLong() const {
  const Type_Timestamp& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.Timestamp)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_Timestamp::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_Timestamp*>(&to_msg);
  auto& from = static_cast<const Type_Timestamp&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.Timestamp)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_Timestamp::CopyFrom(const Type_Timestamp& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.Timestamp)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_Timestamp::InternalSwap(Type_Timestamp* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_Timestamp, _impl_.nullability_)
      + sizeof(Type_Timestamp::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_Timestamp, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_Timestamp::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_Date::Type_Date(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Date_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.Date)
}
Type_Date::Type_Date(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_Date& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Date_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_Date::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_Date::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_Date::~Type_Date() {
  // @@protoc_insertion_point(destructor:substrait.Type.Date)
  SharedDtor(*this);
}
inline void Type_Date::SharedDtor(MessageLite& self) {
  Type_Date& this_ = static_cast<Type_Date&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_Date_class_data_ =
        Type_Date::InternalGenerateClassData_(Type_Date_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Date::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Date_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_Date_class_data_.tc_table);
  return Type_Date_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Date::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Date_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_Date_globals_));
  return Type_Date_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_Date::ParseTableT_
    Type_Date::_table_ =
        Type_Date::InternalGenerateParseTable_(Type_Date_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_Date::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.Date)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_Date::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_Date& this_ = static_cast<const Type_Date&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_Date::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_Date& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.Date)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.Date)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_Date::ByteSizeLong(const MessageLite& base) {
  const Type_Date& this_ = static_cast<const Type_Date&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_Date::ByteSizeLong() const {
  const Type_Date& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.Date)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_Date::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_Date*>(&to_msg);
  auto& from = static_cast<const Type_Date&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.Date)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_Date::CopyFrom(const Type_Date& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.Date)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_Date::InternalSwap(Type_Date* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_Date, _impl_.nullability_)
      + sizeof(Type_Date::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_Date, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_Date::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_Time::Type_Time(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Time_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.Time)
}
Type_Time::Type_Time(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_Time& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Time_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_Time::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_Time::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_Time::~Type_Time() {
  // @@protoc_insertion_point(destructor:substrait.Type.Time)
  SharedDtor(*this);
}
inline void Type_Time::SharedDtor(MessageLite& self) {
  Type_Time& this_ = static_cast<Type_Time&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_Time_class_data_ =
        Type_Time::InternalGenerateClassData_(Type_Time_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Time::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Time_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_Time_class_data_.tc_table);
  return Type_Time_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Time::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Time_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_Time_globals_));
  return Type_Time_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_Time::ParseTableT_
    Type_Time::_table_ =
        Type_Time::InternalGenerateParseTable_(Type_Time_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_Time::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.Time)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_Time::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_Time& this_ = static_cast<const Type_Time&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_Time::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_Time& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.Time)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.Time)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_Time::ByteSizeLong(const MessageLite& base) {
  const Type_Time& this_ = static_cast<const Type_Time&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_Time::ByteSizeLong() const {
  const Type_Time& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.Time)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_Time::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_Time*>(&to_msg);
  auto& from = static_cast<const Type_Time&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.Time)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_Time::CopyFrom(const Type_Time& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.Time)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_Time::InternalSwap(Type_Time* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_Time, _impl_.nullability_)
      + sizeof(Type_Time::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_Time, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_Time::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_TimestampTZ::Type_TimestampTZ(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_TimestampTZ_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.TimestampTZ)
}
Type_TimestampTZ::Type_TimestampTZ(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_TimestampTZ& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_TimestampTZ_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_TimestampTZ::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_TimestampTZ::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_TimestampTZ::~Type_TimestampTZ() {
  // @@protoc_insertion_point(destructor:substrait.Type.TimestampTZ)
  SharedDtor(*this);
}
inline void Type_TimestampTZ::SharedDtor(MessageLite& self) {
  Type_TimestampTZ& this_ = static_cast<Type_TimestampTZ&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_TimestampTZ_class_data_ =
        Type_TimestampTZ::InternalGenerateClassData_(Type_TimestampTZ_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_TimestampTZ::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_TimestampTZ_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_TimestampTZ_class_data_.tc_table);
  return Type_TimestampTZ_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_TimestampTZ::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_TimestampTZ_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_TimestampTZ_globals_));
  return Type_TimestampTZ_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_TimestampTZ::ParseTableT_
    Type_TimestampTZ::_table_ =
        Type_TimestampTZ::InternalGenerateParseTable_(Type_TimestampTZ_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_TimestampTZ::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.TimestampTZ)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_TimestampTZ::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_TimestampTZ& this_ = static_cast<const Type_TimestampTZ&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_TimestampTZ::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_TimestampTZ& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.TimestampTZ)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.TimestampTZ)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_TimestampTZ::ByteSizeLong(const MessageLite& base) {
  const Type_TimestampTZ& this_ = static_cast<const Type_TimestampTZ&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_TimestampTZ::ByteSizeLong() const {
  const Type_TimestampTZ& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.TimestampTZ)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_TimestampTZ::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_TimestampTZ*>(&to_msg);
  auto& from = static_cast<const Type_TimestampTZ&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.TimestampTZ)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_TimestampTZ::CopyFrom(const Type_TimestampTZ& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.TimestampTZ)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_TimestampTZ::InternalSwap(Type_TimestampTZ* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_TimestampTZ, _impl_.nullability_)
      + sizeof(Type_TimestampTZ::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_TimestampTZ, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_TimestampTZ::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_IntervalYear::Type_IntervalYear(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_IntervalYear_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.IntervalYear)
}
Type_IntervalYear::Type_IntervalYear(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_IntervalYear& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_IntervalYear_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_IntervalYear::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_IntervalYear::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_IntervalYear::~Type_IntervalYear() {
  // @@protoc_insertion_point(destructor:substrait.Type.IntervalYear)
  SharedDtor(*this);
}
inline void Type_IntervalYear::SharedDtor(MessageLite& self) {
  Type_IntervalYear& this_ = static_cast<Type_IntervalYear&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_IntervalYear_class_data_ =
        Type_IntervalYear::InternalGenerateClassData_(Type_IntervalYear_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_IntervalYear::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_IntervalYear_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_IntervalYear_class_data_.tc_table);
  return Type_IntervalYear_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_IntervalYear::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_IntervalYear_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_IntervalYear_globals_));
  return Type_IntervalYear_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_IntervalYear::ParseTableT_
    Type_IntervalYear::_table_ =
        Type_IntervalYear::InternalGenerateParseTable_(Type_IntervalYear_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_IntervalYear::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.IntervalYear)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_IntervalYear::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_IntervalYear& this_ = static_cast<const Type_IntervalYear&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_IntervalYear::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_IntervalYear& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.IntervalYear)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.IntervalYear)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_IntervalYear::ByteSizeLong(const MessageLite& base) {
  const Type_IntervalYear& this_ = static_cast<const Type_IntervalYear&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_IntervalYear::ByteSizeLong() const {
  const Type_IntervalYear& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.IntervalYear)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_IntervalYear::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_IntervalYear*>(&to_msg);
  auto& from = static_cast<const Type_IntervalYear&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.IntervalYear)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_IntervalYear::CopyFrom(const Type_IntervalYear& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.IntervalYear)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_IntervalYear::InternalSwap(Type_IntervalYear* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_IntervalYear, _impl_.nullability_)
      + sizeof(Type_IntervalYear::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_IntervalYear, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_IntervalYear::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_IntervalDay::Type_IntervalDay(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_IntervalDay_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.IntervalDay)
}
Type_IntervalDay::Type_IntervalDay(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_IntervalDay& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_IntervalDay_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_IntervalDay::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_IntervalDay::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_IntervalDay::~Type_IntervalDay() {
  // @@protoc_insertion_point(destructor:substrait.Type.IntervalDay)
  SharedDtor(*this);
}
inline void Type_IntervalDay::SharedDtor(MessageLite& self) {
  Type_IntervalDay& this_ = static_cast<Type_IntervalDay&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_IntervalDay_class_data_ =
        Type_IntervalDay::InternalGenerateClassData_(Type_IntervalDay_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_IntervalDay::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_IntervalDay_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_IntervalDay_class_data_.tc_table);
  return Type_IntervalDay_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_IntervalDay::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_IntervalDay_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_IntervalDay_globals_));
  return Type_IntervalDay_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_IntervalDay::ParseTableT_
    Type_IntervalDay::_table_ =
        Type_IntervalDay::InternalGenerateParseTable_(Type_IntervalDay_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_IntervalDay::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.IntervalDay)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_IntervalDay::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_IntervalDay& this_ = static_cast<const Type_IntervalDay&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_IntervalDay::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_IntervalDay& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.IntervalDay)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.IntervalDay)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_IntervalDay::ByteSizeLong(const MessageLite& base) {
  const Type_IntervalDay& this_ = static_cast<const Type_IntervalDay&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_IntervalDay::ByteSizeLong() const {
  const Type_IntervalDay& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.IntervalDay)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_IntervalDay::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_IntervalDay*>(&to_msg);
  auto& from = static_cast<const Type_IntervalDay&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.IntervalDay)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_IntervalDay::CopyFrom(const Type_IntervalDay& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.IntervalDay)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_IntervalDay::InternalSwap(Type_IntervalDay* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_IntervalDay, _impl_.nullability_)
      + sizeof(Type_IntervalDay::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_IntervalDay, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_IntervalDay::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_UUID::Type_UUID(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_UUID_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.UUID)
}
Type_UUID::Type_UUID(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_UUID& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_UUID_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_UUID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_UUID::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_UUID::~Type_UUID() {
  // @@protoc_insertion_point(destructor:substrait.Type.UUID)
  SharedDtor(*this);
}
inline void Type_UUID::SharedDtor(MessageLite& self) {
  Type_UUID& this_ = static_cast<Type_UUID&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_UUID_class_data_ =
        Type_UUID::InternalGenerateClassData_(Type_UUID_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_UUID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_UUID_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_UUID_class_data_.tc_table);
  return Type_UUID_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_UUID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_UUID_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_UUID_globals_));
  return Type_UUID_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_UUID::ParseTableT_
    Type_UUID::_table_ =
        Type_UUID::InternalGenerateParseTable_(Type_UUID_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_UUID::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.UUID)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_UUID::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_UUID& this_ = static_cast<const Type_UUID&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_UUID::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_UUID& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.UUID)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_variation_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.UUID)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_UUID::ByteSizeLong(const MessageLite& base) {
  const Type_UUID& this_ = static_cast<const Type_UUID&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_UUID::ByteSizeLong() const {
  const Type_UUID& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.UUID)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 type_variation_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_UUID::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_UUID*>(&to_msg);
  auto& from = static_cast<const Type_UUID&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.UUID)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_UUID::CopyFrom(const Type_UUID& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.UUID)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_UUID::InternalSwap(Type_UUID* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_UUID, _impl_.nullability_)
      + sizeof(Type_UUID::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_UUID, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_UUID::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_FixedChar::Type_FixedChar(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_FixedChar_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.FixedChar)
}
Type_FixedChar::Type_FixedChar(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_FixedChar& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_FixedChar_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_FixedChar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_FixedChar::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, length_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, length_) +
               sizeof(Impl_::nullability_));
}
Type_FixedChar::~Type_FixedChar() {
  // @@protoc_insertion_point(destructor:substrait.Type.FixedChar)
  SharedDtor(*this);
}
inline void Type_FixedChar::SharedDtor(MessageLite& self) {
  Type_FixedChar& this_ = static_cast<Type_FixedChar&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_FixedChar_class_data_ =
        Type_FixedChar::InternalGenerateClassData_(Type_FixedChar_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_FixedChar::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_FixedChar_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_FixedChar_class_data_.tc_table);
  return Type_FixedChar_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_FixedChar::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_FixedChar_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_FixedChar_globals_));
  return Type_FixedChar_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_FixedChar::ParseTableT_
    Type_FixedChar::_table_ =
        Type_FixedChar::InternalGenerateParseTable_(Type_FixedChar_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_FixedChar::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.FixedChar)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    ::memset(&_impl_.length_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.length_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_FixedChar::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_FixedChar& this_ = static_cast<const Type_FixedChar&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_FixedChar::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_FixedChar& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.FixedChar)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // int32 length = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_length() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
              stream, this_._internal_length(), target);
    }
  }

  // uint32 type_variation_reference = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.FixedChar)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_FixedChar::ByteSizeLong(const MessageLite& base) {
  const Type_FixedChar& this_ = static_cast<const Type_FixedChar&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_FixedChar::ByteSizeLong() const {
  const Type_FixedChar& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.FixedChar)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // int32 length = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_length() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_length());
      }
    }
    // uint32 type_variation_reference = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_FixedChar::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_FixedChar*>(&to_msg);
  auto& from = static_cast<const Type_FixedChar&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.FixedChar)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_length() != 0) {
        _this->_impl_.length_ = from._impl_.length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_FixedChar::CopyFrom(const Type_FixedChar& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.FixedChar)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_FixedChar::InternalSwap(Type_FixedChar* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_.nullability_)
      + sizeof(Type_FixedChar::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_FixedChar, _impl_.length_)>(
          reinterpret_cast<char*>(&_impl_.length_),
          reinterpret_cast<char*>(&other->_impl_.length_));
}

::google::protobuf::Metadata Type_FixedChar::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_VarChar::Type_VarChar(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_VarChar_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.VarChar)
}
Type_VarChar::Type_VarChar(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_VarChar& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_VarChar_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_VarChar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_VarChar::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, length_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, length_) +
               sizeof(Impl_::nullability_));
}
Type_VarChar::~Type_VarChar() {
  // @@protoc_insertion_point(destructor:substrait.Type.VarChar)
  SharedDtor(*this);
}
inline void Type_VarChar::SharedDtor(MessageLite& self) {
  Type_VarChar& this_ = static_cast<Type_VarChar&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_VarChar_class_data_ =
        Type_VarChar::InternalGenerateClassData_(Type_VarChar_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_VarChar::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_VarChar_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_VarChar_class_data_.tc_table);
  return Type_VarChar_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_VarChar::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_VarChar_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_VarChar_globals_));
  return Type_VarChar_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_VarChar::ParseTableT_
    Type_VarChar::_table_ =
        Type_VarChar::InternalGenerateParseTable_(Type_VarChar_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_VarChar::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.VarChar)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    ::memset(&_impl_.length_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.length_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_VarChar::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_VarChar& this_ = static_cast<const Type_VarChar&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_VarChar::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_VarChar& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.VarChar)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // int32 length = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_length() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
              stream, this_._internal_length(), target);
    }
  }

  // uint32 type_variation_reference = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.VarChar)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_VarChar::ByteSizeLong(const MessageLite& base) {
  const Type_VarChar& this_ = static_cast<const Type_VarChar&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_VarChar::ByteSizeLong() const {
  const Type_VarChar& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.VarChar)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // int32 length = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_length() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_length());
      }
    }
    // uint32 type_variation_reference = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_VarChar::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_VarChar*>(&to_msg);
  auto& from = static_cast<const Type_VarChar&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.VarChar)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_length() != 0) {
        _this->_impl_.length_ = from._impl_.length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_VarChar::CopyFrom(const Type_VarChar& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.VarChar)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_VarChar::InternalSwap(Type_VarChar* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_.nullability_)
      + sizeof(Type_VarChar::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_VarChar, _impl_.length_)>(
          reinterpret_cast<char*>(&_impl_.length_),
          reinterpret_cast<char*>(&other->_impl_.length_));
}

::google::protobuf::Metadata Type_VarChar::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_FixedBinary::Type_FixedBinary(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_FixedBinary_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.FixedBinary)
}
Type_FixedBinary::Type_FixedBinary(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_FixedBinary& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_FixedBinary_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_FixedBinary::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_FixedBinary::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, length_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, length_) +
               sizeof(Impl_::nullability_));
}
Type_FixedBinary::~Type_FixedBinary() {
  // @@protoc_insertion_point(destructor:substrait.Type.FixedBinary)
  SharedDtor(*this);
}
inline void Type_FixedBinary::SharedDtor(MessageLite& self) {
  Type_FixedBinary& this_ = static_cast<Type_FixedBinary&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_FixedBinary_class_data_ =
        Type_FixedBinary::InternalGenerateClassData_(Type_FixedBinary_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_FixedBinary::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_FixedBinary_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_FixedBinary_class_data_.tc_table);
  return Type_FixedBinary_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_FixedBinary::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_FixedBinary_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_FixedBinary_globals_));
  return Type_FixedBinary_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_FixedBinary::ParseTableT_
    Type_FixedBinary::_table_ =
        Type_FixedBinary::InternalGenerateParseTable_(Type_FixedBinary_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_FixedBinary::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.FixedBinary)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    ::memset(&_impl_.length_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.length_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_FixedBinary::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_FixedBinary& this_ = static_cast<const Type_FixedBinary&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_FixedBinary::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_FixedBinary& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.FixedBinary)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // int32 length = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_length() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
              stream, this_._internal_length(), target);
    }
  }

  // uint32 type_variation_reference = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.FixedBinary)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_FixedBinary::ByteSizeLong(const MessageLite& base) {
  const Type_FixedBinary& this_ = static_cast<const Type_FixedBinary&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_FixedBinary::ByteSizeLong() const {
  const Type_FixedBinary& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.FixedBinary)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // int32 length = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_length() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_length());
      }
    }
    // uint32 type_variation_reference = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_FixedBinary::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_FixedBinary*>(&to_msg);
  auto& from = static_cast<const Type_FixedBinary&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.FixedBinary)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_length() != 0) {
        _this->_impl_.length_ = from._impl_.length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_FixedBinary::CopyFrom(const Type_FixedBinary& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.FixedBinary)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_FixedBinary::InternalSwap(Type_FixedBinary* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_.nullability_)
      + sizeof(Type_FixedBinary::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_FixedBinary, _impl_.length_)>(
          reinterpret_cast<char*>(&_impl_.length_),
          reinterpret_cast<char*>(&other->_impl_.length_));
}

::google::protobuf::Metadata Type_FixedBinary::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_Decimal::Type_Decimal(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Decimal_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.Decimal)
}
Type_Decimal::Type_Decimal(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_Decimal& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Decimal_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_Decimal::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_Decimal::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, scale_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, scale_) +
               sizeof(Impl_::nullability_));
}
Type_Decimal::~Type_Decimal() {
  // @@protoc_insertion_point(destructor:substrait.Type.Decimal)
  SharedDtor(*this);
}
inline void Type_Decimal::SharedDtor(MessageLite& self) {
  Type_Decimal& this_ = static_cast<Type_Decimal&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_Decimal_class_data_ =
        Type_Decimal::InternalGenerateClassData_(Type_Decimal_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Decimal::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Decimal_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_Decimal_class_data_.tc_table);
  return Type_Decimal_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Decimal::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Decimal_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_Decimal_globals_));
  return Type_Decimal_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_Decimal::ParseTableT_
    Type_Decimal::_table_ =
        Type_Decimal::InternalGenerateParseTable_(Type_Decimal_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_Decimal::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.Decimal)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    ::memset(&_impl_.scale_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.scale_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_Decimal::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_Decimal& this_ = static_cast<const Type_Decimal&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_Decimal::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_Decimal& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.Decimal)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // int32 scale = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_scale() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
              stream, this_._internal_scale(), target);
    }
  }

  // int32 precision = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_precision() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
              stream, this_._internal_precision(), target);
    }
  }

  // uint32 type_variation_reference = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          4, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.Decimal)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_Decimal::ByteSizeLong(const MessageLite& base) {
  const Type_Decimal& this_ = static_cast<const Type_Decimal&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_Decimal::ByteSizeLong() const {
  const Type_Decimal& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.Decimal)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // int32 scale = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_scale() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_scale());
      }
    }
    // int32 precision = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_precision() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_precision());
      }
    }
    // uint32 type_variation_reference = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_Decimal::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_Decimal*>(&to_msg);
  auto& from = static_cast<const Type_Decimal&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.Decimal)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_scale() != 0) {
        _this->_impl_.scale_ = from._impl_.scale_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_precision() != 0) {
        _this->_impl_.precision_ = from._impl_.precision_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_Decimal::CopyFrom(const Type_Decimal& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.Decimal)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_Decimal::InternalSwap(Type_Decimal* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_.nullability_)
      + sizeof(Type_Decimal::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_Decimal, _impl_.scale_)>(
          reinterpret_cast<char*>(&_impl_.scale_),
          reinterpret_cast<char*>(&other->_impl_.scale_));
}

::google::protobuf::Metadata Type_Decimal::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_PrecisionTimestamp::Type_PrecisionTimestamp(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_PrecisionTimestamp_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.PrecisionTimestamp)
}
Type_PrecisionTimestamp::Type_PrecisionTimestamp(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_PrecisionTimestamp& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_PrecisionTimestamp_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_PrecisionTimestamp::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_PrecisionTimestamp::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, precision_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, precision_) +
               sizeof(Impl_::nullability_));
}
Type_PrecisionTimestamp::~Type_PrecisionTimestamp() {
  // @@protoc_insertion_point(destructor:substrait.Type.PrecisionTimestamp)
  SharedDtor(*this);
}
inline void Type_PrecisionTimestamp::SharedDtor(MessageLite& self) {
  Type_PrecisionTimestamp& this_ = static_cast<Type_PrecisionTimestamp&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_PrecisionTimestamp_class_data_ =
        Type_PrecisionTimestamp::InternalGenerateClassData_(Type_PrecisionTimestamp_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_PrecisionTimestamp::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_PrecisionTimestamp_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_PrecisionTimestamp_class_data_.tc_table);
  return Type_PrecisionTimestamp_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_PrecisionTimestamp::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_PrecisionTimestamp_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_PrecisionTimestamp_globals_));
  return Type_PrecisionTimestamp_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_PrecisionTimestamp::ParseTableT_
    Type_PrecisionTimestamp::_table_ =
        Type_PrecisionTimestamp::InternalGenerateParseTable_(Type_PrecisionTimestamp_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_PrecisionTimestamp::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.PrecisionTimestamp)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    ::memset(&_impl_.precision_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.precision_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_PrecisionTimestamp::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_PrecisionTimestamp& this_ = static_cast<const Type_PrecisionTimestamp&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_PrecisionTimestamp::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_PrecisionTimestamp& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.PrecisionTimestamp)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // int32 precision = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_precision() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
              stream, this_._internal_precision(), target);
    }
  }

  // uint32 type_variation_reference = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.PrecisionTimestamp)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_PrecisionTimestamp::ByteSizeLong(const MessageLite& base) {
  const Type_PrecisionTimestamp& this_ = static_cast<const Type_PrecisionTimestamp&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_PrecisionTimestamp::ByteSizeLong() const {
  const Type_PrecisionTimestamp& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.PrecisionTimestamp)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // int32 precision = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_precision() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_precision());
      }
    }
    // uint32 type_variation_reference = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_PrecisionTimestamp::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_PrecisionTimestamp*>(&to_msg);
  auto& from = static_cast<const Type_PrecisionTimestamp&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.PrecisionTimestamp)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_precision() != 0) {
        _this->_impl_.precision_ = from._impl_.precision_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_PrecisionTimestamp::CopyFrom(const Type_PrecisionTimestamp& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.PrecisionTimestamp)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_PrecisionTimestamp::InternalSwap(Type_PrecisionTimestamp* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_.nullability_)
      + sizeof(Type_PrecisionTimestamp::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestamp, _impl_.precision_)>(
          reinterpret_cast<char*>(&_impl_.precision_),
          reinterpret_cast<char*>(&other->_impl_.precision_));
}

::google::protobuf::Metadata Type_PrecisionTimestamp::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_PrecisionTimestampTZ::Type_PrecisionTimestampTZ(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_PrecisionTimestampTZ_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.PrecisionTimestampTZ)
}
Type_PrecisionTimestampTZ::Type_PrecisionTimestampTZ(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type_PrecisionTimestampTZ& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_PrecisionTimestampTZ_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Type_PrecisionTimestampTZ::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_PrecisionTimestampTZ::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, precision_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, precision_) +
               sizeof(Impl_::nullability_));
}
Type_PrecisionTimestampTZ::~Type_PrecisionTimestampTZ() {
  // @@protoc_insertion_point(destructor:substrait.Type.PrecisionTimestampTZ)
  SharedDtor(*this);
}
inline void Type_PrecisionTimestampTZ::SharedDtor(MessageLite& self) {
  Type_PrecisionTimestampTZ& this_ = static_cast<Type_PrecisionTimestampTZ&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_PrecisionTimestampTZ_class_data_ =
        Type_PrecisionTimestampTZ::InternalGenerateClassData_(Type_PrecisionTimestampTZ_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_PrecisionTimestampTZ::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_PrecisionTimestampTZ_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_PrecisionTimestampTZ_class_data_.tc_table);
  return Type_PrecisionTimestampTZ_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_PrecisionTimestampTZ::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_PrecisionTimestampTZ_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_PrecisionTimestampTZ_globals_));
  return Type_PrecisionTimestampTZ_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_PrecisionTimestampTZ::ParseTableT_
    Type_PrecisionTimestampTZ::_table_ =
        Type_PrecisionTimestampTZ::InternalGenerateParseTable_(Type_PrecisionTimestampTZ_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_PrecisionTimestampTZ::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.PrecisionTimestampTZ)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    ::memset(&_impl_.precision_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.precision_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_PrecisionTimestampTZ::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_PrecisionTimestampTZ& this_ = static_cast<const Type_PrecisionTimestampTZ&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_PrecisionTimestampTZ::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_PrecisionTimestampTZ& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.PrecisionTimestampTZ)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // int32 precision = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_precision() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
              stream, this_._internal_precision(), target);
    }
  }

  // uint32 type_variation_reference = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.PrecisionTimestampTZ)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_PrecisionTimestampTZ::ByteSizeLong(const MessageLite& base) {
  const Type_PrecisionTimestampTZ& this_ = static_cast<const Type_PrecisionTimestampTZ&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_PrecisionTimestampTZ::ByteSizeLong() const {
  const Type_PrecisionTimestampTZ& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.PrecisionTimestampTZ)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // int32 precision = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_precision() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_precision());
      }
    }
    // uint32 type_variation_reference = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_PrecisionTimestampTZ::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_PrecisionTimestampTZ*>(&to_msg);
  auto& from = static_cast<const Type_PrecisionTimestampTZ&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.PrecisionTimestampTZ)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_precision() != 0) {
        _this->_impl_.precision_ = from._impl_.precision_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_PrecisionTimestampTZ::CopyFrom(const Type_PrecisionTimestampTZ& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.PrecisionTimestampTZ)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_PrecisionTimestampTZ::InternalSwap(Type_PrecisionTimestampTZ* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_.nullability_)
      + sizeof(Type_PrecisionTimestampTZ::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_PrecisionTimestampTZ, _impl_.precision_)>(
          reinterpret_cast<char*>(&_impl_.precision_),
          reinterpret_cast<char*>(&other->_impl_.precision_));
}

::google::protobuf::Metadata Type_PrecisionTimestampTZ::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_Struct::Type_Struct(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Struct_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.Struct)
}
PROTOBUF_NDEBUG_INLINE Type_Struct::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Type_Struct& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        types_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Type_Struct,
              PROTOBUF_FIELD_OFFSET(::substrait::Type_Struct, _impl_.types_)>()
          , from.types_
        }
     {}

Type_Struct::Type_Struct(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Type_Struct& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Struct_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Type_Struct* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, type_variation_reference_),
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));

  // @@protoc_insertion_point(copy_constructor:substrait.Type.Struct)
}
PROTOBUF_NDEBUG_INLINE Type_Struct::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Type_Struct,
            PROTOBUF_FIELD_OFFSET(::substrait::Type_Struct, _impl_.types_)>()
         }
     {}

inline void Type_Struct::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));
}
Type_Struct::~Type_Struct() {
  // @@protoc_insertion_point(destructor:substrait.Type.Struct)
  SharedDtor(*this);
}
inline void Type_Struct::SharedDtor(MessageLite& self) {
  Type_Struct& this_ = static_cast<Type_Struct&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_Struct_class_data_ =
        Type_Struct::InternalGenerateClassData_(Type_Struct_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Struct::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Struct_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_Struct_class_data_.tc_table);
  return Type_Struct_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Struct::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Struct_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_Struct_globals_));
  return Type_Struct_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_Struct::ParseTableT_
    Type_Struct::_table_ =
        Type_Struct::InternalGenerateParseTable_(Type_Struct_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_Struct::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.Struct)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.types_.Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_Struct::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_Struct& this_ = static_cast<const Type_Struct&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_Struct::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_Struct& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.Struct)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Type types = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_types_size());
         i < n; i++) {
      const auto& repfield = this_._internal_types().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // uint32 type_variation_reference = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.Struct)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_Struct::ByteSizeLong(const MessageLite& base) {
  const Type_Struct& this_ = static_cast<const Type_Struct&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_Struct::ByteSizeLong() const {
  const Type_Struct& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.Struct)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated .substrait.Type types = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_types_size();
      for (const auto& msg : this_._internal_types()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // uint32 type_variation_reference = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_Struct::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_Struct*>(&to_msg);
  auto& from = static_cast<const Type_Struct&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.Struct)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_types()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_types());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_Struct::CopyFrom(const Type_Struct& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.Struct)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_Struct::InternalSwap(Type_Struct* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.types_.InternalSwap(&other->_impl_.types_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_.nullability_)
      + sizeof(Type_Struct::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_Struct, _impl_.type_variation_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_variation_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_variation_reference_));
}

::google::protobuf::Metadata Type_Struct::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_List::Type_List(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_List_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.List)
}
PROTOBUF_NDEBUG_INLINE Type_List::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Type_List& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

Type_List::Type_List(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Type_List& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_List_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Type_List* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.type_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, type_variation_reference_),
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));

  // @@protoc_insertion_point(copy_constructor:substrait.Type.List)
}
PROTOBUF_NDEBUG_INLINE Type_List::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_List::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_) +
               sizeof(Impl_::nullability_));
}
Type_List::~Type_List() {
  // @@protoc_insertion_point(destructor:substrait.Type.List)
  SharedDtor(*this);
}
inline void Type_List::SharedDtor(MessageLite& self) {
  Type_List& this_ = static_cast<Type_List&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.type_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_List_class_data_ =
        Type_List::InternalGenerateClassData_(Type_List_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_List::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_List_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_List_class_data_.tc_table);
  return Type_List_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_List::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_List_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_List_globals_));
  return Type_List_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_List::ParseTableT_
    Type_List::_table_ =
        Type_List::InternalGenerateParseTable_(Type_List_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_List::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.List)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.type_ != nullptr);
    _impl_.type_->Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_List::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_List& this_ = static_cast<const Type_List&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_List::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_List& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.List)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.Type type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.type_, this_._impl_.type_->GetCachedSize(), target,
        stream);
  }

  // uint32 type_variation_reference = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.List)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_List::ByteSizeLong(const MessageLite& base) {
  const Type_List& this_ = static_cast<const Type_List&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_List::ByteSizeLong() const {
  const Type_List& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.List)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // .substrait.Type type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.type_);
    }
    // uint32 type_variation_reference = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_List::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_List*>(&to_msg);
  auto& from = static_cast<const Type_List&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.List)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.type_ != nullptr);
      if (_this->_impl_.type_ == nullptr) {
        _this->_impl_.type_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_);
      } else {
        _this->_impl_.type_->MergeFrom(*from._impl_.type_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_List::CopyFrom(const Type_List& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.List)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_List::InternalSwap(Type_List* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_List, _impl_.nullability_)
      + sizeof(Type_List::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_List, _impl_.type_)>(
          reinterpret_cast<char*>(&_impl_.type_),
          reinterpret_cast<char*>(&other->_impl_.type_));
}

::google::protobuf::Metadata Type_List::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_Map::Type_Map(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Map_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.Map)
}
PROTOBUF_NDEBUG_INLINE Type_Map::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Type_Map& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

Type_Map::Type_Map(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Type_Map& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Map_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Type_Map* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.key_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.key_)
                : nullptr;
  _impl_.value_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.value_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_variation_reference_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, type_variation_reference_),
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_variation_reference_) +
               sizeof(Impl_::nullability_));

  // @@protoc_insertion_point(copy_constructor:substrait.Type.Map)
}
PROTOBUF_NDEBUG_INLINE Type_Map::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Type_Map::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, key_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, key_) +
               sizeof(Impl_::nullability_));
}
Type_Map::~Type_Map() {
  // @@protoc_insertion_point(destructor:substrait.Type.Map)
  SharedDtor(*this);
}
inline void Type_Map::SharedDtor(MessageLite& self) {
  Type_Map& this_ = static_cast<Type_Map&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.key_;
  delete this_._impl_.value_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_Map_class_data_ =
        Type_Map::InternalGenerateClassData_(Type_Map_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Map::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Map_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_Map_class_data_.tc_table);
  return Type_Map_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Map::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Map_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_Map_globals_));
  return Type_Map_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_Map::ParseTableT_
    Type_Map::_table_ =
        Type_Map::InternalGenerateParseTable_(Type_Map_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_Map::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.Map)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.key_ != nullptr);
      _impl_.key_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.value_ != nullptr);
      _impl_.value_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000cU)) {
    ::memset(&_impl_.type_variation_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_variation_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_Map::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_Map& this_ = static_cast<const Type_Map&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_Map::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_Map& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.Map)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.Type key = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.key_, this_._impl_.key_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Type value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.value_, this_._impl_.value_->GetCachedSize(), target,
        stream);
  }

  // uint32 type_variation_reference = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          4, this_._internal_nullability(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.Map)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_Map::ByteSizeLong(const MessageLite& base) {
  const Type_Map& this_ = static_cast<const Type_Map&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_Map::ByteSizeLong() const {
  const Type_Map& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.Map)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // .substrait.Type key = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.key_);
    }
    // .substrait.Type value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.value_);
    }
    // uint32 type_variation_reference = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_Map::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_Map*>(&to_msg);
  auto& from = static_cast<const Type_Map&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.Map)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.key_ != nullptr);
      if (_this->_impl_.key_ == nullptr) {
        _this->_impl_.key_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.key_);
      } else {
        _this->_impl_.key_->MergeFrom(*from._impl_.key_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.value_ != nullptr);
      if (_this->_impl_.value_ == nullptr) {
        _this->_impl_.value_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.value_);
      } else {
        _this->_impl_.value_->MergeFrom(*from._impl_.value_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_Map::CopyFrom(const Type_Map& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.Map)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_Map::InternalSwap(Type_Map* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_Map, _impl_.nullability_)
      + sizeof(Type_Map::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_Map, _impl_.key_)>(
          reinterpret_cast<char*>(&_impl_.key_),
          reinterpret_cast<char*>(&other->_impl_.key_));
}

::google::protobuf::Metadata Type_Map::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Type_UserDefined::Type_UserDefined(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_UserDefined_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.UserDefined)
}
PROTOBUF_NDEBUG_INLINE Type_UserDefined::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Type_UserDefined& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        type_parameters_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Type_UserDefined,
              PROTOBUF_FIELD_OFFSET(::substrait::Type_UserDefined, _impl_.type_parameters_)>()
          , from.type_parameters_
        }
     {}

Type_UserDefined::Type_UserDefined(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Type_UserDefined& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_UserDefined_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Type_UserDefined* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_reference_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, type_reference_),
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_reference_) +
               sizeof(Impl_::nullability_));

  // @@protoc_insertion_point(copy_constructor:substrait.Type.UserDefined)
}
PROTOBUF_NDEBUG_INLINE Type_UserDefined::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        type_parameters_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Type_UserDefined,
            PROTOBUF_FIELD_OFFSET(::substrait::Type_UserDefined, _impl_.type_parameters_)>()
         }
     {}

inline void Type_UserDefined::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_reference_),
           0,
           offsetof(Impl_, nullability_) -
               offsetof(Impl_, type_reference_) +
               sizeof(Impl_::nullability_));
}
Type_UserDefined::~Type_UserDefined() {
  // @@protoc_insertion_point(destructor:substrait.Type.UserDefined)
  SharedDtor(*this);
}
inline void Type_UserDefined::SharedDtor(MessageLite& self) {
  Type_UserDefined& this_ = static_cast<Type_UserDefined&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_UserDefined_class_data_ =
        Type_UserDefined::InternalGenerateClassData_(Type_UserDefined_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_UserDefined::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_UserDefined_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_UserDefined_class_data_.tc_table);
  return Type_UserDefined_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_UserDefined::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_UserDefined_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_UserDefined_globals_));
  return Type_UserDefined_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_UserDefined::ParseTableT_
    Type_UserDefined::_table_ =
        Type_UserDefined::InternalGenerateParseTable_(Type_UserDefined_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_UserDefined::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.UserDefined)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.type_parameters_.Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000eU)) {
    ::memset(&_impl_.type_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.nullability_) -
        reinterpret_cast<char*>(&_impl_.type_reference_)) + sizeof(_impl_.nullability_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_UserDefined::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_UserDefined& this_ = static_cast<const Type_UserDefined&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_UserDefined::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_UserDefined& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.UserDefined)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_reference(), target);
    }
  }

  // uint32 type_variation_reference = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_type_variation_reference(), target);
    }
  }

  // .substrait.Type.Nullability nullability = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_nullability() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_nullability(), target);
    }
  }

  // repeated .substrait.Type.Parameter type_parameters = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_type_parameters_size());
         i < n; i++) {
      const auto& repfield = this_._internal_type_parameters().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.UserDefined)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_UserDefined::ByteSizeLong(const MessageLite& base) {
  const Type_UserDefined& this_ = static_cast<const Type_UserDefined&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_UserDefined::ByteSizeLong() const {
  const Type_UserDefined& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.UserDefined)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // repeated .substrait.Type.Parameter type_parameters = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_type_parameters_size();
      for (const auto& msg : this_._internal_type_parameters()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // uint32 type_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_reference());
      }
    }
    // uint32 type_variation_reference = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_variation_reference());
      }
    }
    // .substrait.Type.Nullability nullability = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_nullability() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_nullability());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_UserDefined::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_UserDefined*>(&to_msg);
  auto& from = static_cast<const Type_UserDefined&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.UserDefined)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_type_parameters()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_type_parameters());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type_reference() != 0) {
        _this->_impl_.type_reference_ = from._impl_.type_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_nullability() != 0) {
        _this->_impl_.nullability_ = from._impl_.nullability_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_UserDefined::CopyFrom(const Type_UserDefined& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.UserDefined)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_UserDefined::InternalSwap(Type_UserDefined* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.type_parameters_.InternalSwap(&other->_impl_.type_parameters_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_.nullability_)
      + sizeof(Type_UserDefined::_impl_.nullability_)
      - PROTOBUF_FIELD_OFFSET(Type_UserDefined, _impl_.type_reference_)>(
          reinterpret_cast<char*>(&_impl_.type_reference_),
          reinterpret_cast<char*>(&other->_impl_.type_reference_));
}

::google::protobuf::Metadata Type_UserDefined::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void Type_Parameter::set_allocated_null(::google::protobuf::Empty* PROTOBUF_NULLABLE null) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_parameter();
  if (null) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(null)->GetArena();
    if (message_arena != submessage_arena) {
      null = ::google::protobuf::internal::GetOwnedMessage(message_arena, null, submessage_arena);
    }
    set_has_null();
    _impl_.parameter_.null_ = null;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.Parameter.null)
}
void Type_Parameter::clear_null() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (parameter_case() == kNull) {
    if (GetArena() == nullptr) {
      delete _impl_.parameter_.null_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.parameter_.null_);
    }
    clear_has_parameter();
  }
}
void Type_Parameter::set_allocated_data_type(::substrait::Type* PROTOBUF_NULLABLE data_type) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_parameter();
  if (data_type) {
    ::google::protobuf::Arena* submessage_arena = data_type->GetArena();
    if (message_arena != submessage_arena) {
      data_type = ::google::protobuf::internal::GetOwnedMessage(message_arena, data_type, submessage_arena);
    }
    set_has_data_type();
    _impl_.parameter_.data_type_ = data_type;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.Parameter.data_type)
}
Type_Parameter::Type_Parameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Parameter_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type.Parameter)
}
PROTOBUF_NDEBUG_INLINE Type_Parameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Type_Parameter& from_msg)
      : parameter_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

Type_Parameter::Type_Parameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Type_Parameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_Parameter_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Type_Parameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (parameter_case()) {
    case PARAMETER_NOT_SET:
      break;
      case kNull:
        _impl_.parameter_.null_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.parameter_.null_);
        break;
      case kDataType:
        _impl_.parameter_.data_type_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.parameter_.data_type_);
        break;
      case kBoolean:
        _impl_.parameter_.boolean_ = from._impl_.parameter_.boolean_;
        break;
      case kInteger:
        _impl_.parameter_.integer_ = from._impl_.parameter_.integer_;
        break;
      case kEnum:
        new (&_impl_.parameter_.enum__) decltype(_impl_.parameter_.enum__){arena, from._impl_.parameter_.enum__};
        break;
      case kString:
        new (&_impl_.parameter_.string_) decltype(_impl_.parameter_.string_){arena, from._impl_.parameter_.string_};
        break;
  }

  // @@protoc_insertion_point(copy_constructor:substrait.Type.Parameter)
}
PROTOBUF_NDEBUG_INLINE Type_Parameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : parameter_{},
        _cached_size_{0},
        _oneof_case_{} {}

inline void Type_Parameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Type_Parameter::~Type_Parameter() {
  // @@protoc_insertion_point(destructor:substrait.Type.Parameter)
  SharedDtor(*this);
}
inline void Type_Parameter::SharedDtor(MessageLite& self) {
  Type_Parameter& this_ = static_cast<Type_Parameter&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  if (this_.has_parameter()) {
    this_.clear_parameter();
  }
  this_._impl_.~Impl_();
}

void Type_Parameter::clear_parameter() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Type.Parameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (parameter_case()) {
    case kNull: {
      if (GetArena() == nullptr) {
        delete _impl_.parameter_.null_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.parameter_.null_);
      }
      break;
    }
    case kDataType: {
      if (GetArena() == nullptr) {
        delete _impl_.parameter_.data_type_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.parameter_.data_type_);
      }
      break;
    }
    case kBoolean: {
      // No need to clear
      break;
    }
    case kInteger: {
      // No need to clear
      break;
    }
    case kEnum: {
      _impl_.parameter_.enum__.Destroy();
      break;
    }
    case kString: {
      _impl_.parameter_.string_.Destroy();
      break;
    }
    case PARAMETER_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = PARAMETER_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_Parameter_class_data_ =
        Type_Parameter::InternalGenerateClassData_(Type_Parameter_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Parameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Parameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_Parameter_class_data_.tc_table);
  return Type_Parameter_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type_Parameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_Parameter_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_Parameter_globals_));
  return Type_Parameter_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type_Parameter::ParseTableT_
    Type_Parameter::_table_ =
        Type_Parameter::InternalGenerateParseTable_(Type_Parameter_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type_Parameter::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type.Parameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_parameter();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type_Parameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type_Parameter& this_ = static_cast<const Type_Parameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type_Parameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type_Parameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type.Parameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  switch (this_.parameter_case()) {
    case kNull: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.parameter_.null_, this_._impl_.parameter_.null_->GetCachedSize(), target,
          stream);
      break;
    }
    case kDataType: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.parameter_.data_type_, this_._impl_.parameter_.data_type_->GetCachedSize(), target,
          stream);
      break;
    }
    case kBoolean: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          3, this_._internal_boolean(), target);
      break;
    }
    case kInteger: {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<4>(
              stream, this_._internal_integer(), target);
      break;
    }
    case kEnum: {
      const ::std::string& _s = this_._internal_enum_();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.Type.Parameter.enum");
      target = stream->WriteStringMaybeAliased(5, _s, target);
      break;
    }
    case kString: {
      const ::std::string& _s = this_._internal_string();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.Type.Parameter.string");
      target = stream->WriteStringMaybeAliased(6, _s, target);
      break;
    }
    default:
      break;
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type.Parameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type_Parameter::ByteSizeLong(const MessageLite& base) {
  const Type_Parameter& this_ = static_cast<const Type_Parameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type_Parameter::ByteSizeLong() const {
  const Type_Parameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type.Parameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  switch (this_.parameter_case()) {
    // .google.protobuf.Empty null = 1;
    case kNull: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.parameter_.null_);
      break;
    }
    // .substrait.Type data_type = 2;
    case kDataType: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.parameter_.data_type_);
      break;
    }
    // bool boolean = 3;
    case kBoolean: {
      total_size += 2;
      break;
    }
    // int64 integer = 4;
    case kInteger: {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_integer());
      break;
    }
    // string enum = 5;
    case kEnum: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_enum_());
      break;
    }
    // string string = 6;
    case kString: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_string());
      break;
    }
    case PARAMETER_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type_Parameter::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type_Parameter*>(&to_msg);
  auto& from = static_cast<const Type_Parameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type.Parameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[0]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_parameter();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kNull: {
        if (oneof_needs_init) {
          _this->_impl_.parameter_.null_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.parameter_.null_);
        } else {
          _this->_impl_.parameter_.null_->MergeFrom(*from._impl_.parameter_.null_);
        }
        break;
      }
      case kDataType: {
        if (oneof_needs_init) {
          _this->_impl_.parameter_.data_type_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.parameter_.data_type_);
        } else {
          _this->_impl_.parameter_.data_type_->MergeFrom(*from._impl_.parameter_.data_type_);
        }
        break;
      }
      case kBoolean: {
        _this->_impl_.parameter_.boolean_ = from._impl_.parameter_.boolean_;
        break;
      }
      case kInteger: {
        _this->_impl_.parameter_.integer_ = from._impl_.parameter_.integer_;
        break;
      }
      case kEnum: {
        if (oneof_needs_init) {
          _this->_impl_.parameter_.enum__.InitDefault();
        }
        _this->_impl_.parameter_.enum__.Set(from._internal_enum_(), arena);
        break;
      }
      case kString: {
        if (oneof_needs_init) {
          _this->_impl_.parameter_.string_.InitDefault();
        }
        _this->_impl_.parameter_.string_.Set(from._internal_string(), arena);
        break;
      }
      case PARAMETER_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type_Parameter::CopyFrom(const Type_Parameter& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type.Parameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type_Parameter::InternalSwap(Type_Parameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.parameter_, other->_impl_.parameter_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::google::protobuf::Metadata Type_Parameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void Type::set_allocated_bool_(::substrait::Type_Boolean* PROTOBUF_NULLABLE bool_) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (bool_) {
    ::google::protobuf::Arena* submessage_arena = bool_->GetArena();
    if (message_arena != submessage_arena) {
      bool_ = ::google::protobuf::internal::GetOwnedMessage(message_arena, bool_, submessage_arena);
    }
    set_has_bool_();
    _impl_.kind_.bool__ = bool_;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.bool)
}
void Type::set_allocated_i8(::substrait::Type_I8* PROTOBUF_NULLABLE i8) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (i8) {
    ::google::protobuf::Arena* submessage_arena = i8->GetArena();
    if (message_arena != submessage_arena) {
      i8 = ::google::protobuf::internal::GetOwnedMessage(message_arena, i8, submessage_arena);
    }
    set_has_i8();
    _impl_.kind_.i8_ = i8;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.i8)
}
void Type::set_allocated_i16(::substrait::Type_I16* PROTOBUF_NULLABLE i16) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (i16) {
    ::google::protobuf::Arena* submessage_arena = i16->GetArena();
    if (message_arena != submessage_arena) {
      i16 = ::google::protobuf::internal::GetOwnedMessage(message_arena, i16, submessage_arena);
    }
    set_has_i16();
    _impl_.kind_.i16_ = i16;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.i16)
}
void Type::set_allocated_i32(::substrait::Type_I32* PROTOBUF_NULLABLE i32) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (i32) {
    ::google::protobuf::Arena* submessage_arena = i32->GetArena();
    if (message_arena != submessage_arena) {
      i32 = ::google::protobuf::internal::GetOwnedMessage(message_arena, i32, submessage_arena);
    }
    set_has_i32();
    _impl_.kind_.i32_ = i32;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.i32)
}
void Type::set_allocated_i64(::substrait::Type_I64* PROTOBUF_NULLABLE i64) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (i64) {
    ::google::protobuf::Arena* submessage_arena = i64->GetArena();
    if (message_arena != submessage_arena) {
      i64 = ::google::protobuf::internal::GetOwnedMessage(message_arena, i64, submessage_arena);
    }
    set_has_i64();
    _impl_.kind_.i64_ = i64;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.i64)
}
void Type::set_allocated_fp32(::substrait::Type_FP32* PROTOBUF_NULLABLE fp32) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (fp32) {
    ::google::protobuf::Arena* submessage_arena = fp32->GetArena();
    if (message_arena != submessage_arena) {
      fp32 = ::google::protobuf::internal::GetOwnedMessage(message_arena, fp32, submessage_arena);
    }
    set_has_fp32();
    _impl_.kind_.fp32_ = fp32;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.fp32)
}
void Type::set_allocated_fp64(::substrait::Type_FP64* PROTOBUF_NULLABLE fp64) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (fp64) {
    ::google::protobuf::Arena* submessage_arena = fp64->GetArena();
    if (message_arena != submessage_arena) {
      fp64 = ::google::protobuf::internal::GetOwnedMessage(message_arena, fp64, submessage_arena);
    }
    set_has_fp64();
    _impl_.kind_.fp64_ = fp64;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.fp64)
}
void Type::set_allocated_string(::substrait::Type_String* PROTOBUF_NULLABLE string) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (string) {
    ::google::protobuf::Arena* submessage_arena = string->GetArena();
    if (message_arena != submessage_arena) {
      string = ::google::protobuf::internal::GetOwnedMessage(message_arena, string, submessage_arena);
    }
    set_has_string();
    _impl_.kind_.string_ = string;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.string)
}
void Type::set_allocated_binary(::substrait::Type_Binary* PROTOBUF_NULLABLE binary) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (binary) {
    ::google::protobuf::Arena* submessage_arena = binary->GetArena();
    if (message_arena != submessage_arena) {
      binary = ::google::protobuf::internal::GetOwnedMessage(message_arena, binary, submessage_arena);
    }
    set_has_binary();
    _impl_.kind_.binary_ = binary;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.binary)
}
void Type::set_allocated_timestamp(::substrait::Type_Timestamp* PROTOBUF_NULLABLE timestamp) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (timestamp) {
    ::google::protobuf::Arena* submessage_arena = timestamp->GetArena();
    if (message_arena != submessage_arena) {
      timestamp = ::google::protobuf::internal::GetOwnedMessage(message_arena, timestamp, submessage_arena);
    }
    set_has_timestamp();
    _impl_.kind_.timestamp_ = timestamp;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.timestamp)
}
void Type::set_allocated_date(::substrait::Type_Date* PROTOBUF_NULLABLE date) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (date) {
    ::google::protobuf::Arena* submessage_arena = date->GetArena();
    if (message_arena != submessage_arena) {
      date = ::google::protobuf::internal::GetOwnedMessage(message_arena, date, submessage_arena);
    }
    set_has_date();
    _impl_.kind_.date_ = date;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.date)
}
void Type::set_allocated_time(::substrait::Type_Time* PROTOBUF_NULLABLE time) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (time) {
    ::google::protobuf::Arena* submessage_arena = time->GetArena();
    if (message_arena != submessage_arena) {
      time = ::google::protobuf::internal::GetOwnedMessage(message_arena, time, submessage_arena);
    }
    set_has_time();
    _impl_.kind_.time_ = time;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.time)
}
void Type::set_allocated_interval_year(::substrait::Type_IntervalYear* PROTOBUF_NULLABLE interval_year) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (interval_year) {
    ::google::protobuf::Arena* submessage_arena = interval_year->GetArena();
    if (message_arena != submessage_arena) {
      interval_year = ::google::protobuf::internal::GetOwnedMessage(message_arena, interval_year, submessage_arena);
    }
    set_has_interval_year();
    _impl_.kind_.interval_year_ = interval_year;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.interval_year)
}
void Type::set_allocated_interval_day(::substrait::Type_IntervalDay* PROTOBUF_NULLABLE interval_day) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (interval_day) {
    ::google::protobuf::Arena* submessage_arena = interval_day->GetArena();
    if (message_arena != submessage_arena) {
      interval_day = ::google::protobuf::internal::GetOwnedMessage(message_arena, interval_day, submessage_arena);
    }
    set_has_interval_day();
    _impl_.kind_.interval_day_ = interval_day;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.interval_day)
}
void Type::set_allocated_timestamp_tz(::substrait::Type_TimestampTZ* PROTOBUF_NULLABLE timestamp_tz) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (timestamp_tz) {
    ::google::protobuf::Arena* submessage_arena = timestamp_tz->GetArena();
    if (message_arena != submessage_arena) {
      timestamp_tz = ::google::protobuf::internal::GetOwnedMessage(message_arena, timestamp_tz, submessage_arena);
    }
    set_has_timestamp_tz();
    _impl_.kind_.timestamp_tz_ = timestamp_tz;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.timestamp_tz)
}
void Type::set_allocated_uuid(::substrait::Type_UUID* PROTOBUF_NULLABLE uuid) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (uuid) {
    ::google::protobuf::Arena* submessage_arena = uuid->GetArena();
    if (message_arena != submessage_arena) {
      uuid = ::google::protobuf::internal::GetOwnedMessage(message_arena, uuid, submessage_arena);
    }
    set_has_uuid();
    _impl_.kind_.uuid_ = uuid;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.uuid)
}
void Type::set_allocated_fixed_char(::substrait::Type_FixedChar* PROTOBUF_NULLABLE fixed_char) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (fixed_char) {
    ::google::protobuf::Arena* submessage_arena = fixed_char->GetArena();
    if (message_arena != submessage_arena) {
      fixed_char = ::google::protobuf::internal::GetOwnedMessage(message_arena, fixed_char, submessage_arena);
    }
    set_has_fixed_char();
    _impl_.kind_.fixed_char_ = fixed_char;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.fixed_char)
}
void Type::set_allocated_varchar(::substrait::Type_VarChar* PROTOBUF_NULLABLE varchar) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (varchar) {
    ::google::protobuf::Arena* submessage_arena = varchar->GetArena();
    if (message_arena != submessage_arena) {
      varchar = ::google::protobuf::internal::GetOwnedMessage(message_arena, varchar, submessage_arena);
    }
    set_has_varchar();
    _impl_.kind_.varchar_ = varchar;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.varchar)
}
void Type::set_allocated_fixed_binary(::substrait::Type_FixedBinary* PROTOBUF_NULLABLE fixed_binary) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (fixed_binary) {
    ::google::protobuf::Arena* submessage_arena = fixed_binary->GetArena();
    if (message_arena != submessage_arena) {
      fixed_binary = ::google::protobuf::internal::GetOwnedMessage(message_arena, fixed_binary, submessage_arena);
    }
    set_has_fixed_binary();
    _impl_.kind_.fixed_binary_ = fixed_binary;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.fixed_binary)
}
void Type::set_allocated_decimal(::substrait::Type_Decimal* PROTOBUF_NULLABLE decimal) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (decimal) {
    ::google::protobuf::Arena* submessage_arena = decimal->GetArena();
    if (message_arena != submessage_arena) {
      decimal = ::google::protobuf::internal::GetOwnedMessage(message_arena, decimal, submessage_arena);
    }
    set_has_decimal();
    _impl_.kind_.decimal_ = decimal;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.decimal)
}
void Type::set_allocated_precision_timestamp(::substrait::Type_PrecisionTimestamp* PROTOBUF_NULLABLE precision_timestamp) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (precision_timestamp) {
    ::google::protobuf::Arena* submessage_arena = precision_timestamp->GetArena();
    if (message_arena != submessage_arena) {
      precision_timestamp = ::google::protobuf::internal::GetOwnedMessage(message_arena, precision_timestamp, submessage_arena);
    }
    set_has_precision_timestamp();
    _impl_.kind_.precision_timestamp_ = precision_timestamp;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.precision_timestamp)
}
void Type::set_allocated_precision_timestamp_tz(::substrait::Type_PrecisionTimestampTZ* PROTOBUF_NULLABLE precision_timestamp_tz) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (precision_timestamp_tz) {
    ::google::protobuf::Arena* submessage_arena = precision_timestamp_tz->GetArena();
    if (message_arena != submessage_arena) {
      precision_timestamp_tz = ::google::protobuf::internal::GetOwnedMessage(message_arena, precision_timestamp_tz, submessage_arena);
    }
    set_has_precision_timestamp_tz();
    _impl_.kind_.precision_timestamp_tz_ = precision_timestamp_tz;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.precision_timestamp_tz)
}
void Type::set_allocated_struct_(::substrait::Type_Struct* PROTOBUF_NULLABLE struct_) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (struct_) {
    ::google::protobuf::Arena* submessage_arena = struct_->GetArena();
    if (message_arena != submessage_arena) {
      struct_ = ::google::protobuf::internal::GetOwnedMessage(message_arena, struct_, submessage_arena);
    }
    set_has_struct_();
    _impl_.kind_.struct__ = struct_;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.struct)
}
void Type::set_allocated_list(::substrait::Type_List* PROTOBUF_NULLABLE list) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (list) {
    ::google::protobuf::Arena* submessage_arena = list->GetArena();
    if (message_arena != submessage_arena) {
      list = ::google::protobuf::internal::GetOwnedMessage(message_arena, list, submessage_arena);
    }
    set_has_list();
    _impl_.kind_.list_ = list;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.list)
}
void Type::set_allocated_map(::substrait::Type_Map* PROTOBUF_NULLABLE map) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (map) {
    ::google::protobuf::Arena* submessage_arena = map->GetArena();
    if (message_arena != submessage_arena) {
      map = ::google::protobuf::internal::GetOwnedMessage(message_arena, map, submessage_arena);
    }
    set_has_map();
    _impl_.kind_.map_ = map;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.map)
}
void Type::set_allocated_user_defined(::substrait::Type_UserDefined* PROTOBUF_NULLABLE user_defined) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (user_defined) {
    ::google::protobuf::Arena* submessage_arena = user_defined->GetArena();
    if (message_arena != submessage_arena) {
      user_defined = ::google::protobuf::internal::GetOwnedMessage(message_arena, user_defined, submessage_arena);
    }
    set_has_user_defined();
    _impl_.kind_.user_defined_ = user_defined;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Type.user_defined)
}
Type::Type(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Type)
}
PROTOBUF_NDEBUG_INLINE Type::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Type& from_msg)
      : kind_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

Type::Type(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Type& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Type_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Type* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (kind_case()) {
    case KIND_NOT_SET:
      break;
      case kBool:
        _impl_.kind_.bool__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.bool__);
        break;
      case kI8:
        _impl_.kind_.i8_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.i8_);
        break;
      case kI16:
        _impl_.kind_.i16_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.i16_);
        break;
      case kI32:
        _impl_.kind_.i32_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.i32_);
        break;
      case kI64:
        _impl_.kind_.i64_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.i64_);
        break;
      case kFp32:
        _impl_.kind_.fp32_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.fp32_);
        break;
      case kFp64:
        _impl_.kind_.fp64_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.fp64_);
        break;
      case kString:
        _impl_.kind_.string_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.string_);
        break;
      case kBinary:
        _impl_.kind_.binary_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.binary_);
        break;
      case kTimestamp:
        _impl_.kind_.timestamp_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.timestamp_);
        break;
      case kDate:
        _impl_.kind_.date_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.date_);
        break;
      case kTime:
        _impl_.kind_.time_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.time_);
        break;
      case kIntervalYear:
        _impl_.kind_.interval_year_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.interval_year_);
        break;
      case kIntervalDay:
        _impl_.kind_.interval_day_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.interval_day_);
        break;
      case kTimestampTz:
        _impl_.kind_.timestamp_tz_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.timestamp_tz_);
        break;
      case kUuid:
        _impl_.kind_.uuid_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.uuid_);
        break;
      case kFixedChar:
        _impl_.kind_.fixed_char_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.fixed_char_);
        break;
      case kVarchar:
        _impl_.kind_.varchar_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.varchar_);
        break;
      case kFixedBinary:
        _impl_.kind_.fixed_binary_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.fixed_binary_);
        break;
      case kDecimal:
        _impl_.kind_.decimal_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.decimal_);
        break;
      case kPrecisionTimestamp:
        _impl_.kind_.precision_timestamp_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.precision_timestamp_);
        break;
      case kPrecisionTimestampTz:
        _impl_.kind_.precision_timestamp_tz_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.precision_timestamp_tz_);
        break;
      case kStruct:
        _impl_.kind_.struct__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.struct__);
        break;
      case kList:
        _impl_.kind_.list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.list_);
        break;
      case kMap:
        _impl_.kind_.map_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.map_);
        break;
      case kUserDefined:
        _impl_.kind_.user_defined_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.user_defined_);
        break;
      case kUserDefinedTypeReference:
        _impl_.kind_.user_defined_type_reference_ = from._impl_.kind_.user_defined_type_reference_;
        break;
  }

  // @@protoc_insertion_point(copy_constructor:substrait.Type)
}
PROTOBUF_NDEBUG_INLINE Type::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : kind_{},
        _cached_size_{0},
        _oneof_case_{} {}

inline void Type::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Type::~Type() {
  // @@protoc_insertion_point(destructor:substrait.Type)
  SharedDtor(*this);
}
inline void Type::SharedDtor(MessageLite& self) {
  Type& this_ = static_cast<Type&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  if (this_.has_kind()) {
    this_.clear_kind();
  }
  this_._impl_.~Impl_();
}

void Type::clear_kind() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Type)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (kind_case()) {
    case kBool: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.bool__;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.bool__);
      }
      break;
    }
    case kI8: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.i8_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.i8_);
      }
      break;
    }
    case kI16: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.i16_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.i16_);
      }
      break;
    }
    case kI32: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.i32_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.i32_);
      }
      break;
    }
    case kI64: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.i64_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.i64_);
      }
      break;
    }
    case kFp32: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.fp32_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.fp32_);
      }
      break;
    }
    case kFp64: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.fp64_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.fp64_);
      }
      break;
    }
    case kString: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.string_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.string_);
      }
      break;
    }
    case kBinary: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.binary_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.binary_);
      }
      break;
    }
    case kTimestamp: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.timestamp_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.timestamp_);
      }
      break;
    }
    case kDate: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.date_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.date_);
      }
      break;
    }
    case kTime: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.time_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.time_);
      }
      break;
    }
    case kIntervalYear: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.interval_year_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.interval_year_);
      }
      break;
    }
    case kIntervalDay: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.interval_day_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.interval_day_);
      }
      break;
    }
    case kTimestampTz: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.timestamp_tz_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.timestamp_tz_);
      }
      break;
    }
    case kUuid: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.uuid_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.uuid_);
      }
      break;
    }
    case kFixedChar: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.fixed_char_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.fixed_char_);
      }
      break;
    }
    case kVarchar: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.varchar_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.varchar_);
      }
      break;
    }
    case kFixedBinary: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.fixed_binary_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.fixed_binary_);
      }
      break;
    }
    case kDecimal: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.decimal_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.decimal_);
      }
      break;
    }
    case kPrecisionTimestamp: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.precision_timestamp_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.precision_timestamp_);
      }
      break;
    }
    case kPrecisionTimestampTz: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.precision_timestamp_tz_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.precision_timestamp_tz_);
      }
      break;
    }
    case kStruct: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.struct__;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.struct__);
      }
      break;
    }
    case kList: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.list_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.list_);
      }
      break;
    }
    case kMap: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.map_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.map_);
      }
      break;
    }
    case kUserDefined: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.user_defined_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.user_defined_);
      }
      break;
    }
    case kUserDefinedTypeReference: {
      // No need to clear
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = KIND_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Type_class_data_ =
        Type::InternalGenerateClassData_(Type_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Type_class_data_.tc_table);
  return Type_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Type::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Type_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Type_globals_));
  return Type_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Type::ParseTableT_
    Type::_table_ =
        Type::InternalGenerateParseTable_(Type_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Type::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Type)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_kind();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Type::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Type& this_ = static_cast<const Type&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Type::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Type& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Type)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  switch (this_.kind_case()) {
    case kBool: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.kind_.bool__, this_._impl_.kind_.bool__->GetCachedSize(), target,
          stream);
      break;
    }
    case kI8: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.kind_.i8_, this_._impl_.kind_.i8_->GetCachedSize(), target,
          stream);
      break;
    }
    case kI16: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.kind_.i16_, this_._impl_.kind_.i16_->GetCachedSize(), target,
          stream);
      break;
    }
    case kI32: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          5, *this_._impl_.kind_.i32_, this_._impl_.kind_.i32_->GetCachedSize(), target,
          stream);
      break;
    }
    case kI64: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          7, *this_._impl_.kind_.i64_, this_._impl_.kind_.i64_->GetCachedSize(), target,
          stream);
      break;
    }
    case kFp32: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          10, *this_._impl_.kind_.fp32_, this_._impl_.kind_.fp32_->GetCachedSize(), target,
          stream);
      break;
    }
    case kFp64: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          11, *this_._impl_.kind_.fp64_, this_._impl_.kind_.fp64_->GetCachedSize(), target,
          stream);
      break;
    }
    case kString: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          12, *this_._impl_.kind_.string_, this_._impl_.kind_.string_->GetCachedSize(), target,
          stream);
      break;
    }
    case kBinary: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          13, *this_._impl_.kind_.binary_, this_._impl_.kind_.binary_->GetCachedSize(), target,
          stream);
      break;
    }
    case kTimestamp: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          14, *this_._impl_.kind_.timestamp_, this_._impl_.kind_.timestamp_->GetCachedSize(), target,
          stream);
      break;
    }
    case kDate: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          16, *this_._impl_.kind_.date_, this_._impl_.kind_.date_->GetCachedSize(), target,
          stream);
      break;
    }
    case kTime: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          17, *this_._impl_.kind_.time_, this_._impl_.kind_.time_->GetCachedSize(), target,
          stream);
      break;
    }
    case kIntervalYear: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          19, *this_._impl_.kind_.interval_year_, this_._impl_.kind_.interval_year_->GetCachedSize(), target,
          stream);
      break;
    }
    case kIntervalDay: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          20, *this_._impl_.kind_.interval_day_, this_._impl_.kind_.interval_day_->GetCachedSize(), target,
          stream);
      break;
    }
    case kFixedChar: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          21, *this_._impl_.kind_.fixed_char_, this_._impl_.kind_.fixed_char_->GetCachedSize(), target,
          stream);
      break;
    }
    case kVarchar: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          22, *this_._impl_.kind_.varchar_, this_._impl_.kind_.varchar_->GetCachedSize(), target,
          stream);
      break;
    }
    case kFixedBinary: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          23, *this_._impl_.kind_.fixed_binary_, this_._impl_.kind_.fixed_binary_->GetCachedSize(), target,
          stream);
      break;
    }
    case kDecimal: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          24, *this_._impl_.kind_.decimal_, this_._impl_.kind_.decimal_->GetCachedSize(), target,
          stream);
      break;
    }
    case kStruct: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          25, *this_._impl_.kind_.struct__, this_._impl_.kind_.struct__->GetCachedSize(), target,
          stream);
      break;
    }
    case kList: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          27, *this_._impl_.kind_.list_, this_._impl_.kind_.list_->GetCachedSize(), target,
          stream);
      break;
    }
    case kMap: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          28, *this_._impl_.kind_.map_, this_._impl_.kind_.map_->GetCachedSize(), target,
          stream);
      break;
    }
    case kTimestampTz: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          29, *this_._impl_.kind_.timestamp_tz_, this_._impl_.kind_.timestamp_tz_->GetCachedSize(), target,
          stream);
      break;
    }
    case kUserDefined: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          30, *this_._impl_.kind_.user_defined_, this_._impl_.kind_.user_defined_->GetCachedSize(), target,
          stream);
      break;
    }
    case kUserDefinedTypeReference: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          31, this_._internal_user_defined_type_reference(), target);
      break;
    }
    case kUuid: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          32, *this_._impl_.kind_.uuid_, this_._impl_.kind_.uuid_->GetCachedSize(), target,
          stream);
      break;
    }
    case kPrecisionTimestamp: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          33, *this_._impl_.kind_.precision_timestamp_, this_._impl_.kind_.precision_timestamp_->GetCachedSize(), target,
          stream);
      break;
    }
    case kPrecisionTimestampTz: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          34, *this_._impl_.kind_.precision_timestamp_tz_, this_._impl_.kind_.precision_timestamp_tz_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.Type)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Type::ByteSizeLong(const MessageLite& base) {
  const Type& this_ = static_cast<const Type&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Type::ByteSizeLong() const {
  const Type& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Type)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  switch (this_.kind_case()) {
    // .substrait.Type.Boolean bool = 1;
    case kBool: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.bool__);
      break;
    }
    // .substrait.Type.I8 i8 = 2;
    case kI8: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.i8_);
      break;
    }
    // .substrait.Type.I16 i16 = 3;
    case kI16: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.i16_);
      break;
    }
    // .substrait.Type.I32 i32 = 5;
    case kI32: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.i32_);
      break;
    }
    // .substrait.Type.I64 i64 = 7;
    case kI64: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.i64_);
      break;
    }
    // .substrait.Type.FP32 fp32 = 10;
    case kFp32: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.fp32_);
      break;
    }
    // .substrait.Type.FP64 fp64 = 11;
    case kFp64: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.fp64_);
      break;
    }
    // .substrait.Type.String string = 12;
    case kString: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.string_);
      break;
    }
    // .substrait.Type.Binary binary = 13;
    case kBinary: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.binary_);
      break;
    }
    // .substrait.Type.Timestamp timestamp = 14 [deprecated = true];
    case kTimestamp: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.timestamp_);
      break;
    }
    // .substrait.Type.Date date = 16;
    case kDate: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.date_);
      break;
    }
    // .substrait.Type.Time time = 17;
    case kTime: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.time_);
      break;
    }
    // .substrait.Type.IntervalYear interval_year = 19;
    case kIntervalYear: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.interval_year_);
      break;
    }
    // .substrait.Type.IntervalDay interval_day = 20;
    case kIntervalDay: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.interval_day_);
      break;
    }
    // .substrait.Type.TimestampTZ timestamp_tz = 29 [deprecated = true];
    case kTimestampTz: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.timestamp_tz_);
      break;
    }
    // .substrait.Type.UUID uuid = 32;
    case kUuid: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.uuid_);
      break;
    }
    // .substrait.Type.FixedChar fixed_char = 21;
    case kFixedChar: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.fixed_char_);
      break;
    }
    // .substrait.Type.VarChar varchar = 22;
    case kVarchar: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.varchar_);
      break;
    }
    // .substrait.Type.FixedBinary fixed_binary = 23;
    case kFixedBinary: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.fixed_binary_);
      break;
    }
    // .substrait.Type.Decimal decimal = 24;
    case kDecimal: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.decimal_);
      break;
    }
    // .substrait.Type.PrecisionTimestamp precision_timestamp = 33;
    case kPrecisionTimestamp: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.precision_timestamp_);
      break;
    }
    // .substrait.Type.PrecisionTimestampTZ precision_timestamp_tz = 34;
    case kPrecisionTimestampTz: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.precision_timestamp_tz_);
      break;
    }
    // .substrait.Type.Struct struct = 25;
    case kStruct: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.struct__);
      break;
    }
    // .substrait.Type.List list = 27;
    case kList: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.list_);
      break;
    }
    // .substrait.Type.Map map = 28;
    case kMap: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.map_);
      break;
    }
    // .substrait.Type.UserDefined user_defined = 30;
    case kUserDefined: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.user_defined_);
      break;
    }
    // uint32 user_defined_type_reference = 31 [deprecated = true];
    case kUserDefinedTypeReference: {
      total_size += 2 + ::_pbi::WireFormatLite::UInt32Size(
                                      this_._internal_user_defined_type_reference());
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Type::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Type*>(&to_msg);
  auto& from = static_cast<const Type&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Type)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[0]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_kind();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kBool: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.bool__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.bool__);
        } else {
          _this->_impl_.kind_.bool__->MergeFrom(*from._impl_.kind_.bool__);
        }
        break;
      }
      case kI8: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.i8_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.i8_);
        } else {
          _this->_impl_.kind_.i8_->MergeFrom(*from._impl_.kind_.i8_);
        }
        break;
      }
      case kI16: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.i16_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.i16_);
        } else {
          _this->_impl_.kind_.i16_->MergeFrom(*from._impl_.kind_.i16_);
        }
        break;
      }
      case kI32: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.i32_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.i32_);
        } else {
          _this->_impl_.kind_.i32_->MergeFrom(*from._impl_.kind_.i32_);
        }
        break;
      }
      case kI64: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.i64_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.i64_);
        } else {
          _this->_impl_.kind_.i64_->MergeFrom(*from._impl_.kind_.i64_);
        }
        break;
      }
      case kFp32: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.fp32_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.fp32_);
        } else {
          _this->_impl_.kind_.fp32_->MergeFrom(*from._impl_.kind_.fp32_);
        }
        break;
      }
      case kFp64: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.fp64_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.fp64_);
        } else {
          _this->_impl_.kind_.fp64_->MergeFrom(*from._impl_.kind_.fp64_);
        }
        break;
      }
      case kString: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.string_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.string_);
        } else {
          _this->_impl_.kind_.string_->MergeFrom(*from._impl_.kind_.string_);
        }
        break;
      }
      case kBinary: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.binary_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.binary_);
        } else {
          _this->_impl_.kind_.binary_->MergeFrom(*from._impl_.kind_.binary_);
        }
        break;
      }
      case kTimestamp: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.timestamp_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.timestamp_);
        } else {
          _this->_impl_.kind_.timestamp_->MergeFrom(*from._impl_.kind_.timestamp_);
        }
        break;
      }
      case kDate: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.date_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.date_);
        } else {
          _this->_impl_.kind_.date_->MergeFrom(*from._impl_.kind_.date_);
        }
        break;
      }
      case kTime: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.time_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.time_);
        } else {
          _this->_impl_.kind_.time_->MergeFrom(*from._impl_.kind_.time_);
        }
        break;
      }
      case kIntervalYear: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.interval_year_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.interval_year_);
        } else {
          _this->_impl_.kind_.interval_year_->MergeFrom(*from._impl_.kind_.interval_year_);
        }
        break;
      }
      case kIntervalDay: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.interval_day_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.interval_day_);
        } else {
          _this->_impl_.kind_.interval_day_->MergeFrom(*from._impl_.kind_.interval_day_);
        }
        break;
      }
      case kTimestampTz: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.timestamp_tz_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.timestamp_tz_);
        } else {
          _this->_impl_.kind_.timestamp_tz_->MergeFrom(*from._impl_.kind_.timestamp_tz_);
        }
        break;
      }
      case kUuid: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.uuid_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.uuid_);
        } else {
          _this->_impl_.kind_.uuid_->MergeFrom(*from._impl_.kind_.uuid_);
        }
        break;
      }
      case kFixedChar: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.fixed_char_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.fixed_char_);
        } else {
          _this->_impl_.kind_.fixed_char_->MergeFrom(*from._impl_.kind_.fixed_char_);
        }
        break;
      }
      case kVarchar: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.varchar_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.varchar_);
        } else {
          _this->_impl_.kind_.varchar_->MergeFrom(*from._impl_.kind_.varchar_);
        }
        break;
      }
      case kFixedBinary: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.fixed_binary_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.fixed_binary_);
        } else {
          _this->_impl_.kind_.fixed_binary_->MergeFrom(*from._impl_.kind_.fixed_binary_);
        }
        break;
      }
      case kDecimal: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.decimal_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.decimal_);
        } else {
          _this->_impl_.kind_.decimal_->MergeFrom(*from._impl_.kind_.decimal_);
        }
        break;
      }
      case kPrecisionTimestamp: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.precision_timestamp_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.precision_timestamp_);
        } else {
          _this->_impl_.kind_.precision_timestamp_->MergeFrom(*from._impl_.kind_.precision_timestamp_);
        }
        break;
      }
      case kPrecisionTimestampTz: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.precision_timestamp_tz_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.precision_timestamp_tz_);
        } else {
          _this->_impl_.kind_.precision_timestamp_tz_->MergeFrom(*from._impl_.kind_.precision_timestamp_tz_);
        }
        break;
      }
      case kStruct: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.struct__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.struct__);
        } else {
          _this->_impl_.kind_.struct__->MergeFrom(*from._impl_.kind_.struct__);
        }
        break;
      }
      case kList: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.list_);
        } else {
          _this->_impl_.kind_.list_->MergeFrom(*from._impl_.kind_.list_);
        }
        break;
      }
      case kMap: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.map_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.map_);
        } else {
          _this->_impl_.kind_.map_->MergeFrom(*from._impl_.kind_.map_);
        }
        break;
      }
      case kUserDefined: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.user_defined_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.user_defined_);
        } else {
          _this->_impl_.kind_.user_defined_->MergeFrom(*from._impl_.kind_.user_defined_);
        }
        break;
      }
      case kUserDefinedTypeReference: {
        _this->_impl_.kind_.user_defined_type_reference_ = from._impl_.kind_.user_defined_type_reference_;
        break;
      }
      case KIND_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Type::CopyFrom(const Type& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Type)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Type::InternalSwap(Type* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.kind_, other->_impl_.kind_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::google::protobuf::Metadata Type::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

NamedStruct::NamedStruct(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NamedStruct_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.NamedStruct)
}
PROTOBUF_NDEBUG_INLINE NamedStruct::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::NamedStruct& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        names_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::NamedStruct,
              PROTOBUF_FIELD_OFFSET(::substrait::NamedStruct, _impl_.names_)>()
          , from.names_
        }
     {}

NamedStruct::NamedStruct(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const NamedStruct& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NamedStruct_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NamedStruct* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.struct__ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.struct__)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:substrait.NamedStruct)
}
PROTOBUF_NDEBUG_INLINE NamedStruct::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        names_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::NamedStruct,
            PROTOBUF_FIELD_OFFSET(::substrait::NamedStruct, _impl_.names_)>()
         }
     {}

inline void NamedStruct::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.struct__ = {};
}
NamedStruct::~NamedStruct() {
  // @@protoc_insertion_point(destructor:substrait.NamedStruct)
  SharedDtor(*this);
}
inline void NamedStruct::SharedDtor(MessageLite& self) {
  NamedStruct& this_ = static_cast<NamedStruct&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.struct__;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NamedStruct_class_data_ =
        NamedStruct::InternalGenerateClassData_(NamedStruct_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NamedStruct::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NamedStruct_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NamedStruct_class_data_.tc_table);
  return NamedStruct_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NamedStruct::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NamedStruct_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&NamedStruct_globals_));
  return NamedStruct_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const NamedStruct::ParseTableT_
    NamedStruct::_table_ =
        NamedStruct::InternalGenerateParseTable_(NamedStruct_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void NamedStruct::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.NamedStruct)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.names_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.struct__ != nullptr);
      _impl_.struct__->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NamedStruct::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NamedStruct& this_ = static_cast<const NamedStruct&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NamedStruct::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NamedStruct& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.NamedStruct)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated string names = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_names_size(); i < n; ++i) {
      const auto& s = this_._internal_names().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.NamedStruct.names");
      target = stream->WriteString(1, s, target);
    }
  }

  // .substrait.Type.Struct struct = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.struct__, this_._impl_.struct__->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:substrait.NamedStruct)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NamedStruct::ByteSizeLong(const MessageLite& base) {
  const NamedStruct& this_ = static_cast<const NamedStruct&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NamedStruct::ByteSizeLong() const {
  const NamedStruct& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.NamedStruct)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated string names = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_names().size());
      for (int i = 0, n = this_._internal_names().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_names().Get(i));
      }
    }
    // .substrait.Type.Struct struct = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.struct__);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NamedStruct::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<NamedStruct*>(&to_msg);
  auto& from = static_cast<const NamedStruct&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.NamedStruct)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_names()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_names());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.struct__ != nullptr);
      if (_this->_impl_.struct__ == nullptr) {
        _this->_impl_.struct__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.struct__);
      } else {
        _this->_impl_.struct__->MergeFrom(*from._impl_.struct__);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void NamedStruct::CopyFrom(const NamedStruct& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.NamedStruct)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void NamedStruct::InternalSwap(NamedStruct* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.names_.InternalSwap(&other->_impl_.names_);
  swap(_impl_.struct__, other->_impl_.struct__);
}

::google::protobuf::Metadata NamedStruct::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// @@protoc_insertion_point(namespace_scope)
}  // namespace substrait
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
    _static_init2_ [[maybe_unused]] =
        (::_pbi::AddDescriptors(&descriptor_table_substrait_2ftype_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
