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

#include "substrait/algebra.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::RelCommon_Direct
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::RelCommon_Emit
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::RelCommon_Hint_Stats
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::RelCommon_Hint_RuntimeConstraint
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::RelCommon_Hint
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::RelCommon
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReadRel_NamedTable
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReadRel_VirtualTable
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReadRel_ExtensionTable
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReadRel_LocalFiles_FileOrFiles_OrcReadOptions
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReadRel_LocalFiles_FileOrFiles
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReadRel_LocalFiles
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReadRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ProjectRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::JoinRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::CrossRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::FetchRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::AggregateRel_Grouping
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::AggregateRel_Measure
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::AggregateRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ConsistentPartitionWindowRel_WindowRelFunction
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ConsistentPartitionWindowRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::SortRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::FilterRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::SetRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExtensionSingleRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExtensionLeafRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExtensionMultiRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExchangeRel_ScatterFields
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExchangeRel_SingleBucketExpression
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExchangeRel_MultiBucketExpression
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExchangeRel_Broadcast
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExchangeRel_RoundRobin
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExchangeRel_ExchangeTarget
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExchangeRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExpandRel_ExpandField
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExpandRel_SwitchingField
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExpandRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::RelRoot
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Rel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::NamedObjectWrite
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ExtensionObject
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::DdlRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::WriteRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ComparisonJoinKey_ComparisonType
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ComparisonJoinKey
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::HashJoinRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::MergeJoinRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::NestedLoopJoinRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::FunctionArgument
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::FunctionOption
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Enum_Empty
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Enum
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Literal_VarChar
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Literal_Decimal
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Literal_Map_KeyValue
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Literal_Map
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Literal_IntervalYearToMonth
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Literal_IntervalDayToSecond
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Literal_Struct
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Literal_List
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Literal_UserDefined
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Literal
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Nested_Map_KeyValue
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Nested_Map
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Nested_Struct
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Nested_List
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Nested
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_ScalarFunction
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_WindowFunction_Bound_Preceding
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_WindowFunction_Bound_Following
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_WindowFunction_Bound_CurrentRow
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_WindowFunction_Bound_Unbounded
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_WindowFunction_Bound
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_WindowFunction
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_IfThen_IfClause
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_IfThen
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Cast
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_SwitchExpression_IfValue
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_SwitchExpression
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_SingularOrList
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MultiOrList_Record
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MultiOrList
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_EmbeddedFunction_PythonPickleFunction
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_EmbeddedFunction_WebAssemblyFunction
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_EmbeddedFunction
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_ReferenceSegment_MapKey
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_ReferenceSegment_StructField
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_ReferenceSegment_ListElement
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_ReferenceSegment
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression_Select
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression_StructSelect
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression_StructItem
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression_ListSelect_ListSelectItem
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression_ListSelect
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression_MapSelect_MapKey
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression_MapSelect_MapKeyExpression
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression_MapSelect
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_MaskExpression
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_FieldReference_RootReference
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_FieldReference_OuterReference
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_FieldReference
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Subquery_Scalar
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Subquery_InPredicate
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Subquery_SetPredicate
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Subquery_SetComparison
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression_Subquery
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::Expression
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::SortField
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::AggregateFunction
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
        // ::substrait::ReferenceRel
        {&::_pbi::kDescriptorMethods, &::descriptor_table_substrait_2falgebra_2eproto, /* tracker*/ nullptr,},
};
}  // namespace
#endif
namespace substrait {
class RelCommon_Emit::_Internal {
 public:
  using HasBits = decltype(::std::declval<RelCommon_Emit>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(RelCommon_Emit, _impl_._has_bits_);
};

constexpr RelCommon_Emit::ParseTableT_ RelCommon_Emit::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RelCommon_Emit, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::RelCommon_Emit>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated int32 output_mapping = 1;
      {::_pbi::TcParser::FastV32P1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(RelCommon_Emit, _impl_.output_mapping_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated int32 output_mapping = 1;
      {PROTOBUF_FIELD_OFFSET(RelCommon_Emit, _impl_.output_mapping_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


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

template <typename>
constexpr RelCommon_Emit::RelCommon_Emit(::_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 RelCommon_Emit::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RelCommon_Emit(arena);
}
constexpr auto RelCommon_Emit::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(RelCommon_Emit), alignof(RelCommon_Emit));
}
constexpr auto RelCommon_Emit::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
          &RelCommon_Emit::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RelCommon_Emit>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RelCommon_Emit::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RelCommon_Emit>(), &RelCommon_Emit::ByteSizeLong,
              &RelCommon_Emit::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RelCommon_Emit, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[1],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RelCommon_EmitGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RelCommon_EmitGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RelCommon_Emit_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RelCommon_Emit::InternalGenerateClassData_(
            _default, &RelCommon_Emit_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RelCommon_Emit>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RelCommon_EmitGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RelCommon_Emit _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RelCommon_Emit>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RelCommon_EmitGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST RelCommon_EmitGlobalsTypeInternal RelCommon_Emit_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* RelCommon_Emit_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return RelCommon_Emit_globals_.GetClassData();
#else
  return RelCommon_Emit_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class RelCommon_Direct::_Internal {
 public:
};

constexpr RelCommon_Direct::ParseTableT_ RelCommon_Direct::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RelCommon_Direct,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // 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::RelCommon_Direct>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr RelCommon_Direct::RelCommon_Direct(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL RelCommon_Direct::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RelCommon_Direct(arena);
}
constexpr auto RelCommon_Direct::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RelCommon_Direct), alignof(RelCommon_Direct));
}
constexpr auto RelCommon_Direct::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
          &RelCommon_Direct::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<RelCommon_Direct>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RelCommon_Direct::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<RelCommon_Direct>(), &RelCommon_Direct::ByteSizeLong,
              &RelCommon_Direct::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RelCommon_Direct, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[0],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RelCommon_DirectGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RelCommon_DirectGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RelCommon_Direct_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RelCommon_Direct::InternalGenerateClassData_(
            _default, &RelCommon_Direct_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RelCommon_Direct>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RelCommon_DirectGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RelCommon_Direct _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RelCommon_Direct>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RelCommon_DirectGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ReferenceRel::ParseTableT_ ReferenceRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReferenceRel, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::ReferenceRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // int32 subtree_ordinal = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ReferenceRel, _impl_.subtree_ordinal_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(ReferenceRel, _impl_.subtree_ordinal_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 subtree_ordinal = 1;
      {PROTOBUF_FIELD_OFFSET(ReferenceRel, _impl_.subtree_ordinal_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


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

template <typename>
constexpr ReferenceRel::ReferenceRel(::_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 ReferenceRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReferenceRel(arena);
}
constexpr auto ReferenceRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ReferenceRel), alignof(ReferenceRel));
}
constexpr auto ReferenceRel::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
          &ReferenceRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ReferenceRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReferenceRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ReferenceRel>(), &ReferenceRel::ByteSizeLong,
              &ReferenceRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReferenceRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[115],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReferenceRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReferenceRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReferenceRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReferenceRel::InternalGenerateClassData_(
            _default, &ReferenceRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReferenceRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReferenceRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReferenceRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReferenceRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReferenceRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ReferenceRelGlobalsTypeInternal ReferenceRel_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ReferenceRel_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ReferenceRel_globals_.GetClassData();
#else
  return ReferenceRel_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::_Internal {
 public:
};

constexpr ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::ParseTableT_ ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // 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::ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions(arena);
}
constexpr auto ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions), alignof(ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions));
}
constexpr auto ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::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
          &ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions>(), &ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::ByteSizeLong,
              &ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[9],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReadRel_LocalFiles_FileOrFiles_ParquetReadOptionsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReadRel_LocalFiles_FileOrFiles_ParquetReadOptionsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::InternalGenerateClassData_(
            _default, &ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReadRel_LocalFiles_FileOrFiles_ParquetReadOptionsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_ParquetReadOptionsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ReadRel_LocalFiles_FileOrFiles_ParquetReadOptionsGlobalsTypeInternal ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_globals_.GetClassData();
#else
  return ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::_Internal {
 public:
};

constexpr ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::ParseTableT_ ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_OrcReadOptions,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // 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::ReadRel_LocalFiles_FileOrFiles_OrcReadOptions>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::ReadRel_LocalFiles_FileOrFiles_OrcReadOptions(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReadRel_LocalFiles_FileOrFiles_OrcReadOptions(arena);
}
constexpr auto ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ReadRel_LocalFiles_FileOrFiles_OrcReadOptions), alignof(ReadRel_LocalFiles_FileOrFiles_OrcReadOptions));
}
constexpr auto ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::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
          &ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<ReadRel_LocalFiles_FileOrFiles_OrcReadOptions>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<ReadRel_LocalFiles_FileOrFiles_OrcReadOptions>(), &ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::ByteSizeLong,
              &ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_OrcReadOptions, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[11],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReadRel_LocalFiles_FileOrFiles_OrcReadOptionsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReadRel_LocalFiles_FileOrFiles_OrcReadOptionsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::InternalGenerateClassData_(
            _default, &ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles_FileOrFiles_OrcReadOptions>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReadRel_LocalFiles_FileOrFiles_OrcReadOptionsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReadRel_LocalFiles_FileOrFiles_OrcReadOptions _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles_FileOrFiles_OrcReadOptions>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_OrcReadOptionsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ReadRel_LocalFiles_FileOrFiles_OrcReadOptionsGlobalsTypeInternal ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_globals_.GetClassData();
#else
  return ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::_Internal {
 public:
};

constexpr ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::ParseTableT_ ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // 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::ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions(arena);
}
constexpr auto ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions), alignof(ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions));
}
constexpr auto ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::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
          &ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions>(), &ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::ByteSizeLong,
              &ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[12],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReadRel_LocalFiles_FileOrFiles_DwrfReadOptionsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReadRel_LocalFiles_FileOrFiles_DwrfReadOptionsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::InternalGenerateClassData_(
            _default, &ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReadRel_LocalFiles_FileOrFiles_DwrfReadOptionsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_DwrfReadOptionsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ReadRel_LocalFiles_FileOrFiles_DwrfReadOptionsGlobalsTypeInternal ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_globals_.GetClassData();
#else
  return ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::_Internal {
 public:
};

constexpr ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::ParseTableT_ ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // 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::ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions(arena);
}
constexpr auto ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions), alignof(ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions));
}
constexpr auto ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::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
          &ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions>(), &ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::ByteSizeLong,
              &ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[10],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReadRel_LocalFiles_FileOrFiles_ArrowReadOptionsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReadRel_LocalFiles_FileOrFiles_ArrowReadOptionsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::InternalGenerateClassData_(
            _default, &ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReadRel_LocalFiles_FileOrFiles_ArrowReadOptionsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles_ArrowReadOptionsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FunctionOption::ParseTableT_ FunctionOption::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FunctionOption, _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::FunctionOption>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated string preference = 2;
      {::_pbi::TcParser::FastUR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(FunctionOption, _impl_.preference_)}},
      // string name = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(FunctionOption, _impl_.name_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string name = 1;
      {PROTOBUF_FIELD_OFFSET(FunctionOption, _impl_.name_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // repeated string preference = 2;
      {PROTOBUF_FIELD_OFFSET(FunctionOption, _impl_.preference_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
    }},
    // no aux_entries
    {{
      "\30\4\12\0\0\0\0\0"
      "substrait.FunctionOption"
      "name"
      "preference"
    }},
  };
}


inline constexpr FunctionOption::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        preference_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::FunctionOption,
            PROTOBUF_FIELD_OFFSET(::substrait::FunctionOption, _impl_.preference_)>()
         }
        ,
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr FunctionOption::FunctionOption(::_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 FunctionOption::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FunctionOption(arena);
}
constexpr auto FunctionOption::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FunctionOption), alignof(FunctionOption));
}
constexpr auto FunctionOption::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
          &FunctionOption::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FunctionOption>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FunctionOption::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FunctionOption>(), &FunctionOption::ByteSizeLong,
              &FunctionOption::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FunctionOption, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[53],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct FunctionOptionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FunctionOptionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FunctionOption_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FunctionOption::InternalGenerateClassData_(
            _default, &FunctionOption_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FunctionOption>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FunctionOptionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FunctionOption _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FunctionOption>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FunctionOptionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FunctionOptionGlobalsTypeInternal FunctionOption_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FunctionOption_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FunctionOption_globals_.GetClassData();
#else
  return FunctionOption_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Expression_WindowFunction_Bound_Unbounded::_Internal {
 public:
};

constexpr Expression_WindowFunction_Bound_Unbounded::ParseTableT_ Expression_WindowFunction_Bound_Unbounded::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_Unbounded,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // 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::Expression_WindowFunction_Bound_Unbounded>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr Expression_WindowFunction_Bound_Unbounded::Expression_WindowFunction_Bound_Unbounded(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL Expression_WindowFunction_Bound_Unbounded::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_WindowFunction_Bound_Unbounded(arena);
}
constexpr auto Expression_WindowFunction_Bound_Unbounded::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_WindowFunction_Bound_Unbounded), alignof(Expression_WindowFunction_Bound_Unbounded));
}
constexpr auto Expression_WindowFunction_Bound_Unbounded::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
          &Expression_WindowFunction_Bound_Unbounded::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<Expression_WindowFunction_Bound_Unbounded>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_WindowFunction_Bound_Unbounded::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<Expression_WindowFunction_Bound_Unbounded>(), &Expression_WindowFunction_Bound_Unbounded::ByteSizeLong,
              &Expression_WindowFunction_Bound_Unbounded::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_Unbounded, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[75],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_WindowFunction_Bound_UnboundedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_WindowFunction_Bound_UnboundedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_WindowFunction_Bound_Unbounded_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_WindowFunction_Bound_Unbounded::InternalGenerateClassData_(
            _default, &Expression_WindowFunction_Bound_Unbounded_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction_Bound_Unbounded>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_WindowFunction_Bound_UnboundedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_WindowFunction_Bound_Unbounded _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction_Bound_Unbounded>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_UnboundedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_WindowFunction_Bound_Preceding::ParseTableT_ Expression_WindowFunction_Bound_Preceding::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_Preceding, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_WindowFunction_Bound_Preceding>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // int64 offset = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(Expression_WindowFunction_Bound_Preceding, _impl_.offset_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_Preceding, _impl_.offset_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int64 offset = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_Preceding, _impl_.offset_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Expression_WindowFunction_Bound_Preceding::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        offset_{::int64_t{0}} {}

template <typename>
constexpr Expression_WindowFunction_Bound_Preceding::Expression_WindowFunction_Bound_Preceding(::_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 Expression_WindowFunction_Bound_Preceding::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_WindowFunction_Bound_Preceding(arena);
}
constexpr auto Expression_WindowFunction_Bound_Preceding::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_WindowFunction_Bound_Preceding), alignof(Expression_WindowFunction_Bound_Preceding));
}
constexpr auto Expression_WindowFunction_Bound_Preceding::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
          &Expression_WindowFunction_Bound_Preceding::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_WindowFunction_Bound_Preceding>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_WindowFunction_Bound_Preceding::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_WindowFunction_Bound_Preceding>(), &Expression_WindowFunction_Bound_Preceding::ByteSizeLong,
              &Expression_WindowFunction_Bound_Preceding::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_Preceding, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[72],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_WindowFunction_Bound_PrecedingGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_WindowFunction_Bound_PrecedingGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_WindowFunction_Bound_Preceding_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_WindowFunction_Bound_Preceding::InternalGenerateClassData_(
            _default, &Expression_WindowFunction_Bound_Preceding_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction_Bound_Preceding>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_WindowFunction_Bound_PrecedingGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_WindowFunction_Bound_Preceding _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction_Bound_Preceding>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_PrecedingGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_WindowFunction_Bound_Following::ParseTableT_ Expression_WindowFunction_Bound_Following::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_Following, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_WindowFunction_Bound_Following>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // int64 offset = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(Expression_WindowFunction_Bound_Following, _impl_.offset_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_Following, _impl_.offset_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int64 offset = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_Following, _impl_.offset_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Expression_WindowFunction_Bound_Following::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        offset_{::int64_t{0}} {}

template <typename>
constexpr Expression_WindowFunction_Bound_Following::Expression_WindowFunction_Bound_Following(::_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 Expression_WindowFunction_Bound_Following::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_WindowFunction_Bound_Following(arena);
}
constexpr auto Expression_WindowFunction_Bound_Following::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_WindowFunction_Bound_Following), alignof(Expression_WindowFunction_Bound_Following));
}
constexpr auto Expression_WindowFunction_Bound_Following::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
          &Expression_WindowFunction_Bound_Following::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_WindowFunction_Bound_Following>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_WindowFunction_Bound_Following::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_WindowFunction_Bound_Following>(), &Expression_WindowFunction_Bound_Following::ByteSizeLong,
              &Expression_WindowFunction_Bound_Following::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_Following, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[73],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_WindowFunction_Bound_FollowingGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_WindowFunction_Bound_FollowingGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_WindowFunction_Bound_Following_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_WindowFunction_Bound_Following::InternalGenerateClassData_(
            _default, &Expression_WindowFunction_Bound_Following_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction_Bound_Following>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_WindowFunction_Bound_FollowingGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_WindowFunction_Bound_Following _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction_Bound_Following>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_FollowingGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Expression_WindowFunction_Bound_FollowingGlobalsTypeInternal Expression_WindowFunction_Bound_Following_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Expression_WindowFunction_Bound_Following_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Expression_WindowFunction_Bound_Following_globals_.GetClassData();
#else
  return Expression_WindowFunction_Bound_Following_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Expression_WindowFunction_Bound_CurrentRow::_Internal {
 public:
};

constexpr Expression_WindowFunction_Bound_CurrentRow::ParseTableT_ Expression_WindowFunction_Bound_CurrentRow::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_CurrentRow,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // 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::Expression_WindowFunction_Bound_CurrentRow>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr Expression_WindowFunction_Bound_CurrentRow::Expression_WindowFunction_Bound_CurrentRow(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL Expression_WindowFunction_Bound_CurrentRow::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_WindowFunction_Bound_CurrentRow(arena);
}
constexpr auto Expression_WindowFunction_Bound_CurrentRow::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_WindowFunction_Bound_CurrentRow), alignof(Expression_WindowFunction_Bound_CurrentRow));
}
constexpr auto Expression_WindowFunction_Bound_CurrentRow::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
          &Expression_WindowFunction_Bound_CurrentRow::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<Expression_WindowFunction_Bound_CurrentRow>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_WindowFunction_Bound_CurrentRow::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<Expression_WindowFunction_Bound_CurrentRow>(), &Expression_WindowFunction_Bound_CurrentRow::ByteSizeLong,
              &Expression_WindowFunction_Bound_CurrentRow::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_CurrentRow, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[74],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_WindowFunction_Bound_CurrentRowGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_WindowFunction_Bound_CurrentRowGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_WindowFunction_Bound_CurrentRow_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_WindowFunction_Bound_CurrentRow::InternalGenerateClassData_(
            _default, &Expression_WindowFunction_Bound_CurrentRow_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction_Bound_CurrentRow>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_WindowFunction_Bound_CurrentRowGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_WindowFunction_Bound_CurrentRow _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction_Bound_CurrentRow>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound_CurrentRowGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression_MapSelect_MapKeyExpression::ParseTableT_ Expression_MaskExpression_MapSelect_MapKeyExpression::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect_MapKeyExpression, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_MaskExpression_MapSelect_MapKeyExpression>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string map_key_expression = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect_MapKeyExpression, _impl_.map_key_expression_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string map_key_expression = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect_MapKeyExpression, _impl_.map_key_expression_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\76\22\0\0\0\0\0\0"
      "substrait.Expression.MaskExpression.MapSelect.MapKeyExpression"
      "map_key_expression"
    }},
  };
}


inline constexpr Expression_MaskExpression_MapSelect_MapKeyExpression::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        map_key_expression_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr Expression_MaskExpression_MapSelect_MapKeyExpression::Expression_MaskExpression_MapSelect_MapKeyExpression(::_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 Expression_MaskExpression_MapSelect_MapKeyExpression::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression_MapSelect_MapKeyExpression(arena);
}
constexpr auto Expression_MaskExpression_MapSelect_MapKeyExpression::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_MaskExpression_MapSelect_MapKeyExpression), alignof(Expression_MaskExpression_MapSelect_MapKeyExpression));
}
constexpr auto Expression_MaskExpression_MapSelect_MapKeyExpression::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
          &Expression_MaskExpression_MapSelect_MapKeyExpression::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression_MapSelect_MapKeyExpression>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression_MapSelect_MapKeyExpression::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression_MapSelect_MapKeyExpression>(), &Expression_MaskExpression_MapSelect_MapKeyExpression::ByteSizeLong,
              &Expression_MaskExpression_MapSelect_MapKeyExpression::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect_MapKeyExpression, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[101],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpression_MapSelect_MapKeyExpressionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpression_MapSelect_MapKeyExpressionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_MapSelect_MapKeyExpression_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression_MapSelect_MapKeyExpression::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_MapSelect_MapKeyExpression_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_MapSelect_MapKeyExpression>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpression_MapSelect_MapKeyExpressionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression_MapSelect_MapKeyExpression _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_MapSelect_MapKeyExpression>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect_MapKeyExpressionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression_MapSelect_MapKey::ParseTableT_ Expression_MaskExpression_MapSelect_MapKey::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect_MapKey, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_MaskExpression_MapSelect_MapKey>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string map_key = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect_MapKey, _impl_.map_key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string map_key = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect_MapKey, _impl_.map_key_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\64\7\0\0\0\0\0\0"
      "substrait.Expression.MaskExpression.MapSelect.MapKey"
      "map_key"
    }},
  };
}


inline constexpr Expression_MaskExpression_MapSelect_MapKey::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        map_key_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr Expression_MaskExpression_MapSelect_MapKey::Expression_MaskExpression_MapSelect_MapKey(::_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 Expression_MaskExpression_MapSelect_MapKey::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression_MapSelect_MapKey(arena);
}
constexpr auto Expression_MaskExpression_MapSelect_MapKey::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_MaskExpression_MapSelect_MapKey), alignof(Expression_MaskExpression_MapSelect_MapKey));
}
constexpr auto Expression_MaskExpression_MapSelect_MapKey::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
          &Expression_MaskExpression_MapSelect_MapKey::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression_MapSelect_MapKey>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression_MapSelect_MapKey::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression_MapSelect_MapKey>(), &Expression_MaskExpression_MapSelect_MapKey::ByteSizeLong,
              &Expression_MaskExpression_MapSelect_MapKey::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect_MapKey, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[100],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpression_MapSelect_MapKeyGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpression_MapSelect_MapKeyGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_MapSelect_MapKey_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression_MapSelect_MapKey::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_MapSelect_MapKey_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_MapSelect_MapKey>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpression_MapSelect_MapKeyGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression_MapSelect_MapKey _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_MapSelect_MapKey>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect_MapKeyGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::ParseTableT_ Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _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::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // int32 end = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_.end_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_.end_)}},
      // int32 start = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_.start_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_.start_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 start = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_.start_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // int32 end = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_.end_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        start_{0},
        end_{0} {}

template <typename>
constexpr Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice(::_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 Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice(arena);
}
constexpr auto Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice), alignof(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice));
}
constexpr auto Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::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
          &Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice>(), &Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::ByteSizeLong,
              &Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[97],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpression_ListSelect_ListSelectItem_ListSliceGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpression_ListSelect_ListSelectItem_ListSliceGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpression_ListSelect_ListSelectItem_ListSliceGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListSliceGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::ParseTableT_ Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListElement, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // int32 field = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_MaskExpression_ListSelect_ListSelectItem_ListElement, _impl_.field_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListElement, _impl_.field_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 field = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListElement, _impl_.field_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement(::_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 Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression_ListSelect_ListSelectItem_ListElement(arena);
}
constexpr auto Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_MaskExpression_ListSelect_ListSelectItem_ListElement), alignof(Expression_MaskExpression_ListSelect_ListSelectItem_ListElement));
}
constexpr auto Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::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
          &Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression_ListSelect_ListSelectItem_ListElement>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression_ListSelect_ListSelectItem_ListElement>(), &Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::ByteSizeLong,
              &Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListElement, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[96],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpression_ListSelect_ListSelectItem_ListElementGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpression_ListSelect_ListSelectItem_ListElementGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_ListSelect_ListSelectItem_ListElement_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_ListSelect_ListSelectItem_ListElement_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_ListSelect_ListSelectItem_ListElement>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpression_ListSelect_ListSelectItem_ListElementGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression_ListSelect_ListSelectItem_ListElement _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_ListSelect_ListSelectItem_ListElement>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListElementGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Literal_VarChar::ParseTableT_ Expression_Literal_VarChar::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Literal_VarChar, _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::Expression_Literal_VarChar>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 length = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Literal_VarChar, _impl_.length_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_VarChar, _impl_.length_)}},
      // string value = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_VarChar, _impl_.value_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string value = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_VarChar, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 length = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_VarChar, _impl_.length_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
      "\44\5\0\0\0\0\0\0"
      "substrait.Expression.Literal.VarChar"
      "value"
    }},
  };
}


inline constexpr Expression_Literal_VarChar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        value_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        length_{0u} {}

template <typename>
constexpr Expression_Literal_VarChar::Expression_Literal_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 Expression_Literal_VarChar::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Literal_VarChar(arena);
}
constexpr auto Expression_Literal_VarChar::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_Literal_VarChar), alignof(Expression_Literal_VarChar));
}
constexpr auto Expression_Literal_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
          &Expression_Literal_VarChar::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Literal_VarChar>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Literal_VarChar::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Literal_VarChar>(), &Expression_Literal_VarChar::ByteSizeLong,
              &Expression_Literal_VarChar::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Literal_VarChar, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[56],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Literal_VarCharGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Literal_VarCharGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Literal_VarChar_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Literal_VarChar::InternalGenerateClassData_(
            _default, &Expression_Literal_VarChar_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_VarChar>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Literal_VarCharGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Literal_VarChar _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_VarChar>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Literal_VarCharGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Literal_IntervalYearToMonth::ParseTableT_ Expression_Literal_IntervalYearToMonth::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalYearToMonth, _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::Expression_Literal_IntervalYearToMonth>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // int32 months = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Literal_IntervalYearToMonth, _impl_.months_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalYearToMonth, _impl_.months_)}},
      // int32 years = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Literal_IntervalYearToMonth, _impl_.years_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalYearToMonth, _impl_.years_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 years = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalYearToMonth, _impl_.years_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // int32 months = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalYearToMonth, _impl_.months_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Expression_Literal_IntervalYearToMonth::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        years_{0},
        months_{0} {}

template <typename>
constexpr Expression_Literal_IntervalYearToMonth::Expression_Literal_IntervalYearToMonth(::_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 Expression_Literal_IntervalYearToMonth::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Literal_IntervalYearToMonth(arena);
}
constexpr auto Expression_Literal_IntervalYearToMonth::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Literal_IntervalYearToMonth), alignof(Expression_Literal_IntervalYearToMonth));
}
constexpr auto Expression_Literal_IntervalYearToMonth::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
          &Expression_Literal_IntervalYearToMonth::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Literal_IntervalYearToMonth>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Literal_IntervalYearToMonth::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Literal_IntervalYearToMonth>(), &Expression_Literal_IntervalYearToMonth::ByteSizeLong,
              &Expression_Literal_IntervalYearToMonth::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalYearToMonth, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[60],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Literal_IntervalYearToMonthGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Literal_IntervalYearToMonthGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Literal_IntervalYearToMonth_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Literal_IntervalYearToMonth::InternalGenerateClassData_(
            _default, &Expression_Literal_IntervalYearToMonth_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_IntervalYearToMonth>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Literal_IntervalYearToMonthGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Literal_IntervalYearToMonth _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_IntervalYearToMonth>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalYearToMonthGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Literal_IntervalDayToSecond::ParseTableT_ Expression_Literal_IntervalDayToSecond::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalDayToSecond, _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::Expression_Literal_IntervalDayToSecond>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // int32 days = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Literal_IntervalDayToSecond, _impl_.days_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalDayToSecond, _impl_.days_)}},
      // int32 seconds = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Literal_IntervalDayToSecond, _impl_.seconds_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalDayToSecond, _impl_.seconds_)}},
      // int32 microseconds = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Literal_IntervalDayToSecond, _impl_.microseconds_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalDayToSecond, _impl_.microseconds_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 days = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalDayToSecond, _impl_.days_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // int32 seconds = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalDayToSecond, _impl_.seconds_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // int32 microseconds = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalDayToSecond, _impl_.microseconds_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Expression_Literal_IntervalDayToSecond::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        days_{0},
        seconds_{0},
        microseconds_{0} {}

template <typename>
constexpr Expression_Literal_IntervalDayToSecond::Expression_Literal_IntervalDayToSecond(::_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 Expression_Literal_IntervalDayToSecond::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Literal_IntervalDayToSecond(arena);
}
constexpr auto Expression_Literal_IntervalDayToSecond::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Literal_IntervalDayToSecond), alignof(Expression_Literal_IntervalDayToSecond));
}
constexpr auto Expression_Literal_IntervalDayToSecond::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
          &Expression_Literal_IntervalDayToSecond::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Literal_IntervalDayToSecond>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Literal_IntervalDayToSecond::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Literal_IntervalDayToSecond>(), &Expression_Literal_IntervalDayToSecond::ByteSizeLong,
              &Expression_Literal_IntervalDayToSecond::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalDayToSecond, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[61],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Literal_IntervalDayToSecondGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Literal_IntervalDayToSecondGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Literal_IntervalDayToSecond_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Literal_IntervalDayToSecond::InternalGenerateClassData_(
            _default, &Expression_Literal_IntervalDayToSecond_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_IntervalDayToSecond>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Literal_IntervalDayToSecondGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Literal_IntervalDayToSecond _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_IntervalDayToSecond>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalDayToSecondGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Literal_Decimal::ParseTableT_ Expression_Literal_Decimal::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Literal_Decimal, _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::Expression_Literal_Decimal>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // bytes value = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_Decimal, _impl_.value_)}},
      // int32 precision = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Literal_Decimal, _impl_.precision_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_Decimal, _impl_.precision_)}},
      // int32 scale = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Literal_Decimal, _impl_.scale_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_Decimal, _impl_.scale_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bytes value = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_Decimal, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // int32 precision = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_Decimal, _impl_.precision_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // int32 scale = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_Decimal, _impl_.scale_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Expression_Literal_Decimal::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        value_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        precision_{0},
        scale_{0} {}

template <typename>
constexpr Expression_Literal_Decimal::Expression_Literal_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 Expression_Literal_Decimal::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Literal_Decimal(arena);
}
constexpr auto Expression_Literal_Decimal::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_Literal_Decimal), alignof(Expression_Literal_Decimal));
}
constexpr auto Expression_Literal_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
          &Expression_Literal_Decimal::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Literal_Decimal>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Literal_Decimal::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Literal_Decimal>(), &Expression_Literal_Decimal::ByteSizeLong,
              &Expression_Literal_Decimal::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Literal_Decimal, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[57],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Literal_DecimalGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Literal_DecimalGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Literal_Decimal_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Literal_Decimal::InternalGenerateClassData_(
            _default, &Expression_Literal_Decimal_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_Decimal>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Literal_DecimalGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Literal_Decimal _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_Decimal>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Literal_DecimalGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Expression_Literal_DecimalGlobalsTypeInternal Expression_Literal_Decimal_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Expression_Literal_Decimal_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Expression_Literal_Decimal_globals_.GetClassData();
#else
  return Expression_Literal_Decimal_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Expression_FieldReference_RootReference::_Internal {
 public:
};

constexpr Expression_FieldReference_RootReference::ParseTableT_ Expression_FieldReference_RootReference::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_FieldReference_RootReference,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // 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::Expression_FieldReference_RootReference>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr Expression_FieldReference_RootReference::Expression_FieldReference_RootReference(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL Expression_FieldReference_RootReference::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_FieldReference_RootReference(arena);
}
constexpr auto Expression_FieldReference_RootReference::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_FieldReference_RootReference), alignof(Expression_FieldReference_RootReference));
}
constexpr auto Expression_FieldReference_RootReference::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
          &Expression_FieldReference_RootReference::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<Expression_FieldReference_RootReference>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_FieldReference_RootReference::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<Expression_FieldReference_RootReference>(), &Expression_FieldReference_RootReference::ByteSizeLong,
              &Expression_FieldReference_RootReference::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_FieldReference_RootReference, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[104],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_FieldReference_RootReferenceGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_FieldReference_RootReferenceGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_FieldReference_RootReference_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_FieldReference_RootReference::InternalGenerateClassData_(
            _default, &Expression_FieldReference_RootReference_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_FieldReference_RootReference>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_FieldReference_RootReferenceGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_FieldReference_RootReference _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_FieldReference_RootReference>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_FieldReference_RootReferenceGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_FieldReference_OuterReference::ParseTableT_ Expression_FieldReference_OuterReference::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_FieldReference_OuterReference, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_FieldReference_OuterReference>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 steps_out = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_FieldReference_OuterReference, _impl_.steps_out_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_FieldReference_OuterReference, _impl_.steps_out_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 steps_out = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_FieldReference_OuterReference, _impl_.steps_out_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Expression_FieldReference_OuterReference::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        steps_out_{0u} {}

template <typename>
constexpr Expression_FieldReference_OuterReference::Expression_FieldReference_OuterReference(::_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 Expression_FieldReference_OuterReference::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_FieldReference_OuterReference(arena);
}
constexpr auto Expression_FieldReference_OuterReference::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_FieldReference_OuterReference), alignof(Expression_FieldReference_OuterReference));
}
constexpr auto Expression_FieldReference_OuterReference::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
          &Expression_FieldReference_OuterReference::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_FieldReference_OuterReference>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_FieldReference_OuterReference::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_FieldReference_OuterReference>(), &Expression_FieldReference_OuterReference::ByteSizeLong,
              &Expression_FieldReference_OuterReference::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_FieldReference_OuterReference, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[105],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_FieldReference_OuterReferenceGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_FieldReference_OuterReferenceGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_FieldReference_OuterReference_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_FieldReference_OuterReference::InternalGenerateClassData_(
            _default, &Expression_FieldReference_OuterReference_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_FieldReference_OuterReference>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_FieldReference_OuterReferenceGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_FieldReference_OuterReference _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_FieldReference_OuterReference>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_FieldReference_OuterReferenceGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Expression_FieldReference_OuterReferenceGlobalsTypeInternal Expression_FieldReference_OuterReference_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Expression_FieldReference_OuterReference_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Expression_FieldReference_OuterReference_globals_.GetClassData();
#else
  return Expression_FieldReference_OuterReference_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Expression_Enum_Empty::_Internal {
 public:
};

constexpr Expression_Enum_Empty::ParseTableT_ Expression_Enum_Empty::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Enum_Empty,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // 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::Expression_Enum_Empty>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr Expression_Enum_Empty::Expression_Enum_Empty(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL Expression_Enum_Empty::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Enum_Empty(arena);
}
constexpr auto Expression_Enum_Empty::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Enum_Empty), alignof(Expression_Enum_Empty));
}
constexpr auto Expression_Enum_Empty::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
          &Expression_Enum_Empty::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<Expression_Enum_Empty>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Enum_Empty::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<Expression_Enum_Empty>(), &Expression_Enum_Empty::ByteSizeLong,
              &Expression_Enum_Empty::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Enum_Empty, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[54],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Enum_EmptyGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Enum_EmptyGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Enum_Empty_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Enum_Empty::InternalGenerateClassData_(
            _default, &Expression_Enum_Empty_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Enum_Empty>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Enum_EmptyGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Enum_Empty _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Enum_Empty>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Enum_EmptyGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_EmbeddedFunction_WebAssemblyFunction::ParseTableT_ Expression_EmbeddedFunction_WebAssemblyFunction::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_WebAssemblyFunction, _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::Expression_EmbeddedFunction_WebAssemblyFunction>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated string prerequisite = 2;
      {::_pbi::TcParser::FastUR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_WebAssemblyFunction, _impl_.prerequisite_)}},
      // bytes script = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_WebAssemblyFunction, _impl_.script_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bytes script = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_WebAssemblyFunction, _impl_.script_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated string prerequisite = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_WebAssemblyFunction, _impl_.prerequisite_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
    }},
    // no aux_entries
    {{
      "\71\0\14\0\0\0\0\0"
      "substrait.Expression.EmbeddedFunction.WebAssemblyFunction"
      "prerequisite"
    }},
  };
}


inline constexpr Expression_EmbeddedFunction_WebAssemblyFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        prerequisite_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_EmbeddedFunction_WebAssemblyFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction_WebAssemblyFunction, _impl_.prerequisite_)>()
         }
        ,
        script_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr Expression_EmbeddedFunction_WebAssemblyFunction::Expression_EmbeddedFunction_WebAssemblyFunction(::_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 Expression_EmbeddedFunction_WebAssemblyFunction::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_EmbeddedFunction_WebAssemblyFunction(arena);
}
constexpr auto Expression_EmbeddedFunction_WebAssemblyFunction::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_EmbeddedFunction_WebAssemblyFunction), alignof(Expression_EmbeddedFunction_WebAssemblyFunction));
}
constexpr auto Expression_EmbeddedFunction_WebAssemblyFunction::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
          &Expression_EmbeddedFunction_WebAssemblyFunction::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_EmbeddedFunction_WebAssemblyFunction>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_EmbeddedFunction_WebAssemblyFunction::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_EmbeddedFunction_WebAssemblyFunction>(), &Expression_EmbeddedFunction_WebAssemblyFunction::ByteSizeLong,
              &Expression_EmbeddedFunction_WebAssemblyFunction::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_WebAssemblyFunction, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[87],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_EmbeddedFunction_WebAssemblyFunctionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_EmbeddedFunction_WebAssemblyFunctionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_EmbeddedFunction_WebAssemblyFunction_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_EmbeddedFunction_WebAssemblyFunction::InternalGenerateClassData_(
            _default, &Expression_EmbeddedFunction_WebAssemblyFunction_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_EmbeddedFunction_WebAssemblyFunction>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_EmbeddedFunction_WebAssemblyFunctionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_EmbeddedFunction_WebAssemblyFunction _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_EmbeddedFunction_WebAssemblyFunction>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_WebAssemblyFunctionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_EmbeddedFunction_PythonPickleFunction::ParseTableT_ Expression_EmbeddedFunction_PythonPickleFunction::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_PythonPickleFunction, _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::Expression_EmbeddedFunction_PythonPickleFunction>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated string prerequisite = 2;
      {::_pbi::TcParser::FastUR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_PythonPickleFunction, _impl_.prerequisite_)}},
      // bytes function = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_PythonPickleFunction, _impl_.function_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bytes function = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_PythonPickleFunction, _impl_.function_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated string prerequisite = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_PythonPickleFunction, _impl_.prerequisite_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
    }},
    // no aux_entries
    {{
      "\72\0\14\0\0\0\0\0"
      "substrait.Expression.EmbeddedFunction.PythonPickleFunction"
      "prerequisite"
    }},
  };
}


inline constexpr Expression_EmbeddedFunction_PythonPickleFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        prerequisite_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_EmbeddedFunction_PythonPickleFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction_PythonPickleFunction, _impl_.prerequisite_)>()
         }
        ,
        function_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr Expression_EmbeddedFunction_PythonPickleFunction::Expression_EmbeddedFunction_PythonPickleFunction(::_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 Expression_EmbeddedFunction_PythonPickleFunction::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_EmbeddedFunction_PythonPickleFunction(arena);
}
constexpr auto Expression_EmbeddedFunction_PythonPickleFunction::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_EmbeddedFunction_PythonPickleFunction), alignof(Expression_EmbeddedFunction_PythonPickleFunction));
}
constexpr auto Expression_EmbeddedFunction_PythonPickleFunction::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
          &Expression_EmbeddedFunction_PythonPickleFunction::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_EmbeddedFunction_PythonPickleFunction>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_EmbeddedFunction_PythonPickleFunction::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_EmbeddedFunction_PythonPickleFunction>(), &Expression_EmbeddedFunction_PythonPickleFunction::ByteSizeLong,
              &Expression_EmbeddedFunction_PythonPickleFunction::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_PythonPickleFunction, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[86],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_EmbeddedFunction_PythonPickleFunctionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_EmbeddedFunction_PythonPickleFunctionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_EmbeddedFunction_PythonPickleFunction_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_EmbeddedFunction_PythonPickleFunction::InternalGenerateClassData_(
            _default, &Expression_EmbeddedFunction_PythonPickleFunction_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_EmbeddedFunction_PythonPickleFunction>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_EmbeddedFunction_PythonPickleFunctionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_EmbeddedFunction_PythonPickleFunction _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_EmbeddedFunction_PythonPickleFunction>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction_PythonPickleFunctionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExchangeRel_RoundRobin::ParseTableT_ ExchangeRel_RoundRobin::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExchangeRel_RoundRobin, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::ExchangeRel_RoundRobin>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool exact = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(ExchangeRel_RoundRobin, _impl_.exact_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExchangeRel_RoundRobin, _impl_.exact_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool exact = 1;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel_RoundRobin, _impl_.exact_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ExchangeRel_RoundRobin::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        exact_{false} {}

template <typename>
constexpr ExchangeRel_RoundRobin::ExchangeRel_RoundRobin(::_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 ExchangeRel_RoundRobin::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExchangeRel_RoundRobin(arena);
}
constexpr auto ExchangeRel_RoundRobin::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ExchangeRel_RoundRobin), alignof(ExchangeRel_RoundRobin));
}
constexpr auto ExchangeRel_RoundRobin::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
          &ExchangeRel_RoundRobin::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExchangeRel_RoundRobin>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExchangeRel_RoundRobin::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExchangeRel_RoundRobin>(), &ExchangeRel_RoundRobin::ByteSizeLong,
              &ExchangeRel_RoundRobin::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExchangeRel_RoundRobin, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[35],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExchangeRel_RoundRobinGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExchangeRel_RoundRobinGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExchangeRel_RoundRobin_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExchangeRel_RoundRobin::InternalGenerateClassData_(
            _default, &ExchangeRel_RoundRobin_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_RoundRobin>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExchangeRel_RoundRobinGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExchangeRel_RoundRobin _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_RoundRobin>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExchangeRel_RoundRobinGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ExchangeRel_RoundRobinGlobalsTypeInternal ExchangeRel_RoundRobin_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ExchangeRel_RoundRobin_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ExchangeRel_RoundRobin_globals_.GetClassData();
#else
  return ExchangeRel_RoundRobin_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ExchangeRel_Broadcast::_Internal {
 public:
};

constexpr ExchangeRel_Broadcast::ParseTableT_ ExchangeRel_Broadcast::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExchangeRel_Broadcast,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // 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::ExchangeRel_Broadcast>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr ExchangeRel_Broadcast::ExchangeRel_Broadcast(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL ExchangeRel_Broadcast::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExchangeRel_Broadcast(arena);
}
constexpr auto ExchangeRel_Broadcast::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ExchangeRel_Broadcast), alignof(ExchangeRel_Broadcast));
}
constexpr auto ExchangeRel_Broadcast::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
          &ExchangeRel_Broadcast::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<ExchangeRel_Broadcast>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExchangeRel_Broadcast::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<ExchangeRel_Broadcast>(), &ExchangeRel_Broadcast::ByteSizeLong,
              &ExchangeRel_Broadcast::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExchangeRel_Broadcast, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[34],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExchangeRel_BroadcastGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExchangeRel_BroadcastGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExchangeRel_Broadcast_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExchangeRel_Broadcast::InternalGenerateClassData_(
            _default, &ExchangeRel_Broadcast_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_Broadcast>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExchangeRel_BroadcastGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExchangeRel_Broadcast _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_Broadcast>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExchangeRel_BroadcastGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ComparisonJoinKey_ComparisonType::ParseTableT_ ComparisonJoinKey_ComparisonType::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ComparisonJoinKey_ComparisonType,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      2, 0,  // 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::ComparisonJoinKey_ComparisonType>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.ComparisonJoinKey.SimpleComparisonType simple = 1;
      {PROTOBUF_FIELD_OFFSET(ComparisonJoinKey_ComparisonType, _impl_.inner_type_.simple_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kOpenEnum)},
      // uint32 custom_function_reference = 2;
      {PROTOBUF_FIELD_OFFSET(ComparisonJoinKey_ComparisonType, _impl_.inner_type_.custom_function_reference_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


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

template <typename>
constexpr ComparisonJoinKey_ComparisonType::ComparisonJoinKey_ComparisonType(::_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 ComparisonJoinKey_ComparisonType::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ComparisonJoinKey_ComparisonType(arena);
}
constexpr auto ComparisonJoinKey_ComparisonType::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ComparisonJoinKey_ComparisonType), alignof(ComparisonJoinKey_ComparisonType));
}
constexpr auto ComparisonJoinKey_ComparisonType::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
          &ComparisonJoinKey_ComparisonType::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ComparisonJoinKey_ComparisonType>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ComparisonJoinKey_ComparisonType::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ComparisonJoinKey_ComparisonType>(), &ComparisonJoinKey_ComparisonType::ByteSizeLong,
              &ComparisonJoinKey_ComparisonType::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ComparisonJoinKey_ComparisonType, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[47],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ComparisonJoinKey_ComparisonTypeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ComparisonJoinKey_ComparisonTypeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ComparisonJoinKey_ComparisonType_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ComparisonJoinKey_ComparisonType::InternalGenerateClassData_(
            _default, &ComparisonJoinKey_ComparisonType_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ComparisonJoinKey_ComparisonType>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ComparisonJoinKey_ComparisonTypeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ComparisonJoinKey_ComparisonType _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ComparisonJoinKey_ComparisonType>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ComparisonJoinKey_ComparisonTypeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ReadRel_LocalFiles_FileOrFiles::ParseTableT_ ReadRel_LocalFiles_FileOrFiles::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_._has_bits_),
      0, // no _extensions_
      13, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294959120,  // skipmap
      offsetof(ParseTableT_, field_entries),
      12,  // num_field_entries
      5,  // 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::ReadRel_LocalFiles_FileOrFiles>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint64 length = 8;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(ReadRel_LocalFiles_FileOrFiles, _impl_.length_), 2>(),
       {64, 2, 0,
        PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.length_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // uint64 partition_index = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(ReadRel_LocalFiles_FileOrFiles, _impl_.partition_index_), 0>(),
       {48, 0, 0,
        PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.partition_index_)}},
      // uint64 start = 7;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(ReadRel_LocalFiles_FileOrFiles, _impl_.start_), 1>(),
       {56, 1, 0,
        PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.start_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string uri_path = 1;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.path_type_.uri_path_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string uri_path_glob = 2;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.path_type_.uri_path_glob_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string uri_file = 3;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.path_type_.uri_file_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string uri_folder = 4;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.path_type_.uri_folder_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint64 partition_index = 6;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.partition_index_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // uint64 start = 7;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.start_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // uint64 length = 8;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.length_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // .substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions parquet = 9;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_.parquet_), _Internal::kOneofCaseOffset + 4, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions arrow = 10;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_.arrow_), _Internal::kOneofCaseOffset + 4, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptions orc = 11;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_.orc_), _Internal::kOneofCaseOffset + 4, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .google.protobuf.Any extension = 12;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_.extension_), _Internal::kOneofCaseOffset + 4, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions dwrf = 13;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_.dwrf_), _Internal::kOneofCaseOffset + 4, 4, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReadRel_LocalFiles_FileOrFiles_OrcReadOptions>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_globals_},
        #endif
    }},
    {{
      "\50\10\15\10\12\0\0\0\0\0\0\0\0\0\0\0"
      "substrait.ReadRel.LocalFiles.FileOrFiles"
      "uri_path"
      "uri_path_glob"
      "uri_file"
      "uri_folder"
    }},
  };
}


inline constexpr ReadRel_LocalFiles_FileOrFiles::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        partition_index_{::uint64_t{0u}},
        start_{::uint64_t{0u}},
        length_{::uint64_t{0u}},
        path_type_{},
        file_format_{},
        _oneof_case_{} {}

template <typename>
constexpr ReadRel_LocalFiles_FileOrFiles::ReadRel_LocalFiles_FileOrFiles(::_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 ReadRel_LocalFiles_FileOrFiles::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReadRel_LocalFiles_FileOrFiles(arena);
}
constexpr auto ReadRel_LocalFiles_FileOrFiles::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ReadRel_LocalFiles_FileOrFiles), alignof(ReadRel_LocalFiles_FileOrFiles));
}
constexpr auto ReadRel_LocalFiles_FileOrFiles::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
          &ReadRel_LocalFiles_FileOrFiles::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ReadRel_LocalFiles_FileOrFiles>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReadRel_LocalFiles_FileOrFiles::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ReadRel_LocalFiles_FileOrFiles>(), &ReadRel_LocalFiles_FileOrFiles::ByteSizeLong,
              &ReadRel_LocalFiles_FileOrFiles::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[13],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReadRel_LocalFiles_FileOrFilesGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReadRel_LocalFiles_FileOrFilesGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReadRel_LocalFiles_FileOrFiles_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReadRel_LocalFiles_FileOrFiles::InternalGenerateClassData_(
            _default, &ReadRel_LocalFiles_FileOrFiles_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles_FileOrFiles>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReadRel_LocalFiles_FileOrFilesGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReadRel_LocalFiles_FileOrFiles _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles_FileOrFiles>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFilesGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ReadRel_ExtensionTable::ParseTableT_ ReadRel_ExtensionTable::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReadRel_ExtensionTable, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::ReadRel_ExtensionTable>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .google.protobuf.Any detail = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ReadRel_ExtensionTable, _impl_.detail_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any detail = 1;
      {PROTOBUF_FIELD_OFFSET(ReadRel_ExtensionTable, _impl_.detail_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ReadRel_ExtensionTable::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        detail_{nullptr} {}

template <typename>
constexpr ReadRel_ExtensionTable::ReadRel_ExtensionTable(::_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 ReadRel_ExtensionTable::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReadRel_ExtensionTable(arena);
}
constexpr auto ReadRel_ExtensionTable::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ReadRel_ExtensionTable), alignof(ReadRel_ExtensionTable));
}
constexpr auto ReadRel_ExtensionTable::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
          &ReadRel_ExtensionTable::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ReadRel_ExtensionTable>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReadRel_ExtensionTable::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ReadRel_ExtensionTable>(), &ReadRel_ExtensionTable::ByteSizeLong,
              &ReadRel_ExtensionTable::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReadRel_ExtensionTable, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[8],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReadRel_ExtensionTableGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReadRel_ExtensionTableGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReadRel_ExtensionTable_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReadRel_ExtensionTable::InternalGenerateClassData_(
            _default, &ReadRel_ExtensionTable_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_ExtensionTable>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReadRel_ExtensionTableGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReadRel_ExtensionTable _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_ExtensionTable>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReadRel_ExtensionTableGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExtensionObject::ParseTableT_ ExtensionObject::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExtensionObject, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::ExtensionObject>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .google.protobuf.Any detail = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExtensionObject, _impl_.detail_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any detail = 1;
      {PROTOBUF_FIELD_OFFSET(ExtensionObject, _impl_.detail_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ExtensionObject::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        detail_{nullptr} {}

template <typename>
constexpr ExtensionObject::ExtensionObject(::_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 ExtensionObject::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExtensionObject(arena);
}
constexpr auto ExtensionObject::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ExtensionObject), alignof(ExtensionObject));
}
constexpr auto ExtensionObject::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
          &ExtensionObject::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExtensionObject>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExtensionObject::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExtensionObject>(), &ExtensionObject::ByteSizeLong,
              &ExtensionObject::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExtensionObject, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[44],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExtensionObjectGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExtensionObjectGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExtensionObject_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExtensionObject::InternalGenerateClassData_(
            _default, &ExtensionObject_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExtensionObject>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExtensionObjectGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExtensionObject _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExtensionObject>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExtensionObjectGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_WindowFunction_Bound::ParseTableT_ Expression_WindowFunction_Bound::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      4, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // 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::Expression_WindowFunction_Bound>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.WindowFunction.Bound.Preceding preceding = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound, _impl_.kind_.preceding_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.WindowFunction.Bound.Following following = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound, _impl_.kind_.following_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.WindowFunction.Bound.CurrentRow current_row = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound, _impl_.kind_.current_row_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.WindowFunction.Bound.Unbounded unbounded = 4;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound, _impl_.kind_.unbounded_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_WindowFunction_Bound_Preceding>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_WindowFunction_Bound_Preceding_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_WindowFunction_Bound_Following>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_WindowFunction_Bound_Following_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_WindowFunction_Bound_CurrentRow>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_WindowFunction_Bound_CurrentRow_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_WindowFunction_Bound_Unbounded>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_WindowFunction_Bound_Unbounded_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_WindowFunction_Bound::Expression_WindowFunction_Bound(::_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 Expression_WindowFunction_Bound::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_WindowFunction_Bound(arena);
}
constexpr auto Expression_WindowFunction_Bound::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_WindowFunction_Bound), alignof(Expression_WindowFunction_Bound));
}
constexpr auto Expression_WindowFunction_Bound::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
          &Expression_WindowFunction_Bound::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_WindowFunction_Bound>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_WindowFunction_Bound::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_WindowFunction_Bound>(), &Expression_WindowFunction_Bound::ByteSizeLong,
              &Expression_WindowFunction_Bound::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_Bound, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[76],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_WindowFunction_BoundGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_WindowFunction_BoundGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_WindowFunction_Bound_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_WindowFunction_Bound::InternalGenerateClassData_(
            _default, &Expression_WindowFunction_Bound_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction_Bound>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_WindowFunction_BoundGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_WindowFunction_Bound _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction_Bound>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_WindowFunction_BoundGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression_ListSelect_ListSelectItem::ParseTableT_ Expression_MaskExpression_ListSelect_ListSelectItem::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      2, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // 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::Expression_MaskExpression_ListSelect_ListSelectItem>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement item = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem, _impl_.type_.item_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice slice = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem, _impl_.type_.slice_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_MaskExpression_ListSelect_ListSelectItem::Expression_MaskExpression_ListSelect_ListSelectItem(::_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 Expression_MaskExpression_ListSelect_ListSelectItem::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression_ListSelect_ListSelectItem(arena);
}
constexpr auto Expression_MaskExpression_ListSelect_ListSelectItem::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_MaskExpression_ListSelect_ListSelectItem), alignof(Expression_MaskExpression_ListSelect_ListSelectItem));
}
constexpr auto Expression_MaskExpression_ListSelect_ListSelectItem::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
          &Expression_MaskExpression_ListSelect_ListSelectItem::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression_ListSelect_ListSelectItem>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression_ListSelect_ListSelectItem::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression_ListSelect_ListSelectItem>(), &Expression_MaskExpression_ListSelect_ListSelectItem::ByteSizeLong,
              &Expression_MaskExpression_ListSelect_ListSelectItem::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[98],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpression_ListSelect_ListSelectItemGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpression_ListSelect_ListSelectItemGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_ListSelect_ListSelectItem_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression_ListSelect_ListSelectItem::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_ListSelect_ListSelectItem_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_ListSelect_ListSelectItem>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpression_ListSelect_ListSelectItemGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression_ListSelect_ListSelectItem _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_ListSelect_ListSelectItem>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItemGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Enum::ParseTableT_ Expression_Enum::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Enum,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      2, 0,  // 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::Expression_Enum>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // string specified = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Enum, _impl_.enum_kind_.specified_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .substrait.Expression.Enum.Empty unspecified = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Enum, _impl_.enum_kind_.unspecified_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Enum_Empty>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Enum_Empty_globals_},
        #endif
    }},
    {{
      "\31\11\0\0\0\0\0\0"
      "substrait.Expression.Enum"
      "specified"
    }},
  };
}


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

template <typename>
constexpr Expression_Enum::Expression_Enum(::_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 Expression_Enum::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Enum(arena);
}
constexpr auto Expression_Enum::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Enum), alignof(Expression_Enum));
}
constexpr auto Expression_Enum::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
          &Expression_Enum::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Enum>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Enum::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Enum>(), &Expression_Enum::ByteSizeLong,
              &Expression_Enum::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Enum, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[55],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_EnumGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_EnumGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Enum_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Enum::InternalGenerateClassData_(
            _default, &Expression_Enum_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Enum>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_EnumGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Enum _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Enum>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_EnumGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExchangeRel_ExchangeTarget::ParseTableT_ ExchangeRel_ExchangeTarget::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExchangeRel_ExchangeTarget, _impl_._has_bits_),
      0, // no _extensions_
      3, 0,  // 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::ExchangeRel_ExchangeTarget>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated int32 partition_id = 1;
      {::_pbi::TcParser::FastV32P1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExchangeRel_ExchangeTarget, _impl_.partition_id_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated int32 partition_id = 1;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel_ExchangeTarget, _impl_.partition_id_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedInt32)},
      // string uri = 2;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel_ExchangeTarget, _impl_.target_type_.uri_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .google.protobuf.Any extended = 3;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel_ExchangeTarget, _impl_.target_type_.extended_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
      "\44\0\3\0\0\0\0\0"
      "substrait.ExchangeRel.ExchangeTarget"
      "uri"
    }},
  };
}


inline constexpr ExchangeRel_ExchangeTarget::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        partition_id_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::ExchangeRel_ExchangeTarget,
            PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ExchangeTarget, _impl_.partition_id_)>()
         }
        ,
        _partition_id_cached_byte_size_{0},
        target_type_{},
        _oneof_case_{} {}

template <typename>
constexpr ExchangeRel_ExchangeTarget::ExchangeRel_ExchangeTarget(::_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 ExchangeRel_ExchangeTarget::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExchangeRel_ExchangeTarget(arena);
}
constexpr auto ExchangeRel_ExchangeTarget::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExchangeRel_ExchangeTarget), alignof(ExchangeRel_ExchangeTarget));
}
constexpr auto ExchangeRel_ExchangeTarget::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
          &ExchangeRel_ExchangeTarget::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExchangeRel_ExchangeTarget>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExchangeRel_ExchangeTarget::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExchangeRel_ExchangeTarget>(), &ExchangeRel_ExchangeTarget::ByteSizeLong,
              &ExchangeRel_ExchangeTarget::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExchangeRel_ExchangeTarget, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[36],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExchangeRel_ExchangeTargetGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExchangeRel_ExchangeTargetGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExchangeRel_ExchangeTarget_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExchangeRel_ExchangeTarget::InternalGenerateClassData_(
            _default, &ExchangeRel_ExchangeTarget_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_ExchangeTarget>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExchangeRel_ExchangeTargetGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExchangeRel_ExchangeTarget _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_ExchangeTarget>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExchangeRel_ExchangeTargetGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RelCommon_Hint_Stats::ParseTableT_ RelCommon_Hint_Stats::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RelCommon_Hint_Stats, _impl_._has_bits_),
      0, // no _extensions_
      10, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966780,  // 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::RelCommon_Hint_Stats>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // double record_size = 2;
      {::_pbi::TcParser::FastF64S1,
       {17, 2, 0,
        PROTOBUF_FIELD_OFFSET(RelCommon_Hint_Stats, _impl_.record_size_)}},
      // double row_count = 1;
      {::_pbi::TcParser::FastF64S1,
       {9, 1, 0,
        PROTOBUF_FIELD_OFFSET(RelCommon_Hint_Stats, _impl_.row_count_)}},
    }}, {{
      65535, 65535
    }}, {{
      // double row_count = 1;
      {PROTOBUF_FIELD_OFFSET(RelCommon_Hint_Stats, _impl_.row_count_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
      // double record_size = 2;
      {PROTOBUF_FIELD_OFFSET(RelCommon_Hint_Stats, _impl_.record_size_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(RelCommon_Hint_Stats, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr RelCommon_Hint_Stats::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        advanced_extension_{nullptr},
        row_count_{0},
        record_size_{0} {}

template <typename>
constexpr RelCommon_Hint_Stats::RelCommon_Hint_Stats(::_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 RelCommon_Hint_Stats::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RelCommon_Hint_Stats(arena);
}
constexpr auto RelCommon_Hint_Stats::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RelCommon_Hint_Stats), alignof(RelCommon_Hint_Stats));
}
constexpr auto RelCommon_Hint_Stats::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
          &RelCommon_Hint_Stats::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RelCommon_Hint_Stats>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RelCommon_Hint_Stats::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RelCommon_Hint_Stats>(), &RelCommon_Hint_Stats::ByteSizeLong,
              &RelCommon_Hint_Stats::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RelCommon_Hint_Stats, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[2],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RelCommon_Hint_StatsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RelCommon_Hint_StatsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RelCommon_Hint_Stats_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RelCommon_Hint_Stats::InternalGenerateClassData_(
            _default, &RelCommon_Hint_Stats_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RelCommon_Hint_Stats>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RelCommon_Hint_StatsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RelCommon_Hint_Stats _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RelCommon_Hint_Stats>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RelCommon_Hint_StatsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RelCommon_Hint_RuntimeConstraint::ParseTableT_ RelCommon_Hint_RuntimeConstraint::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RelCommon_Hint_RuntimeConstraint, _impl_._has_bits_),
      0, // no _extensions_
      10, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966783,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::RelCommon_Hint_RuntimeConstraint>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {::_pbi::TcParser::FastMtS1,
       {82, 0, 0,
        PROTOBUF_FIELD_OFFSET(RelCommon_Hint_RuntimeConstraint, _impl_.advanced_extension_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(RelCommon_Hint_RuntimeConstraint, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr RelCommon_Hint_RuntimeConstraint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        advanced_extension_{nullptr} {}

template <typename>
constexpr RelCommon_Hint_RuntimeConstraint::RelCommon_Hint_RuntimeConstraint(::_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 RelCommon_Hint_RuntimeConstraint::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RelCommon_Hint_RuntimeConstraint(arena);
}
constexpr auto RelCommon_Hint_RuntimeConstraint::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RelCommon_Hint_RuntimeConstraint), alignof(RelCommon_Hint_RuntimeConstraint));
}
constexpr auto RelCommon_Hint_RuntimeConstraint::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
          &RelCommon_Hint_RuntimeConstraint::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RelCommon_Hint_RuntimeConstraint>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RelCommon_Hint_RuntimeConstraint::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RelCommon_Hint_RuntimeConstraint>(), &RelCommon_Hint_RuntimeConstraint::ByteSizeLong,
              &RelCommon_Hint_RuntimeConstraint::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RelCommon_Hint_RuntimeConstraint, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[3],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RelCommon_Hint_RuntimeConstraintGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RelCommon_Hint_RuntimeConstraintGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RelCommon_Hint_RuntimeConstraint_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RelCommon_Hint_RuntimeConstraint::InternalGenerateClassData_(
            _default, &RelCommon_Hint_RuntimeConstraint_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RelCommon_Hint_RuntimeConstraint>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RelCommon_Hint_RuntimeConstraintGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RelCommon_Hint_RuntimeConstraint _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RelCommon_Hint_RuntimeConstraint>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RelCommon_Hint_RuntimeConstraintGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ReadRel_NamedTable::ParseTableT_ ReadRel_NamedTable::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReadRel_NamedTable, _impl_._has_bits_),
      0, // no _extensions_
      10, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966782,  // 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::ReadRel_NamedTable>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {::_pbi::TcParser::FastMtS1,
       {82, 1, 0,
        PROTOBUF_FIELD_OFFSET(ReadRel_NamedTable, _impl_.advanced_extension_)}},
      // repeated string names = 1;
      {::_pbi::TcParser::FastUR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ReadRel_NamedTable, _impl_.names_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated string names = 1;
      {PROTOBUF_FIELD_OFFSET(ReadRel_NamedTable, _impl_.names_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(ReadRel_NamedTable, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
      "\34\5\0\0\0\0\0\0"
      "substrait.ReadRel.NamedTable"
      "names"
    }},
  };
}


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

template <typename>
constexpr ReadRel_NamedTable::ReadRel_NamedTable(::_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 ReadRel_NamedTable::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReadRel_NamedTable(arena);
}
constexpr auto ReadRel_NamedTable::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ReadRel_NamedTable), alignof(ReadRel_NamedTable));
}
constexpr auto ReadRel_NamedTable::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
          &ReadRel_NamedTable::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ReadRel_NamedTable>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReadRel_NamedTable::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ReadRel_NamedTable>(), &ReadRel_NamedTable::ByteSizeLong,
              &ReadRel_NamedTable::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReadRel_NamedTable, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[6],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReadRel_NamedTableGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReadRel_NamedTableGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReadRel_NamedTable_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReadRel_NamedTable::InternalGenerateClassData_(
            _default, &ReadRel_NamedTable_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_NamedTable>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReadRel_NamedTableGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReadRel_NamedTable _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_NamedTable>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReadRel_NamedTableGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ReadRel_LocalFiles::ParseTableT_ ReadRel_LocalFiles::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles, _impl_._has_bits_),
      0, // no _extensions_
      10, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966782,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // 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::ReadRel_LocalFiles>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {::_pbi::TcParser::FastMtS1,
       {82, 1, 1,
        PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles, _impl_.advanced_extension_)}},
      // repeated .substrait.ReadRel.LocalFiles.FileOrFiles items = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles, _impl_.items_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.ReadRel.LocalFiles.FileOrFiles items = 1;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles, _impl_.items_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReadRel_LocalFiles_FileOrFiles>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReadRel_LocalFiles_FileOrFiles_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr ReadRel_LocalFiles::ReadRel_LocalFiles(::_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 ReadRel_LocalFiles::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReadRel_LocalFiles(arena);
}
constexpr auto ReadRel_LocalFiles::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ReadRel_LocalFiles), alignof(ReadRel_LocalFiles));
}
constexpr auto ReadRel_LocalFiles::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
          &ReadRel_LocalFiles::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ReadRel_LocalFiles>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReadRel_LocalFiles::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ReadRel_LocalFiles>(), &ReadRel_LocalFiles::ByteSizeLong,
              &ReadRel_LocalFiles::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[14],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReadRel_LocalFilesGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReadRel_LocalFilesGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReadRel_LocalFiles_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReadRel_LocalFiles::InternalGenerateClassData_(
            _default, &ReadRel_LocalFiles_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReadRel_LocalFilesGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReadRel_LocalFiles _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_LocalFiles>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReadRel_LocalFilesGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr NamedObjectWrite::ParseTableT_ NamedObjectWrite::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(NamedObjectWrite, _impl_._has_bits_),
      0, // no _extensions_
      10, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966782,  // 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::NamedObjectWrite>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {::_pbi::TcParser::FastMtS1,
       {82, 1, 0,
        PROTOBUF_FIELD_OFFSET(NamedObjectWrite, _impl_.advanced_extension_)}},
      // repeated string names = 1;
      {::_pbi::TcParser::FastUR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(NamedObjectWrite, _impl_.names_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated string names = 1;
      {PROTOBUF_FIELD_OFFSET(NamedObjectWrite, _impl_.names_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(NamedObjectWrite, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
      "\32\5\0\0\0\0\0\0"
      "substrait.NamedObjectWrite"
      "names"
    }},
  };
}


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

template <typename>
constexpr NamedObjectWrite::NamedObjectWrite(::_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 NamedObjectWrite::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NamedObjectWrite(arena);
}
constexpr auto NamedObjectWrite::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(NamedObjectWrite), alignof(NamedObjectWrite));
}
constexpr auto NamedObjectWrite::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
          &NamedObjectWrite::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NamedObjectWrite>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NamedObjectWrite::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NamedObjectWrite>(), &NamedObjectWrite::ByteSizeLong,
              &NamedObjectWrite::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NamedObjectWrite, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[43],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct NamedObjectWriteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr NamedObjectWriteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 NamedObjectWrite_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(NamedObjectWrite::InternalGenerateClassData_(
            _default, &NamedObjectWrite_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<NamedObjectWrite>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~NamedObjectWriteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) NamedObjectWrite _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<NamedObjectWrite>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(NamedObjectWriteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression_ListSelect::ParseTableT_ Expression_MaskExpression_ListSelect::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect, _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
      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::Expression_MaskExpression_ListSelect>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression.MaskExpression.Select child = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect, _impl_.child_)}},
      // repeated .substrait.Expression.MaskExpression.ListSelect.ListSelectItem selection = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect, _impl_.selection_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression.MaskExpression.ListSelect.ListSelectItem selection = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect, _impl_.selection_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.MaskExpression.Select child = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect, _impl_.child_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_ListSelect_ListSelectItem>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_Select>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_Select_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_MaskExpression_ListSelect::Expression_MaskExpression_ListSelect(::_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 Expression_MaskExpression_ListSelect::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression_ListSelect(arena);
}
constexpr auto Expression_MaskExpression_ListSelect::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_MaskExpression_ListSelect), alignof(Expression_MaskExpression_ListSelect));
}
constexpr auto Expression_MaskExpression_ListSelect::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
          &Expression_MaskExpression_ListSelect::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression_ListSelect>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression_ListSelect::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression_ListSelect>(), &Expression_MaskExpression_ListSelect::ByteSizeLong,
              &Expression_MaskExpression_ListSelect::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[99],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpression_ListSelectGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpression_ListSelectGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_ListSelect_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression_ListSelect::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_ListSelect_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_ListSelect>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpression_ListSelectGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression_ListSelect _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_ListSelect>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelectGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression_MapSelect::ParseTableT_ Expression_MaskExpression_MapSelect::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect, _impl_._has_bits_),
      0, // no _extensions_
      3, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // 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::Expression_MaskExpression_MapSelect>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression.MaskExpression.Select child = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 0, 2,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect, _impl_.child_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.MaskExpression.MapSelect.MapKey key = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect, _impl_.select_.key_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.MaskExpression.MapSelect.MapKeyExpression expression = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect, _impl_.select_.expression_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.MaskExpression.Select child = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect, _impl_.child_), _Internal::kHasBitsOffset + 0, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_MapSelect_MapKey>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_MapSelect_MapKey_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_MapSelect_MapKeyExpression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_MapSelect_MapKeyExpression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_Select>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_Select_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_MaskExpression_MapSelect::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        child_{nullptr},
        select_{},
        _oneof_case_{} {}

template <typename>
constexpr Expression_MaskExpression_MapSelect::Expression_MaskExpression_MapSelect(::_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 Expression_MaskExpression_MapSelect::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression_MapSelect(arena);
}
constexpr auto Expression_MaskExpression_MapSelect::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_MaskExpression_MapSelect), alignof(Expression_MaskExpression_MapSelect));
}
constexpr auto Expression_MaskExpression_MapSelect::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
          &Expression_MaskExpression_MapSelect::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression_MapSelect>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression_MapSelect::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression_MapSelect>(), &Expression_MaskExpression_MapSelect::ByteSizeLong,
              &Expression_MaskExpression_MapSelect::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelect, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[102],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpression_MapSelectGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpression_MapSelectGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_MapSelect_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression_MapSelect::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_MapSelect_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_MapSelect>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpression_MapSelectGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression_MapSelect _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_MapSelect>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_MapSelectGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression_Select::ParseTableT_ Expression_MaskExpression_Select::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_Select,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      3, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // 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::Expression_MaskExpression_Select>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.MaskExpression.StructSelect struct = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_Select, _impl_.type_.struct__), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.MaskExpression.ListSelect list = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_Select, _impl_.type_.list_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.MaskExpression.MapSelect map = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_Select, _impl_.type_.map_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_StructSelect>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_StructSelect_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_ListSelect>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_ListSelect_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_MapSelect>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_MapSelect_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_MaskExpression_Select::Expression_MaskExpression_Select(::_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 Expression_MaskExpression_Select::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression_Select(arena);
}
constexpr auto Expression_MaskExpression_Select::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_MaskExpression_Select), alignof(Expression_MaskExpression_Select));
}
constexpr auto Expression_MaskExpression_Select::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
          &Expression_MaskExpression_Select::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression_Select>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression_Select::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression_Select>(), &Expression_MaskExpression_Select::ByteSizeLong,
              &Expression_MaskExpression_Select::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_Select, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[93],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpression_SelectGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpression_SelectGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_Select_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression_Select::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_Select_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_Select>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpression_SelectGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression_Select _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_Select>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_SelectGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression_StructItem::ParseTableT_ Expression_MaskExpression_StructItem::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructItem, _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::Expression_MaskExpression_StructItem>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression.MaskExpression.Select child = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructItem, _impl_.child_)}},
      // int32 field = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_MaskExpression_StructItem, _impl_.field_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructItem, _impl_.field_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 field = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructItem, _impl_.field_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // .substrait.Expression.MaskExpression.Select child = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructItem, _impl_.child_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_Select>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_Select_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_MaskExpression_StructItem::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        child_{nullptr},
        field_{0} {}

template <typename>
constexpr Expression_MaskExpression_StructItem::Expression_MaskExpression_StructItem(::_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 Expression_MaskExpression_StructItem::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression_StructItem(arena);
}
constexpr auto Expression_MaskExpression_StructItem::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_MaskExpression_StructItem), alignof(Expression_MaskExpression_StructItem));
}
constexpr auto Expression_MaskExpression_StructItem::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
          &Expression_MaskExpression_StructItem::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression_StructItem>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression_StructItem::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression_StructItem>(), &Expression_MaskExpression_StructItem::ByteSizeLong,
              &Expression_MaskExpression_StructItem::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructItem, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[95],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpression_StructItemGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpression_StructItemGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_StructItem_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression_StructItem::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_StructItem_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_StructItem>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpression_StructItemGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression_StructItem _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_StructItem>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructItemGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression_StructSelect::ParseTableT_ Expression_MaskExpression_StructSelect::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructSelect, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_MaskExpression_StructSelect>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression.MaskExpression.StructItem struct_items = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructSelect, _impl_.struct_items_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression.MaskExpression.StructItem struct_items = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructSelect, _impl_.struct_items_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_StructItem>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_StructItem_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_MaskExpression_StructSelect::Expression_MaskExpression_StructSelect(::_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 Expression_MaskExpression_StructSelect::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression_StructSelect(arena);
}
constexpr auto Expression_MaskExpression_StructSelect::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_MaskExpression_StructSelect), alignof(Expression_MaskExpression_StructSelect));
}
constexpr auto Expression_MaskExpression_StructSelect::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
          &Expression_MaskExpression_StructSelect::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression_StructSelect>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression_StructSelect::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression_StructSelect>(), &Expression_MaskExpression_StructSelect::ByteSizeLong,
              &Expression_MaskExpression_StructSelect::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructSelect, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[94],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpression_StructSelectGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpression_StructSelectGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_StructSelect_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression_StructSelect::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_StructSelect_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_StructSelect>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpression_StructSelectGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression_StructSelect _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression_StructSelect>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructSelectGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Literal_UserDefined::ParseTableT_ Expression_Literal_UserDefined::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Literal_UserDefined, _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
      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::Expression_Literal_UserDefined>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 type_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Literal_UserDefined, _impl_.type_reference_), 2>(),
       {8, 2, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_UserDefined, _impl_.type_reference_)}},
      // .google.protobuf.Any value = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_UserDefined, _impl_.value_)}},
      // repeated .substrait.Type.Parameter type_parameters = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 0, 1,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_UserDefined, _impl_.type_parameters_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_UserDefined, _impl_.type_reference_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .google.protobuf.Any value = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_UserDefined, _impl_.value_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Type.Parameter type_parameters = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_UserDefined, _impl_.type_parameters_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type_Parameter>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_Parameter_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_Literal_UserDefined::Expression_Literal_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 Expression_Literal_UserDefined::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Literal_UserDefined(arena);
}
constexpr auto Expression_Literal_UserDefined::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_Literal_UserDefined), alignof(Expression_Literal_UserDefined));
}
constexpr auto Expression_Literal_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
          &Expression_Literal_UserDefined::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Literal_UserDefined>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Literal_UserDefined::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Literal_UserDefined>(), &Expression_Literal_UserDefined::ByteSizeLong,
              &Expression_Literal_UserDefined::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Literal_UserDefined, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[64],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Literal_UserDefinedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Literal_UserDefinedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Literal_UserDefined_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Literal_UserDefined::InternalGenerateClassData_(
            _default, &Expression_Literal_UserDefined_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_UserDefined>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Literal_UserDefinedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Literal_UserDefined _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_UserDefined>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Literal_UserDefinedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RelCommon_Hint::ParseTableT_ RelCommon_Hint::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RelCommon_Hint, _impl_._has_bits_),
      0, // no _extensions_
      10, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966780,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // 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::RelCommon_Hint>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.RelCommon.Hint.RuntimeConstraint constraint = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(RelCommon_Hint, _impl_.constraint_)}},
      // .substrait.RelCommon.Hint.Stats stats = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(RelCommon_Hint, _impl_.stats_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon.Hint.Stats stats = 1;
      {PROTOBUF_FIELD_OFFSET(RelCommon_Hint, _impl_.stats_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.RelCommon.Hint.RuntimeConstraint constraint = 2;
      {PROTOBUF_FIELD_OFFSET(RelCommon_Hint, _impl_.constraint_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(RelCommon_Hint, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon_Hint_Stats>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_Hint_Stats_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon_Hint_RuntimeConstraint>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_Hint_RuntimeConstraint_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr RelCommon_Hint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        stats_{nullptr},
        constraint_{nullptr},
        advanced_extension_{nullptr} {}

template <typename>
constexpr RelCommon_Hint::RelCommon_Hint(::_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 RelCommon_Hint::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RelCommon_Hint(arena);
}
constexpr auto RelCommon_Hint::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RelCommon_Hint), alignof(RelCommon_Hint));
}
constexpr auto RelCommon_Hint::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
          &RelCommon_Hint::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RelCommon_Hint>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RelCommon_Hint::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RelCommon_Hint>(), &RelCommon_Hint::ByteSizeLong,
              &RelCommon_Hint::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RelCommon_Hint, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[4],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RelCommon_HintGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RelCommon_HintGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RelCommon_Hint_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RelCommon_Hint::InternalGenerateClassData_(
            _default, &RelCommon_Hint_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RelCommon_Hint>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RelCommon_HintGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RelCommon_Hint _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RelCommon_Hint>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RelCommon_HintGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MaskExpression::ParseTableT_ Expression_MaskExpression::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MaskExpression, _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::Expression_MaskExpression>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool maintain_singular_struct = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(Expression_MaskExpression, _impl_.maintain_singular_struct_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression, _impl_.maintain_singular_struct_)}},
      // .substrait.Expression.MaskExpression.StructSelect select = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MaskExpression, _impl_.select_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.MaskExpression.StructSelect select = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression, _impl_.select_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // bool maintain_singular_struct = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_MaskExpression, _impl_.maintain_singular_struct_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression_StructSelect>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_StructSelect_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_MaskExpression::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        select_{nullptr},
        maintain_singular_struct_{false} {}

template <typename>
constexpr Expression_MaskExpression::Expression_MaskExpression(::_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 Expression_MaskExpression::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MaskExpression(arena);
}
constexpr auto Expression_MaskExpression::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_MaskExpression), alignof(Expression_MaskExpression));
}
constexpr auto Expression_MaskExpression::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
          &Expression_MaskExpression::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MaskExpression>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MaskExpression::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MaskExpression>(), &Expression_MaskExpression::ByteSizeLong,
              &Expression_MaskExpression::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MaskExpression, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[103],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MaskExpressionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MaskExpressionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MaskExpression_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MaskExpression::InternalGenerateClassData_(
            _default, &Expression_MaskExpression_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MaskExpressionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MaskExpression _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MaskExpression>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MaskExpressionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Literal::ParseTableT_ Expression_Literal::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_._has_bits_),
      0, // no _extensions_
      51, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      147880,  // skipmap
      offsetof(ParseTableT_, field_entries),
      31,  // num_field_entries
      11,  // 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::Expression_Literal>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool nullable = 50;
      {::_pbi::TcParser::FastV8S2,
       {912, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.nullable_)}},
      // uint32 type_variation_reference = 51;
      {::_pbi::TcParser::FastV32S2,
       {920, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.type_variation_reference_)}},
    }}, {{
      33, 0, 2,
      65528, 26,
      65529, 29,
      65535, 65535
    }}, {{
      // bool boolean = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.boolean_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kBool)},
      // int32 i8 = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.i8_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kInt32)},
      // int32 i16 = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.i16_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kInt32)},
      // int32 i32 = 5;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.i32_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kInt32)},
      // int64 i64 = 7;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.i64_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kInt64)},
      // float fp32 = 10;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.fp32_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kFloat)},
      // double fp64 = 11;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.fp64_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kDouble)},
      // string string = 12;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.string_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // bytes binary = 13;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.binary_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kBytes | ::_fl::kRepAString)},
      // int64 timestamp = 14 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.timestamp_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kInt64)},
      // int32 date = 16;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.date_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kInt32)},
      // int64 time = 17;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.time_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kInt64)},
      // .substrait.Expression.Literal.IntervalYearToMonth interval_year_to_month = 19;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.interval_year_to_month_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Literal.IntervalDayToSecond interval_day_to_second = 20;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.interval_day_to_second_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // string fixed_char = 21;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.fixed_char_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .substrait.Expression.Literal.VarChar var_char = 22;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.var_char_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // bytes fixed_binary = 23;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.fixed_binary_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kBytes | ::_fl::kRepAString)},
      // .substrait.Expression.Literal.Decimal decimal = 24;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.decimal_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Literal.Struct struct = 25;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.struct__), _Internal::kOneofCaseOffset + 0, 4, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Literal.Map map = 26;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.map_), _Internal::kOneofCaseOffset + 0, 5, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // int64 timestamp_tz = 27 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.timestamp_tz_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kInt64)},
      // bytes uuid = 28;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.uuid_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kBytes | ::_fl::kRepAString)},
      // .substrait.Type null = 29;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.null_), _Internal::kOneofCaseOffset + 0, 6, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Literal.List list = 30;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.list_), _Internal::kOneofCaseOffset + 0, 7, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.List empty_list = 31;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.empty_list_), _Internal::kOneofCaseOffset + 0, 8, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type.Map empty_map = 32;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.empty_map_), _Internal::kOneofCaseOffset + 0, 9, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Literal.UserDefined user_defined = 33;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.user_defined_), _Internal::kOneofCaseOffset + 0, 10, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint64 precision_timestamp = 34;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.precision_timestamp_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUInt64)},
      // uint64 precision_timestamp_tz = 35;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.literal_type_.precision_timestamp_tz_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUInt64)},
      // bool nullable = 50;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.nullable_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // uint32 type_variation_reference = 51;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal_IntervalYearToMonth>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_IntervalYearToMonth_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal_IntervalDayToSecond>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_IntervalDayToSecond_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal_VarChar>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_VarChar_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal_Decimal>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_Decimal_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal_Struct>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_Struct_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal_Map>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_Map_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal_List>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_List_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::Expression_Literal_UserDefined>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_UserDefined_globals_},
        #endif
    }},
    {{
      "\34\0\0\0\0\0\0\0\6\0\0\0\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
      "substrait.Expression.Literal"
      "string"
      "fixed_char"
    }},
  };
}


inline constexpr Expression_Literal::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        nullable_{false},
        type_variation_reference_{0u},
        literal_type_{},
        _oneof_case_{} {}

template <typename>
constexpr Expression_Literal::Expression_Literal(::_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 Expression_Literal::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Literal(arena);
}
constexpr auto Expression_Literal::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Literal), alignof(Expression_Literal));
}
constexpr auto Expression_Literal::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
          &Expression_Literal::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Literal>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Literal::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Literal>(), &Expression_Literal::ByteSizeLong,
              &Expression_Literal::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[65],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_LiteralGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_LiteralGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Literal_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Literal::InternalGenerateClassData_(
            _default, &Expression_Literal_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_LiteralGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Literal _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_LiteralGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Literal_List::ParseTableT_ Expression_Literal_List::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Literal_List, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_Literal_List>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression.Literal values = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_List, _impl_.values_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression.Literal values = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_List, _impl_.values_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_Literal_List::Expression_Literal_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 Expression_Literal_List::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Literal_List(arena);
}
constexpr auto Expression_Literal_List::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_Literal_List), alignof(Expression_Literal_List));
}
constexpr auto Expression_Literal_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
          &Expression_Literal_List::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Literal_List>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Literal_List::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Literal_List>(), &Expression_Literal_List::ByteSizeLong,
              &Expression_Literal_List::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Literal_List, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[63],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Literal_ListGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Literal_ListGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Literal_List_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Literal_List::InternalGenerateClassData_(
            _default, &Expression_Literal_List_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_List>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Literal_ListGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Literal_List _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_List>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Literal_ListGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Literal_Map::ParseTableT_ Expression_Literal_Map::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Literal_Map, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_Literal_Map>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression.Literal.Map.KeyValue key_values = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_Map, _impl_.key_values_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression.Literal.Map.KeyValue key_values = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_Map, _impl_.key_values_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal_Map_KeyValue>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_Map_KeyValue_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_Literal_Map::Expression_Literal_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 Expression_Literal_Map::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Literal_Map(arena);
}
constexpr auto Expression_Literal_Map::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_Literal_Map), alignof(Expression_Literal_Map));
}
constexpr auto Expression_Literal_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
          &Expression_Literal_Map::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Literal_Map>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Literal_Map::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Literal_Map>(), &Expression_Literal_Map::ByteSizeLong,
              &Expression_Literal_Map::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Literal_Map, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[59],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Literal_MapGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Literal_MapGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Literal_Map_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Literal_Map::InternalGenerateClassData_(
            _default, &Expression_Literal_Map_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_Map>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Literal_MapGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Literal_Map _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_Map>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Literal_MapGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Literal_Map_KeyValue::ParseTableT_ Expression_Literal_Map_KeyValue::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Literal_Map_KeyValue, _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
      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::Expression_Literal_Map_KeyValue>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression.Literal value = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_Map_KeyValue, _impl_.value_)}},
      // .substrait.Expression.Literal key = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_Map_KeyValue, _impl_.key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.Literal key = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_Map_KeyValue, _impl_.key_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Literal value = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_Map_KeyValue, _impl_.value_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_Literal_Map_KeyValue::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        key_{nullptr},
        value_{nullptr} {}

template <typename>
constexpr Expression_Literal_Map_KeyValue::Expression_Literal_Map_KeyValue(::_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 Expression_Literal_Map_KeyValue::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Literal_Map_KeyValue(arena);
}
constexpr auto Expression_Literal_Map_KeyValue::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Literal_Map_KeyValue), alignof(Expression_Literal_Map_KeyValue));
}
constexpr auto Expression_Literal_Map_KeyValue::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
          &Expression_Literal_Map_KeyValue::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Literal_Map_KeyValue>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Literal_Map_KeyValue::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Literal_Map_KeyValue>(), &Expression_Literal_Map_KeyValue::ByteSizeLong,
              &Expression_Literal_Map_KeyValue::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Literal_Map_KeyValue, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[58],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Literal_Map_KeyValueGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Literal_Map_KeyValueGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Literal_Map_KeyValue_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Literal_Map_KeyValue::InternalGenerateClassData_(
            _default, &Expression_Literal_Map_KeyValue_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_Map_KeyValue>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Literal_Map_KeyValueGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Literal_Map_KeyValue _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_Map_KeyValue>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Literal_Map_KeyValueGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Literal_Struct::ParseTableT_ Expression_Literal_Struct::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Literal_Struct, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_Literal_Struct>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression.Literal fields = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Literal_Struct, _impl_.fields_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression.Literal fields = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Literal_Struct, _impl_.fields_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_Literal_Struct::Expression_Literal_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 Expression_Literal_Struct::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Literal_Struct(arena);
}
constexpr auto Expression_Literal_Struct::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_Literal_Struct), alignof(Expression_Literal_Struct));
}
constexpr auto Expression_Literal_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
          &Expression_Literal_Struct::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Literal_Struct>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Literal_Struct::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Literal_Struct>(), &Expression_Literal_Struct::ByteSizeLong,
              &Expression_Literal_Struct::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Literal_Struct, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[62],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Literal_StructGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Literal_StructGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Literal_Struct_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Literal_Struct::InternalGenerateClassData_(
            _default, &Expression_Literal_Struct_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_Struct>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Literal_StructGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Literal_Struct _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Literal_Struct>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Literal_StructGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RelCommon::ParseTableT_ RelCommon::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RelCommon, _impl_._has_bits_),
      0, // no _extensions_
      4, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // 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::RelCommon>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.extensions.AdvancedExtension advanced_extension = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 1, 3,
        PROTOBUF_FIELD_OFFSET(RelCommon, _impl_.advanced_extension_)}},
      // .substrait.RelCommon.Hint hint = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 0, 2,
        PROTOBUF_FIELD_OFFSET(RelCommon, _impl_.hint_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon.Direct direct = 1;
      {PROTOBUF_FIELD_OFFSET(RelCommon, _impl_.emit_kind_.direct_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.RelCommon.Emit emit = 2;
      {PROTOBUF_FIELD_OFFSET(RelCommon, _impl_.emit_kind_.emit_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.RelCommon.Hint hint = 3;
      {PROTOBUF_FIELD_OFFSET(RelCommon, _impl_.hint_), _Internal::kHasBitsOffset + 0, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 4;
      {PROTOBUF_FIELD_OFFSET(RelCommon, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 1, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon_Direct>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_Direct_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon_Emit>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_Emit_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon_Hint>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_Hint_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr RelCommon::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        hint_{nullptr},
        advanced_extension_{nullptr},
        emit_kind_{},
        _oneof_case_{} {}

template <typename>
constexpr RelCommon::RelCommon(::_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 RelCommon::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RelCommon(arena);
}
constexpr auto RelCommon::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RelCommon), alignof(RelCommon));
}
constexpr auto RelCommon::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
          &RelCommon::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RelCommon>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RelCommon::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RelCommon>(), &RelCommon::ByteSizeLong,
              &RelCommon::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RelCommon, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[5],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RelCommonGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RelCommonGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RelCommon_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RelCommon::InternalGenerateClassData_(
            _default, &RelCommon_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RelCommon>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RelCommonGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RelCommon _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RelCommon>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RelCommonGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ReadRel_VirtualTable::ParseTableT_ ReadRel_VirtualTable::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReadRel_VirtualTable, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::ReadRel_VirtualTable>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression.Literal.Struct values = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ReadRel_VirtualTable, _impl_.values_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression.Literal.Struct values = 1;
      {PROTOBUF_FIELD_OFFSET(ReadRel_VirtualTable, _impl_.values_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal_Struct>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_Struct_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr ReadRel_VirtualTable::ReadRel_VirtualTable(::_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 ReadRel_VirtualTable::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReadRel_VirtualTable(arena);
}
constexpr auto ReadRel_VirtualTable::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ReadRel_VirtualTable), alignof(ReadRel_VirtualTable));
}
constexpr auto ReadRel_VirtualTable::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
          &ReadRel_VirtualTable::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ReadRel_VirtualTable>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReadRel_VirtualTable::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ReadRel_VirtualTable>(), &ReadRel_VirtualTable::ByteSizeLong,
              &ReadRel_VirtualTable::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReadRel_VirtualTable, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[7],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReadRel_VirtualTableGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReadRel_VirtualTableGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReadRel_VirtualTable_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReadRel_VirtualTable::InternalGenerateClassData_(
            _default, &ReadRel_VirtualTable_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_VirtualTable>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReadRel_VirtualTableGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReadRel_VirtualTable _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReadRel_VirtualTable>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReadRel_VirtualTableGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_ReferenceSegment::ParseTableT_ Expression_ReferenceSegment::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      3, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // 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::Expression_ReferenceSegment>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.ReferenceSegment.MapKey map_key = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment, _impl_.reference_type_.map_key_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.ReferenceSegment.StructField struct_field = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment, _impl_.reference_type_.struct_field_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.ReferenceSegment.ListElement list_element = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment, _impl_.reference_type_.list_element_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_ReferenceSegment_MapKey>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_ReferenceSegment_MapKey_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_ReferenceSegment_StructField>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_ReferenceSegment_StructField_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_ReferenceSegment_ListElement>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_ReferenceSegment_ListElement_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_ReferenceSegment::Expression_ReferenceSegment(::_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 Expression_ReferenceSegment::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_ReferenceSegment(arena);
}
constexpr auto Expression_ReferenceSegment::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_ReferenceSegment), alignof(Expression_ReferenceSegment));
}
constexpr auto Expression_ReferenceSegment::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
          &Expression_ReferenceSegment::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_ReferenceSegment>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_ReferenceSegment::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_ReferenceSegment>(), &Expression_ReferenceSegment::ByteSizeLong,
              &Expression_ReferenceSegment::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[92],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_ReferenceSegmentGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_ReferenceSegmentGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_ReferenceSegment_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_ReferenceSegment::InternalGenerateClassData_(
            _default, &Expression_ReferenceSegment_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_ReferenceSegment>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_ReferenceSegmentGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_ReferenceSegment _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_ReferenceSegment>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegmentGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_ReferenceSegment_ListElement::ParseTableT_ Expression_ReferenceSegment_ListElement::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_ListElement, _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::Expression_ReferenceSegment_ListElement>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression.ReferenceSegment child = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_ListElement, _impl_.child_)}},
      // int32 offset = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_ReferenceSegment_ListElement, _impl_.offset_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_ListElement, _impl_.offset_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 offset = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_ListElement, _impl_.offset_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // .substrait.Expression.ReferenceSegment child = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_ListElement, _impl_.child_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_ReferenceSegment>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_ReferenceSegment_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_ReferenceSegment_ListElement::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        child_{nullptr},
        offset_{0} {}

template <typename>
constexpr Expression_ReferenceSegment_ListElement::Expression_ReferenceSegment_ListElement(::_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 Expression_ReferenceSegment_ListElement::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_ReferenceSegment_ListElement(arena);
}
constexpr auto Expression_ReferenceSegment_ListElement::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_ReferenceSegment_ListElement), alignof(Expression_ReferenceSegment_ListElement));
}
constexpr auto Expression_ReferenceSegment_ListElement::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
          &Expression_ReferenceSegment_ListElement::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_ReferenceSegment_ListElement>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_ReferenceSegment_ListElement::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_ReferenceSegment_ListElement>(), &Expression_ReferenceSegment_ListElement::ByteSizeLong,
              &Expression_ReferenceSegment_ListElement::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_ListElement, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[91],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_ReferenceSegment_ListElementGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_ReferenceSegment_ListElementGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_ReferenceSegment_ListElement_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_ReferenceSegment_ListElement::InternalGenerateClassData_(
            _default, &Expression_ReferenceSegment_ListElement_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_ReferenceSegment_ListElement>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_ReferenceSegment_ListElementGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_ReferenceSegment_ListElement _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_ReferenceSegment_ListElement>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_ListElementGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_ReferenceSegment_MapKey::ParseTableT_ Expression_ReferenceSegment_MapKey::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_MapKey, _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
      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::Expression_ReferenceSegment_MapKey>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression.ReferenceSegment child = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_MapKey, _impl_.child_)}},
      // .substrait.Expression.Literal map_key = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_MapKey, _impl_.map_key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.Literal map_key = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_MapKey, _impl_.map_key_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.ReferenceSegment child = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_MapKey, _impl_.child_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_ReferenceSegment>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_ReferenceSegment_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_ReferenceSegment_MapKey::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        map_key_{nullptr},
        child_{nullptr} {}

template <typename>
constexpr Expression_ReferenceSegment_MapKey::Expression_ReferenceSegment_MapKey(::_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 Expression_ReferenceSegment_MapKey::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_ReferenceSegment_MapKey(arena);
}
constexpr auto Expression_ReferenceSegment_MapKey::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_ReferenceSegment_MapKey), alignof(Expression_ReferenceSegment_MapKey));
}
constexpr auto Expression_ReferenceSegment_MapKey::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
          &Expression_ReferenceSegment_MapKey::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_ReferenceSegment_MapKey>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_ReferenceSegment_MapKey::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_ReferenceSegment_MapKey>(), &Expression_ReferenceSegment_MapKey::ByteSizeLong,
              &Expression_ReferenceSegment_MapKey::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_MapKey, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[89],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_ReferenceSegment_MapKeyGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_ReferenceSegment_MapKeyGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_ReferenceSegment_MapKey_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_ReferenceSegment_MapKey::InternalGenerateClassData_(
            _default, &Expression_ReferenceSegment_MapKey_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_ReferenceSegment_MapKey>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_ReferenceSegment_MapKeyGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_ReferenceSegment_MapKey _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_ReferenceSegment_MapKey>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_MapKeyGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_ReferenceSegment_StructField::ParseTableT_ Expression_ReferenceSegment_StructField::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_StructField, _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::Expression_ReferenceSegment_StructField>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression.ReferenceSegment child = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_StructField, _impl_.child_)}},
      // int32 field = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_ReferenceSegment_StructField, _impl_.field_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_StructField, _impl_.field_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 field = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_StructField, _impl_.field_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // .substrait.Expression.ReferenceSegment child = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_StructField, _impl_.child_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_ReferenceSegment>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_ReferenceSegment_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_ReferenceSegment_StructField::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        child_{nullptr},
        field_{0} {}

template <typename>
constexpr Expression_ReferenceSegment_StructField::Expression_ReferenceSegment_StructField(::_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 Expression_ReferenceSegment_StructField::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_ReferenceSegment_StructField(arena);
}
constexpr auto Expression_ReferenceSegment_StructField::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_ReferenceSegment_StructField), alignof(Expression_ReferenceSegment_StructField));
}
constexpr auto Expression_ReferenceSegment_StructField::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
          &Expression_ReferenceSegment_StructField::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_ReferenceSegment_StructField>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_ReferenceSegment_StructField::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_ReferenceSegment_StructField>(), &Expression_ReferenceSegment_StructField::ByteSizeLong,
              &Expression_ReferenceSegment_StructField::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_StructField, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[90],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_ReferenceSegment_StructFieldGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_ReferenceSegment_StructFieldGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_ReferenceSegment_StructField_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_ReferenceSegment_StructField::InternalGenerateClassData_(
            _default, &Expression_ReferenceSegment_StructField_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_ReferenceSegment_StructField>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_ReferenceSegment_StructFieldGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_ReferenceSegment_StructField _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_ReferenceSegment_StructField>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_StructFieldGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExtensionLeafRel::ParseTableT_ ExtensionLeafRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExtensionLeafRel, _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
      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::ExtensionLeafRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .google.protobuf.Any detail = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(ExtensionLeafRel, _impl_.detail_)}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExtensionLeafRel, _impl_.common_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(ExtensionLeafRel, _impl_.common_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .google.protobuf.Any detail = 2;
      {PROTOBUF_FIELD_OFFSET(ExtensionLeafRel, _impl_.detail_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ExtensionLeafRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        common_{nullptr},
        detail_{nullptr} {}

template <typename>
constexpr ExtensionLeafRel::ExtensionLeafRel(::_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 ExtensionLeafRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExtensionLeafRel(arena);
}
constexpr auto ExtensionLeafRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ExtensionLeafRel), alignof(ExtensionLeafRel));
}
constexpr auto ExtensionLeafRel::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
          &ExtensionLeafRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExtensionLeafRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExtensionLeafRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExtensionLeafRel>(), &ExtensionLeafRel::ByteSizeLong,
              &ExtensionLeafRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExtensionLeafRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[29],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExtensionLeafRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExtensionLeafRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExtensionLeafRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExtensionLeafRel::InternalGenerateClassData_(
            _default, &ExtensionLeafRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExtensionLeafRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExtensionLeafRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExtensionLeafRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExtensionLeafRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExtensionLeafRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr AggregateFunction::ParseTableT_ AggregateFunction::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_._has_bits_),
      0, // no _extensions_
      8, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967040,  // skipmap
      offsetof(ParseTableT_, field_entries),
      8,  // num_field_entries
      5,  // 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::AggregateFunction>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.FunctionOption options = 8;
      {::_pbi::TcParser::FastMtR1,
       {66, 3, 4,
        PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.options_)}},
      // uint32 function_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(AggregateFunction, _impl_.function_reference_), 5>(),
       {8, 5, 0,
        PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.function_reference_)}},
      // repeated .substrait.Expression args = 2 [deprecated = true];
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.args_)}},
      // repeated .substrait.SortField sorts = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 1, 1,
        PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.sorts_)}},
      // .substrait.AggregationPhase phase = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(AggregateFunction, _impl_.phase_), 6>(),
       {32, 6, 0,
        PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.phase_)}},
      // .substrait.Type output_type = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 4, 2,
        PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.output_type_)}},
      // .substrait.AggregateFunction.AggregationInvocation invocation = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(AggregateFunction, _impl_.invocation_), 7>(),
       {48, 7, 0,
        PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.invocation_)}},
      // repeated .substrait.FunctionArgument arguments = 7;
      {::_pbi::TcParser::FastMtR1,
       {58, 2, 3,
        PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.arguments_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 function_reference = 1;
      {PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.function_reference_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // repeated .substrait.Expression args = 2 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.args_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.SortField sorts = 3;
      {PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.sorts_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.AggregationPhase phase = 4;
      {PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.phase_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.Type output_type = 5;
      {PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.output_type_), _Internal::kHasBitsOffset + 4, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.AggregateFunction.AggregationInvocation invocation = 6;
      {PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.invocation_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // repeated .substrait.FunctionArgument arguments = 7;
      {PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.arguments_), _Internal::kHasBitsOffset + 2, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.FunctionOption options = 8;
      {PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.options_), _Internal::kHasBitsOffset + 3, 4, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::SortField>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::SortField_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::FunctionArgument>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::FunctionArgument_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::FunctionOption>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::FunctionOption_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr AggregateFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        args_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::AggregateFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.args_)>()
         }
        ,
        sorts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::AggregateFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.sorts_)>()
         }
        ,
        arguments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::AggregateFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.arguments_)>()
         }
        ,
        options_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::AggregateFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.options_)>()
         }
        ,
        output_type_{nullptr},
        function_reference_{0u},
        phase_{static_cast< ::substrait::AggregationPhase >(0)},
        invocation_{static_cast< ::substrait::AggregateFunction_AggregationInvocation >(0)} {}

template <typename>
constexpr AggregateFunction::AggregateFunction(::_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 AggregateFunction::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AggregateFunction(arena);
}
constexpr auto AggregateFunction::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AggregateFunction), alignof(AggregateFunction));
}
constexpr auto AggregateFunction::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
          &AggregateFunction::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AggregateFunction>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AggregateFunction::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AggregateFunction>(), &AggregateFunction::ByteSizeLong,
              &AggregateFunction::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[114],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AggregateFunctionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AggregateFunctionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AggregateFunction_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AggregateFunction::InternalGenerateClassData_(
            _default, &AggregateFunction_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AggregateFunction>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AggregateFunctionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AggregateFunction _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AggregateFunction>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AggregateFunctionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr AggregateRel::ParseTableT_ AggregateRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966768,  // skipmap
      offsetof(ParseTableT_, field_entries),
      5,  // num_field_entries
      5,  // 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::AggregateRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.AggregateRel.Measure measures = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 1, 3,
        PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.measures_)}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 2, 0,
        PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.common_)}},
      // .substrait.Rel input = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 3, 1,
        PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.input_)}},
      // repeated .substrait.AggregateRel.Grouping groupings = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 0, 2,
        PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.groupings_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.common_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel input = 2;
      {PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.input_), _Internal::kHasBitsOffset + 3, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.AggregateRel.Grouping groupings = 3;
      {PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.groupings_), _Internal::kHasBitsOffset + 0, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.AggregateRel.Measure measures = 4;
      {PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.measures_), _Internal::kHasBitsOffset + 1, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 4, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::AggregateRel_Grouping>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::AggregateRel_Grouping_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::AggregateRel_Measure>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::AggregateRel_Measure_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr AggregateRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        groupings_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::AggregateRel,
            PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel, _impl_.groupings_)>()
         }
        ,
        measures_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::AggregateRel,
            PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel, _impl_.measures_)>()
         }
        ,
        common_{nullptr},
        input_{nullptr},
        advanced_extension_{nullptr} {}

template <typename>
constexpr AggregateRel::AggregateRel(::_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 AggregateRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AggregateRel(arena);
}
constexpr auto AggregateRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AggregateRel), alignof(AggregateRel));
}
constexpr auto AggregateRel::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
          &AggregateRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AggregateRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AggregateRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AggregateRel>(), &AggregateRel::ByteSizeLong,
              &AggregateRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[22],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AggregateRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AggregateRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AggregateRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AggregateRel::InternalGenerateClassData_(
            _default, &AggregateRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AggregateRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AggregateRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AggregateRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AggregateRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AggregateRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr AggregateRel_Grouping::ParseTableT_ AggregateRel_Grouping::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AggregateRel_Grouping, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::AggregateRel_Grouping>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression grouping_expressions = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(AggregateRel_Grouping, _impl_.grouping_expressions_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression grouping_expressions = 1;
      {PROTOBUF_FIELD_OFFSET(AggregateRel_Grouping, _impl_.grouping_expressions_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr AggregateRel_Grouping::AggregateRel_Grouping(::_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 AggregateRel_Grouping::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AggregateRel_Grouping(arena);
}
constexpr auto AggregateRel_Grouping::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AggregateRel_Grouping), alignof(AggregateRel_Grouping));
}
constexpr auto AggregateRel_Grouping::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
          &AggregateRel_Grouping::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AggregateRel_Grouping>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AggregateRel_Grouping::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AggregateRel_Grouping>(), &AggregateRel_Grouping::ByteSizeLong,
              &AggregateRel_Grouping::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AggregateRel_Grouping, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[20],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AggregateRel_GroupingGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AggregateRel_GroupingGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AggregateRel_Grouping_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AggregateRel_Grouping::InternalGenerateClassData_(
            _default, &AggregateRel_Grouping_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AggregateRel_Grouping>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AggregateRel_GroupingGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AggregateRel_Grouping _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AggregateRel_Grouping>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AggregateRel_GroupingGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr AggregateRel_Measure::ParseTableT_ AggregateRel_Measure::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AggregateRel_Measure, _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
      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::AggregateRel_Measure>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression filter = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(AggregateRel_Measure, _impl_.filter_)}},
      // .substrait.AggregateFunction measure = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(AggregateRel_Measure, _impl_.measure_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.AggregateFunction measure = 1;
      {PROTOBUF_FIELD_OFFSET(AggregateRel_Measure, _impl_.measure_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression filter = 2;
      {PROTOBUF_FIELD_OFFSET(AggregateRel_Measure, _impl_.filter_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::AggregateFunction>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::AggregateFunction_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr AggregateRel_Measure::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        measure_{nullptr},
        filter_{nullptr} {}

template <typename>
constexpr AggregateRel_Measure::AggregateRel_Measure(::_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 AggregateRel_Measure::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AggregateRel_Measure(arena);
}
constexpr auto AggregateRel_Measure::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(AggregateRel_Measure), alignof(AggregateRel_Measure));
}
constexpr auto AggregateRel_Measure::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
          &AggregateRel_Measure::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AggregateRel_Measure>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AggregateRel_Measure::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AggregateRel_Measure>(), &AggregateRel_Measure::ByteSizeLong,
              &AggregateRel_Measure::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AggregateRel_Measure, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[21],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AggregateRel_MeasureGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AggregateRel_MeasureGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AggregateRel_Measure_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AggregateRel_Measure::InternalGenerateClassData_(
            _default, &AggregateRel_Measure_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AggregateRel_Measure>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AggregateRel_MeasureGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AggregateRel_Measure _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AggregateRel_Measure>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AggregateRel_MeasureGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ComparisonJoinKey::ParseTableT_ ComparisonJoinKey::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ComparisonJoinKey, _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
      3,  // 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::ComparisonJoinKey>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.Expression.FieldReference left = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ComparisonJoinKey, _impl_.left_)}},
      // .substrait.Expression.FieldReference right = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(ComparisonJoinKey, _impl_.right_)}},
      // .substrait.ComparisonJoinKey.ComparisonType comparison = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(ComparisonJoinKey, _impl_.comparison_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.FieldReference left = 1;
      {PROTOBUF_FIELD_OFFSET(ComparisonJoinKey, _impl_.left_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.FieldReference right = 2;
      {PROTOBUF_FIELD_OFFSET(ComparisonJoinKey, _impl_.right_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ComparisonJoinKey.ComparisonType comparison = 3;
      {PROTOBUF_FIELD_OFFSET(ComparisonJoinKey, _impl_.comparison_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_FieldReference>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_FieldReference_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_FieldReference>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_FieldReference_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ComparisonJoinKey_ComparisonType>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ComparisonJoinKey_ComparisonType_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ComparisonJoinKey::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        left_{nullptr},
        right_{nullptr},
        comparison_{nullptr} {}

template <typename>
constexpr ComparisonJoinKey::ComparisonJoinKey(::_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 ComparisonJoinKey::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ComparisonJoinKey(arena);
}
constexpr auto ComparisonJoinKey::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ComparisonJoinKey), alignof(ComparisonJoinKey));
}
constexpr auto ComparisonJoinKey::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
          &ComparisonJoinKey::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ComparisonJoinKey>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ComparisonJoinKey::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ComparisonJoinKey>(), &ComparisonJoinKey::ByteSizeLong,
              &ComparisonJoinKey::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ComparisonJoinKey, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[48],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ComparisonJoinKeyGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ComparisonJoinKeyGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ComparisonJoinKey_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ComparisonJoinKey::InternalGenerateClassData_(
            _default, &ComparisonJoinKey_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ComparisonJoinKey>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ComparisonJoinKeyGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ComparisonJoinKey _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ComparisonJoinKey>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ComparisonJoinKeyGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ConsistentPartitionWindowRel::ParseTableT_ ConsistentPartitionWindowRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966752,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      6,  // 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::ConsistentPartitionWindowRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 3, 0,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.common_)}},
      // .substrait.Rel input = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 4, 1,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.input_)}},
      // repeated .substrait.ConsistentPartitionWindowRel.WindowRelFunction window_functions = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 0, 2,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.window_functions_)}},
      // repeated .substrait.Expression partition_expressions = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 1, 3,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.partition_expressions_)}},
      // repeated .substrait.SortField sorts = 5;
      {::_pbi::TcParser::FastMtR1,
       {42, 2, 4,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.sorts_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.common_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel input = 2;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.input_), _Internal::kHasBitsOffset + 4, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.ConsistentPartitionWindowRel.WindowRelFunction window_functions = 3;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.window_functions_), _Internal::kHasBitsOffset + 0, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Expression partition_expressions = 4;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.partition_expressions_), _Internal::kHasBitsOffset + 1, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.SortField sorts = 5;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.sorts_), _Internal::kHasBitsOffset + 2, 4, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 5, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ConsistentPartitionWindowRel_WindowRelFunction>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ConsistentPartitionWindowRel_WindowRelFunction_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::SortField>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::SortField_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ConsistentPartitionWindowRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        window_functions_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::ConsistentPartitionWindowRel,
            PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.window_functions_)>()
         }
        ,
        partition_expressions_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::ConsistentPartitionWindowRel,
            PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.partition_expressions_)>()
         }
        ,
        sorts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::ConsistentPartitionWindowRel,
            PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.sorts_)>()
         }
        ,
        common_{nullptr},
        input_{nullptr},
        advanced_extension_{nullptr} {}

template <typename>
constexpr ConsistentPartitionWindowRel::ConsistentPartitionWindowRel(::_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 ConsistentPartitionWindowRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ConsistentPartitionWindowRel(arena);
}
constexpr auto ConsistentPartitionWindowRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ConsistentPartitionWindowRel), alignof(ConsistentPartitionWindowRel));
}
constexpr auto ConsistentPartitionWindowRel::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
          &ConsistentPartitionWindowRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ConsistentPartitionWindowRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ConsistentPartitionWindowRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ConsistentPartitionWindowRel>(), &ConsistentPartitionWindowRel::ByteSizeLong,
              &ConsistentPartitionWindowRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[24],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ConsistentPartitionWindowRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ConsistentPartitionWindowRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ConsistentPartitionWindowRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ConsistentPartitionWindowRel::InternalGenerateClassData_(
            _default, &ConsistentPartitionWindowRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ConsistentPartitionWindowRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ConsistentPartitionWindowRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ConsistentPartitionWindowRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ConsistentPartitionWindowRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ConsistentPartitionWindowRel_WindowRelFunction::ParseTableT_ ConsistentPartitionWindowRel_WindowRelFunction::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_._has_bits_),
      0, // no _extensions_
      12, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294963334,  // skipmap
      offsetof(ParseTableT_, field_entries),
      9,  // num_field_entries
      5,  // 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::ConsistentPartitionWindowRel_WindowRelFunction>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 function_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.function_reference_), 5>(),
       {8, 5, 0,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.function_reference_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.Expression.WindowFunction.Bound upper_bound = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 2, 0,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.upper_bound_)}},
      // .substrait.Expression.WindowFunction.Bound lower_bound = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 3, 1,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.lower_bound_)}},
      // .substrait.AggregationPhase phase = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.phase_), 6>(),
       {48, 6, 0,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.phase_)}},
      // .substrait.Type output_type = 7;
      {::_pbi::TcParser::FastMtS1,
       {58, 4, 2,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.output_type_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .substrait.FunctionArgument arguments = 9;
      {::_pbi::TcParser::FastMtR1,
       {74, 0, 3,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.arguments_)}},
      // .substrait.AggregateFunction.AggregationInvocation invocation = 10;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.invocation_), 7>(),
       {80, 7, 0,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.invocation_)}},
      // repeated .substrait.FunctionOption options = 11;
      {::_pbi::TcParser::FastMtR1,
       {90, 1, 4,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.options_)}},
      // .substrait.Expression.WindowFunction.BoundsType bounds_type = 12;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.bounds_type_), 8>(),
       {96, 8, 0,
        PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.bounds_type_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 function_reference = 1;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.function_reference_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Expression.WindowFunction.Bound upper_bound = 4;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.upper_bound_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.WindowFunction.Bound lower_bound = 5;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.lower_bound_), _Internal::kHasBitsOffset + 3, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.AggregationPhase phase = 6;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.phase_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.Type output_type = 7;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.output_type_), _Internal::kHasBitsOffset + 4, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.FunctionArgument arguments = 9;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.arguments_), _Internal::kHasBitsOffset + 0, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.AggregateFunction.AggregationInvocation invocation = 10;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.invocation_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // repeated .substrait.FunctionOption options = 11;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.options_), _Internal::kHasBitsOffset + 1, 4, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.WindowFunction.BoundsType bounds_type = 12;
      {PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.bounds_type_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_WindowFunction_Bound>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_WindowFunction_Bound_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_WindowFunction_Bound>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_WindowFunction_Bound_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::FunctionArgument>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::FunctionArgument_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::FunctionOption>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::FunctionOption_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ConsistentPartitionWindowRel_WindowRelFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        arguments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::ConsistentPartitionWindowRel_WindowRelFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.arguments_)>()
         }
        ,
        options_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::ConsistentPartitionWindowRel_WindowRelFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.options_)>()
         }
        ,
        upper_bound_{nullptr},
        lower_bound_{nullptr},
        output_type_{nullptr},
        function_reference_{0u},
        phase_{static_cast< ::substrait::AggregationPhase >(0)},
        invocation_{static_cast< ::substrait::AggregateFunction_AggregationInvocation >(0)},
        bounds_type_{static_cast< ::substrait::Expression_WindowFunction_BoundsType >(0)} {}

template <typename>
constexpr ConsistentPartitionWindowRel_WindowRelFunction::ConsistentPartitionWindowRel_WindowRelFunction(::_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 ConsistentPartitionWindowRel_WindowRelFunction::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ConsistentPartitionWindowRel_WindowRelFunction(arena);
}
constexpr auto ConsistentPartitionWindowRel_WindowRelFunction::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ConsistentPartitionWindowRel_WindowRelFunction), alignof(ConsistentPartitionWindowRel_WindowRelFunction));
}
constexpr auto ConsistentPartitionWindowRel_WindowRelFunction::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
          &ConsistentPartitionWindowRel_WindowRelFunction::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ConsistentPartitionWindowRel_WindowRelFunction>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ConsistentPartitionWindowRel_WindowRelFunction::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ConsistentPartitionWindowRel_WindowRelFunction>(), &ConsistentPartitionWindowRel_WindowRelFunction::ByteSizeLong,
              &ConsistentPartitionWindowRel_WindowRelFunction::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[23],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ConsistentPartitionWindowRel_WindowRelFunctionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ConsistentPartitionWindowRel_WindowRelFunctionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ConsistentPartitionWindowRel_WindowRelFunction_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ConsistentPartitionWindowRel_WindowRelFunction::InternalGenerateClassData_(
            _default, &ConsistentPartitionWindowRel_WindowRelFunction_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ConsistentPartitionWindowRel_WindowRelFunction>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ConsistentPartitionWindowRel_WindowRelFunctionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ConsistentPartitionWindowRel_WindowRelFunction _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ConsistentPartitionWindowRel_WindowRelFunction>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunctionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr CrossRel::ParseTableT_ CrossRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(CrossRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966776,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // 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::CrossRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(CrossRel, _impl_.common_)}},
      // .substrait.Rel left = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(CrossRel, _impl_.left_)}},
      // .substrait.Rel right = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(CrossRel, _impl_.right_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(CrossRel, _impl_.common_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel left = 2;
      {PROTOBUF_FIELD_OFFSET(CrossRel, _impl_.left_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel right = 3;
      {PROTOBUF_FIELD_OFFSET(CrossRel, _impl_.right_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(CrossRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr CrossRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        common_{nullptr},
        left_{nullptr},
        right_{nullptr},
        advanced_extension_{nullptr} {}

template <typename>
constexpr CrossRel::CrossRel(::_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 CrossRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) CrossRel(arena);
}
constexpr auto CrossRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(CrossRel), alignof(CrossRel));
}
constexpr auto CrossRel::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
          &CrossRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<CrossRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &CrossRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<CrossRel>(), &CrossRel::ByteSizeLong,
              &CrossRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(CrossRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[18],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct CrossRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr CrossRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 CrossRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(CrossRel::InternalGenerateClassData_(
            _default, &CrossRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<CrossRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~CrossRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) CrossRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<CrossRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(CrossRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr DdlRel::ParseTableT_ DdlRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(DdlRel, _impl_._has_bits_),
      0, // no _extensions_
      8, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967040,  // skipmap
      offsetof(ParseTableT_, field_entries),
      8,  // num_field_entries
      6,  // 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::DdlRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.RelCommon common = 8;
      {::_pbi::TcParser::FastMtS1,
       {66, 3, 5,
        PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.common_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.NamedStruct table_schema = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 0, 2,
        PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.table_schema_)}},
      // .substrait.Expression.Literal.Struct table_defaults = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 1, 3,
        PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.table_defaults_)}},
      // .substrait.DdlRel.DdlObject object = 5;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(DdlRel, _impl_.object_), 4>(),
       {40, 4, 0,
        PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.object_)}},
      // .substrait.DdlRel.DdlOp op = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(DdlRel, _impl_.op_), 5>(),
       {48, 5, 0,
        PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.op_)}},
      // .substrait.Rel view_definition = 7;
      {::_pbi::TcParser::FastMtS1,
       {58, 2, 4,
        PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.view_definition_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.NamedObjectWrite named_object = 1;
      {PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.write_type_.named_object_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExtensionObject extension_object = 2;
      {PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.write_type_.extension_object_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.NamedStruct table_schema = 3;
      {PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.table_schema_), _Internal::kHasBitsOffset + 0, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Literal.Struct table_defaults = 4;
      {PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.table_defaults_), _Internal::kHasBitsOffset + 1, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.DdlRel.DdlObject object = 5;
      {PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.object_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.DdlRel.DdlOp op = 6;
      {PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.op_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.Rel view_definition = 7;
      {PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.view_definition_), _Internal::kHasBitsOffset + 2, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.RelCommon common = 8;
      {PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.common_), _Internal::kHasBitsOffset + 3, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::NamedObjectWrite>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::NamedObjectWrite_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExtensionObject>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExtensionObject_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::NamedStruct>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::NamedStruct_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal_Struct>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_Struct_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr DdlRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        table_schema_{nullptr},
        table_defaults_{nullptr},
        view_definition_{nullptr},
        common_{nullptr},
        object_{static_cast< ::substrait::DdlRel_DdlObject >(0)},
        op_{static_cast< ::substrait::DdlRel_DdlOp >(0)},
        write_type_{},
        _oneof_case_{} {}

template <typename>
constexpr DdlRel::DdlRel(::_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 DdlRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) DdlRel(arena);
}
constexpr auto DdlRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(DdlRel), alignof(DdlRel));
}
constexpr auto DdlRel::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
          &DdlRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<DdlRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &DdlRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<DdlRel>(), &DdlRel::ByteSizeLong,
              &DdlRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(DdlRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[45],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct DdlRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr DdlRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 DdlRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(DdlRel::InternalGenerateClassData_(
            _default, &DdlRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<DdlRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~DdlRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) DdlRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<DdlRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(DdlRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExchangeRel::ParseTableT_ ExchangeRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966272,  // skipmap
      offsetof(ParseTableT_, field_entries),
      10,  // num_field_entries
      9,  // 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::ExchangeRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.common_)}},
      // .substrait.Rel input = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 2, 1,
        PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.input_)}},
      // int32 partition_count = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ExchangeRel, _impl_.partition_count_), 4>(),
       {24, 4, 0,
        PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.partition_count_)}},
      // repeated .substrait.ExchangeRel.ExchangeTarget targets = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 0, 2,
        PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.targets_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {::_pbi::TcParser::FastMtS1,
       {82, 3, 8,
        PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.advanced_extension_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.common_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel input = 2;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.input_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // int32 partition_count = 3;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.partition_count_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // repeated .substrait.ExchangeRel.ExchangeTarget targets = 4;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.targets_), _Internal::kHasBitsOffset + 0, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExchangeRel.ScatterFields scatter_by_fields = 5;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.exchange_kind_.scatter_by_fields_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExchangeRel.SingleBucketExpression single_target = 6;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.exchange_kind_.single_target_), _Internal::kOneofCaseOffset + 0, 4, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExchangeRel.MultiBucketExpression multi_target = 7;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.exchange_kind_.multi_target_), _Internal::kOneofCaseOffset + 0, 5, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExchangeRel.RoundRobin round_robin = 8;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.exchange_kind_.round_robin_), _Internal::kOneofCaseOffset + 0, 6, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExchangeRel.Broadcast broadcast = 9;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.exchange_kind_.broadcast_), _Internal::kOneofCaseOffset + 0, 7, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 3, 8, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExchangeRel_ExchangeTarget>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExchangeRel_ExchangeTarget_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExchangeRel_ScatterFields>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExchangeRel_ScatterFields_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExchangeRel_SingleBucketExpression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExchangeRel_SingleBucketExpression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExchangeRel_MultiBucketExpression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExchangeRel_MultiBucketExpression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExchangeRel_RoundRobin>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExchangeRel_RoundRobin_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExchangeRel_Broadcast>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExchangeRel_Broadcast_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ExchangeRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        targets_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::ExchangeRel,
            PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.targets_)>()
         }
        ,
        common_{nullptr},
        input_{nullptr},
        advanced_extension_{nullptr},
        partition_count_{0},
        exchange_kind_{},
        _oneof_case_{} {}

template <typename>
constexpr ExchangeRel::ExchangeRel(::_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 ExchangeRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExchangeRel(arena);
}
constexpr auto ExchangeRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExchangeRel), alignof(ExchangeRel));
}
constexpr auto ExchangeRel::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
          &ExchangeRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExchangeRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExchangeRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExchangeRel>(), &ExchangeRel::ByteSizeLong,
              &ExchangeRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[37],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExchangeRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExchangeRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExchangeRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExchangeRel::InternalGenerateClassData_(
            _default, &ExchangeRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExchangeRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExchangeRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExchangeRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExchangeRel_MultiBucketExpression::ParseTableT_ ExchangeRel_MultiBucketExpression::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExchangeRel_MultiBucketExpression, _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::ExchangeRel_MultiBucketExpression>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool constrained_to_count = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(ExchangeRel_MultiBucketExpression, _impl_.constrained_to_count_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(ExchangeRel_MultiBucketExpression, _impl_.constrained_to_count_)}},
      // .substrait.Expression expression = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExchangeRel_MultiBucketExpression, _impl_.expression_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression expression = 1;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel_MultiBucketExpression, _impl_.expression_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // bool constrained_to_count = 2;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel_MultiBucketExpression, _impl_.constrained_to_count_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ExchangeRel_MultiBucketExpression::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        expression_{nullptr},
        constrained_to_count_{false} {}

template <typename>
constexpr ExchangeRel_MultiBucketExpression::ExchangeRel_MultiBucketExpression(::_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 ExchangeRel_MultiBucketExpression::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExchangeRel_MultiBucketExpression(arena);
}
constexpr auto ExchangeRel_MultiBucketExpression::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ExchangeRel_MultiBucketExpression), alignof(ExchangeRel_MultiBucketExpression));
}
constexpr auto ExchangeRel_MultiBucketExpression::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
          &ExchangeRel_MultiBucketExpression::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExchangeRel_MultiBucketExpression>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExchangeRel_MultiBucketExpression::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExchangeRel_MultiBucketExpression>(), &ExchangeRel_MultiBucketExpression::ByteSizeLong,
              &ExchangeRel_MultiBucketExpression::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExchangeRel_MultiBucketExpression, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[33],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExchangeRel_MultiBucketExpressionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExchangeRel_MultiBucketExpressionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExchangeRel_MultiBucketExpression_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExchangeRel_MultiBucketExpression::InternalGenerateClassData_(
            _default, &ExchangeRel_MultiBucketExpression_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_MultiBucketExpression>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExchangeRel_MultiBucketExpressionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExchangeRel_MultiBucketExpression _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_MultiBucketExpression>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExchangeRel_MultiBucketExpressionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExchangeRel_ScatterFields::ParseTableT_ ExchangeRel_ScatterFields::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExchangeRel_ScatterFields, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::ExchangeRel_ScatterFields>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression.FieldReference fields = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExchangeRel_ScatterFields, _impl_.fields_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression.FieldReference fields = 1;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel_ScatterFields, _impl_.fields_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_FieldReference>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_FieldReference_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr ExchangeRel_ScatterFields::ExchangeRel_ScatterFields(::_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 ExchangeRel_ScatterFields::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExchangeRel_ScatterFields(arena);
}
constexpr auto ExchangeRel_ScatterFields::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExchangeRel_ScatterFields), alignof(ExchangeRel_ScatterFields));
}
constexpr auto ExchangeRel_ScatterFields::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
          &ExchangeRel_ScatterFields::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExchangeRel_ScatterFields>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExchangeRel_ScatterFields::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExchangeRel_ScatterFields>(), &ExchangeRel_ScatterFields::ByteSizeLong,
              &ExchangeRel_ScatterFields::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExchangeRel_ScatterFields, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[31],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExchangeRel_ScatterFieldsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExchangeRel_ScatterFieldsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExchangeRel_ScatterFields_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExchangeRel_ScatterFields::InternalGenerateClassData_(
            _default, &ExchangeRel_ScatterFields_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_ScatterFields>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExchangeRel_ScatterFieldsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExchangeRel_ScatterFields _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_ScatterFields>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExchangeRel_ScatterFieldsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExchangeRel_SingleBucketExpression::ParseTableT_ ExchangeRel_SingleBucketExpression::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExchangeRel_SingleBucketExpression, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::ExchangeRel_SingleBucketExpression>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression expression = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExchangeRel_SingleBucketExpression, _impl_.expression_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression expression = 1;
      {PROTOBUF_FIELD_OFFSET(ExchangeRel_SingleBucketExpression, _impl_.expression_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ExchangeRel_SingleBucketExpression::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        expression_{nullptr} {}

template <typename>
constexpr ExchangeRel_SingleBucketExpression::ExchangeRel_SingleBucketExpression(::_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 ExchangeRel_SingleBucketExpression::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExchangeRel_SingleBucketExpression(arena);
}
constexpr auto ExchangeRel_SingleBucketExpression::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ExchangeRel_SingleBucketExpression), alignof(ExchangeRel_SingleBucketExpression));
}
constexpr auto ExchangeRel_SingleBucketExpression::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
          &ExchangeRel_SingleBucketExpression::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExchangeRel_SingleBucketExpression>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExchangeRel_SingleBucketExpression::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExchangeRel_SingleBucketExpression>(), &ExchangeRel_SingleBucketExpression::ByteSizeLong,
              &ExchangeRel_SingleBucketExpression::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExchangeRel_SingleBucketExpression, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[32],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExchangeRel_SingleBucketExpressionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExchangeRel_SingleBucketExpressionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExchangeRel_SingleBucketExpression_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExchangeRel_SingleBucketExpression::InternalGenerateClassData_(
            _default, &ExchangeRel_SingleBucketExpression_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_SingleBucketExpression>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExchangeRel_SingleBucketExpressionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExchangeRel_SingleBucketExpression _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExchangeRel_SingleBucketExpression>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExchangeRel_SingleBucketExpressionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExpandRel::ParseTableT_ ExpandRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExpandRel, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967284,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // 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::ExpandRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.ExpandRel.ExpandField fields = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 0, 2,
        PROTOBUF_FIELD_OFFSET(ExpandRel, _impl_.fields_)}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(ExpandRel, _impl_.common_)}},
      // .substrait.Rel input = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 2, 1,
        PROTOBUF_FIELD_OFFSET(ExpandRel, _impl_.input_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(ExpandRel, _impl_.common_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel input = 2;
      {PROTOBUF_FIELD_OFFSET(ExpandRel, _impl_.input_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.ExpandRel.ExpandField fields = 4;
      {PROTOBUF_FIELD_OFFSET(ExpandRel, _impl_.fields_), _Internal::kHasBitsOffset + 0, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExpandRel_ExpandField>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExpandRel_ExpandField_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr ExpandRel::ExpandRel(::_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 ExpandRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExpandRel(arena);
}
constexpr auto ExpandRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExpandRel), alignof(ExpandRel));
}
constexpr auto ExpandRel::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
          &ExpandRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExpandRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExpandRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExpandRel>(), &ExpandRel::ByteSizeLong,
              &ExpandRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExpandRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[40],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExpandRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExpandRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExpandRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExpandRel::InternalGenerateClassData_(
            _default, &ExpandRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExpandRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExpandRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExpandRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExpandRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExpandRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExpandRel_ExpandField::ParseTableT_ ExpandRel_ExpandField::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExpandRel_ExpandField,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      3, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967289,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // 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::ExpandRel_ExpandField>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.ExpandRel.SwitchingField switching_field = 2;
      {PROTOBUF_FIELD_OFFSET(ExpandRel_ExpandField, _impl_.field_type_.switching_field_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression consistent_field = 3;
      {PROTOBUF_FIELD_OFFSET(ExpandRel_ExpandField, _impl_.field_type_.consistent_field_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExpandRel_SwitchingField>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExpandRel_SwitchingField_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr ExpandRel_ExpandField::ExpandRel_ExpandField(::_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 ExpandRel_ExpandField::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExpandRel_ExpandField(arena);
}
constexpr auto ExpandRel_ExpandField::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ExpandRel_ExpandField), alignof(ExpandRel_ExpandField));
}
constexpr auto ExpandRel_ExpandField::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
          &ExpandRel_ExpandField::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExpandRel_ExpandField>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExpandRel_ExpandField::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExpandRel_ExpandField>(), &ExpandRel_ExpandField::ByteSizeLong,
              &ExpandRel_ExpandField::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExpandRel_ExpandField, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[38],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExpandRel_ExpandFieldGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExpandRel_ExpandFieldGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExpandRel_ExpandField_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExpandRel_ExpandField::InternalGenerateClassData_(
            _default, &ExpandRel_ExpandField_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExpandRel_ExpandField>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExpandRel_ExpandFieldGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExpandRel_ExpandField _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExpandRel_ExpandField>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExpandRel_ExpandFieldGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExpandRel_SwitchingField::ParseTableT_ ExpandRel_SwitchingField::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExpandRel_SwitchingField, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::ExpandRel_SwitchingField>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression duplicates = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExpandRel_SwitchingField, _impl_.duplicates_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression duplicates = 1;
      {PROTOBUF_FIELD_OFFSET(ExpandRel_SwitchingField, _impl_.duplicates_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr ExpandRel_SwitchingField::ExpandRel_SwitchingField(::_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 ExpandRel_SwitchingField::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExpandRel_SwitchingField(arena);
}
constexpr auto ExpandRel_SwitchingField::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExpandRel_SwitchingField), alignof(ExpandRel_SwitchingField));
}
constexpr auto ExpandRel_SwitchingField::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
          &ExpandRel_SwitchingField::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExpandRel_SwitchingField>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExpandRel_SwitchingField::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExpandRel_SwitchingField>(), &ExpandRel_SwitchingField::ByteSizeLong,
              &ExpandRel_SwitchingField::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExpandRel_SwitchingField, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[39],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExpandRel_SwitchingFieldGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExpandRel_SwitchingFieldGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExpandRel_SwitchingField_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExpandRel_SwitchingField::InternalGenerateClassData_(
            _default, &ExpandRel_SwitchingField_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExpandRel_SwitchingField>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExpandRel_SwitchingFieldGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExpandRel_SwitchingField _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExpandRel_SwitchingField>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExpandRel_SwitchingFieldGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression::ParseTableT_ Expression::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      13, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294959112,  // skipmap
      offsetof(ParseTableT_, field_entries),
      12,  // num_field_entries
      12,  // 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::Expression>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.Literal literal = 1;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.literal_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.FieldReference selection = 2;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.selection_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.ScalarFunction scalar_function = 3;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.scalar_function_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.WindowFunction window_function = 5;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.window_function_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.IfThen if_then = 6;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.if_then_), _Internal::kOneofCaseOffset + 0, 4, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.SwitchExpression switch_expression = 7;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.switch_expression_), _Internal::kOneofCaseOffset + 0, 5, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.SingularOrList singular_or_list = 8;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.singular_or_list_), _Internal::kOneofCaseOffset + 0, 6, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.MultiOrList multi_or_list = 9;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.multi_or_list_), _Internal::kOneofCaseOffset + 0, 7, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Enum enum = 10 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.enum__), _Internal::kOneofCaseOffset + 0, 8, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Cast cast = 11;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.cast_), _Internal::kOneofCaseOffset + 0, 9, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Subquery subquery = 12;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.subquery_), _Internal::kOneofCaseOffset + 0, 10, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Nested nested = 13;
      {PROTOBUF_FIELD_OFFSET(Expression, _impl_.rex_type_.nested_), _Internal::kOneofCaseOffset + 0, 11, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_FieldReference>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_FieldReference_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_ScalarFunction>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_ScalarFunction_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_WindowFunction>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_WindowFunction_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_IfThen>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_IfThen_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_SwitchExpression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_SwitchExpression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_SingularOrList>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_SingularOrList_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MultiOrList>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MultiOrList_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Enum>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Enum_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Cast>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Cast_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Subquery>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Subquery_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Nested>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Nested_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression::Expression(::_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 Expression::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression(arena);
}
constexpr auto Expression::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression), alignof(Expression));
}
constexpr auto Expression::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
          &Expression::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression>(), &Expression::ByteSizeLong,
              &Expression::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[112],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExpressionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExpressionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression::InternalGenerateClassData_(
            _default, &Expression_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExpressionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExpressionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Cast::ParseTableT_ Expression_Cast::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Cast, _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
      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::Expression_Cast>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.Type type = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Cast, _impl_.type_)}},
      // .substrait.Expression input = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_Cast, _impl_.input_)}},
      // .substrait.Expression.Cast.FailureBehavior failure_behavior = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Cast, _impl_.failure_behavior_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Cast, _impl_.failure_behavior_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Type type = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Cast, _impl_.type_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression input = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Cast, _impl_.input_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Cast.FailureBehavior failure_behavior = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_Cast, _impl_.failure_behavior_), _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
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_Cast::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_{nullptr},
        input_{nullptr},
        failure_behavior_{static_cast< ::substrait::Expression_Cast_FailureBehavior >(0)} {}

template <typename>
constexpr Expression_Cast::Expression_Cast(::_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 Expression_Cast::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Cast(arena);
}
constexpr auto Expression_Cast::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Cast), alignof(Expression_Cast));
}
constexpr auto Expression_Cast::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
          &Expression_Cast::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Cast>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Cast::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Cast>(), &Expression_Cast::ByteSizeLong,
              &Expression_Cast::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Cast, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[80],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_CastGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_CastGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Cast_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Cast::InternalGenerateClassData_(
            _default, &Expression_Cast_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Cast>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_CastGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Cast _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Cast>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_CastGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_FieldReference::ParseTableT_ Expression_FieldReference::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_FieldReference,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      5, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967264,  // skipmap
      offsetof(ParseTableT_, field_entries),
      5,  // num_field_entries
      5,  // 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::Expression_FieldReference>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.ReferenceSegment direct_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_FieldReference, _impl_.reference_type_.direct_reference_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.MaskExpression masked_reference = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_FieldReference, _impl_.reference_type_.masked_reference_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression expression = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_FieldReference, _impl_.root_type_.expression_), _Internal::kOneofCaseOffset + 4, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.FieldReference.RootReference root_reference = 4;
      {PROTOBUF_FIELD_OFFSET(Expression_FieldReference, _impl_.root_type_.root_reference_), _Internal::kOneofCaseOffset + 4, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.FieldReference.OuterReference outer_reference = 5;
      {PROTOBUF_FIELD_OFFSET(Expression_FieldReference, _impl_.root_type_.outer_reference_), _Internal::kOneofCaseOffset + 4, 4, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_ReferenceSegment>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_ReferenceSegment_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_FieldReference_RootReference>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_FieldReference_RootReference_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_FieldReference_OuterReference>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_FieldReference_OuterReference_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_FieldReference::Expression_FieldReference(::_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 Expression_FieldReference::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_FieldReference(arena);
}
constexpr auto Expression_FieldReference::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_FieldReference), alignof(Expression_FieldReference));
}
constexpr auto Expression_FieldReference::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
          &Expression_FieldReference::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_FieldReference>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_FieldReference::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_FieldReference>(), &Expression_FieldReference::ByteSizeLong,
              &Expression_FieldReference::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_FieldReference, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[106],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_FieldReferenceGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_FieldReferenceGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_FieldReference_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_FieldReference::InternalGenerateClassData_(
            _default, &Expression_FieldReference_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_FieldReference>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_FieldReferenceGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_FieldReference _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_FieldReference>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_FieldReferenceGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_IfThen::ParseTableT_ Expression_IfThen::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_IfThen, _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
      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::Expression_IfThen>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression else = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_IfThen, _impl_.else__)}},
      // repeated .substrait.Expression.IfThen.IfClause ifs = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_IfThen, _impl_.ifs_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression.IfThen.IfClause ifs = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_IfThen, _impl_.ifs_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression else = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_IfThen, _impl_.else__), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_IfThen_IfClause>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_IfThen_IfClause_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_IfThen::Expression_IfThen(::_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 Expression_IfThen::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_IfThen(arena);
}
constexpr auto Expression_IfThen::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_IfThen), alignof(Expression_IfThen));
}
constexpr auto Expression_IfThen::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
          &Expression_IfThen::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_IfThen>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_IfThen::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_IfThen>(), &Expression_IfThen::ByteSizeLong,
              &Expression_IfThen::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_IfThen, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[79],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_IfThenGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_IfThenGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_IfThen_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_IfThen::InternalGenerateClassData_(
            _default, &Expression_IfThen_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_IfThen>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_IfThenGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_IfThen _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_IfThen>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_IfThenGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_IfThen_IfClause::ParseTableT_ Expression_IfThen_IfClause::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_IfThen_IfClause, _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
      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::Expression_IfThen_IfClause>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression then = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_IfThen_IfClause, _impl_.then_)}},
      // .substrait.Expression if = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_IfThen_IfClause, _impl_.if__)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression if = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_IfThen_IfClause, _impl_.if__), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression then = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_IfThen_IfClause, _impl_.then_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_IfThen_IfClause::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        if__{nullptr},
        then_{nullptr} {}

template <typename>
constexpr Expression_IfThen_IfClause::Expression_IfThen_IfClause(::_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 Expression_IfThen_IfClause::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_IfThen_IfClause(arena);
}
constexpr auto Expression_IfThen_IfClause::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_IfThen_IfClause), alignof(Expression_IfThen_IfClause));
}
constexpr auto Expression_IfThen_IfClause::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
          &Expression_IfThen_IfClause::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_IfThen_IfClause>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_IfThen_IfClause::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_IfThen_IfClause>(), &Expression_IfThen_IfClause::ByteSizeLong,
              &Expression_IfThen_IfClause::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_IfThen_IfClause, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[78],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_IfThen_IfClauseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_IfThen_IfClauseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_IfThen_IfClause_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_IfThen_IfClause::InternalGenerateClassData_(
            _default, &Expression_IfThen_IfClause_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_IfThen_IfClause>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_IfThen_IfClauseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_IfThen_IfClause _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_IfThen_IfClause>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_IfThen_IfClauseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MultiOrList::ParseTableT_ Expression_MultiOrList::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MultiOrList, _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
      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::Expression_MultiOrList>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression.MultiOrList.Record options = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_MultiOrList, _impl_.options_)}},
      // repeated .substrait.Expression value = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MultiOrList, _impl_.value_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression value = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MultiOrList, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Expression.MultiOrList.Record options = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_MultiOrList, _impl_.options_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MultiOrList_Record>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MultiOrList_Record_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_MultiOrList::Expression_MultiOrList(::_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 Expression_MultiOrList::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MultiOrList(arena);
}
constexpr auto Expression_MultiOrList::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_MultiOrList), alignof(Expression_MultiOrList));
}
constexpr auto Expression_MultiOrList::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
          &Expression_MultiOrList::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MultiOrList>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MultiOrList::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MultiOrList>(), &Expression_MultiOrList::ByteSizeLong,
              &Expression_MultiOrList::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MultiOrList, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[85],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MultiOrListGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MultiOrListGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MultiOrList_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MultiOrList::InternalGenerateClassData_(
            _default, &Expression_MultiOrList_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MultiOrList>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MultiOrListGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MultiOrList _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MultiOrList>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MultiOrListGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_MultiOrList_Record::ParseTableT_ Expression_MultiOrList_Record::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_MultiOrList_Record, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_MultiOrList_Record>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression fields = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_MultiOrList_Record, _impl_.fields_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression fields = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_MultiOrList_Record, _impl_.fields_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_MultiOrList_Record::Expression_MultiOrList_Record(::_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 Expression_MultiOrList_Record::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_MultiOrList_Record(arena);
}
constexpr auto Expression_MultiOrList_Record::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_MultiOrList_Record), alignof(Expression_MultiOrList_Record));
}
constexpr auto Expression_MultiOrList_Record::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
          &Expression_MultiOrList_Record::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_MultiOrList_Record>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_MultiOrList_Record::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_MultiOrList_Record>(), &Expression_MultiOrList_Record::ByteSizeLong,
              &Expression_MultiOrList_Record::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_MultiOrList_Record, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[84],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_MultiOrList_RecordGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_MultiOrList_RecordGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_MultiOrList_Record_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_MultiOrList_Record::InternalGenerateClassData_(
            _default, &Expression_MultiOrList_Record_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_MultiOrList_Record>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_MultiOrList_RecordGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_MultiOrList_Record _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_MultiOrList_Record>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_MultiOrList_RecordGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Nested::ParseTableT_ Expression_Nested::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Nested, _impl_._has_bits_),
      0, // no _extensions_
      5, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967264,  // skipmap
      offsetof(ParseTableT_, field_entries),
      5,  // num_field_entries
      3,  // 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::Expression_Nested>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 type_variation_reference = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Nested, _impl_.type_variation_reference_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Nested, _impl_.type_variation_reference_)}},
      // bool nullable = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(Expression_Nested, _impl_.nullable_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Nested, _impl_.nullable_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool nullable = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Nested, _impl_.nullable_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // uint32 type_variation_reference = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Nested, _impl_.type_variation_reference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .substrait.Expression.Nested.Struct struct = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_Nested, _impl_.nested_type_.struct__), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Nested.List list = 4;
      {PROTOBUF_FIELD_OFFSET(Expression_Nested, _impl_.nested_type_.list_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Nested.Map map = 5;
      {PROTOBUF_FIELD_OFFSET(Expression_Nested, _impl_.nested_type_.map_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Nested_Struct>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Nested_Struct_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Nested_List>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Nested_List_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Nested_Map>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Nested_Map_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_Nested::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        nullable_{false},
        type_variation_reference_{0u},
        nested_type_{},
        _oneof_case_{} {}

template <typename>
constexpr Expression_Nested::Expression_Nested(::_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 Expression_Nested::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Nested(arena);
}
constexpr auto Expression_Nested::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Nested), alignof(Expression_Nested));
}
constexpr auto Expression_Nested::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
          &Expression_Nested::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Nested>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Nested::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Nested>(), &Expression_Nested::ByteSizeLong,
              &Expression_Nested::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Nested, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[70],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_NestedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_NestedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Nested_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Nested::InternalGenerateClassData_(
            _default, &Expression_Nested_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Nested>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_NestedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Nested _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Nested>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_NestedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Nested_List::ParseTableT_ Expression_Nested_List::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Nested_List, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_Nested_List>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression values = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Nested_List, _impl_.values_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression values = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Nested_List, _impl_.values_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_Nested_List::Expression_Nested_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 Expression_Nested_List::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Nested_List(arena);
}
constexpr auto Expression_Nested_List::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_Nested_List), alignof(Expression_Nested_List));
}
constexpr auto Expression_Nested_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
          &Expression_Nested_List::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Nested_List>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Nested_List::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Nested_List>(), &Expression_Nested_List::ByteSizeLong,
              &Expression_Nested_List::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Nested_List, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[69],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Nested_ListGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Nested_ListGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Nested_List_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Nested_List::InternalGenerateClassData_(
            _default, &Expression_Nested_List_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Nested_List>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Nested_ListGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Nested_List _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Nested_List>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Nested_ListGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Nested_Map::ParseTableT_ Expression_Nested_Map::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Nested_Map, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_Nested_Map>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression.Nested.Map.KeyValue key_values = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Nested_Map, _impl_.key_values_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression.Nested.Map.KeyValue key_values = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Nested_Map, _impl_.key_values_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Nested_Map_KeyValue>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Nested_Map_KeyValue_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_Nested_Map::Expression_Nested_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 Expression_Nested_Map::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Nested_Map(arena);
}
constexpr auto Expression_Nested_Map::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_Nested_Map), alignof(Expression_Nested_Map));
}
constexpr auto Expression_Nested_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
          &Expression_Nested_Map::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Nested_Map>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Nested_Map::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Nested_Map>(), &Expression_Nested_Map::ByteSizeLong,
              &Expression_Nested_Map::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Nested_Map, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[67],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Nested_MapGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Nested_MapGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Nested_Map_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Nested_Map::InternalGenerateClassData_(
            _default, &Expression_Nested_Map_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Nested_Map>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Nested_MapGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Nested_Map _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Nested_Map>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Nested_MapGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Nested_Map_KeyValue::ParseTableT_ Expression_Nested_Map_KeyValue::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Nested_Map_KeyValue, _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
      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::Expression_Nested_Map_KeyValue>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression value = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_Nested_Map_KeyValue, _impl_.value_)}},
      // .substrait.Expression key = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Nested_Map_KeyValue, _impl_.key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression key = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Nested_Map_KeyValue, _impl_.key_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression value = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Nested_Map_KeyValue, _impl_.value_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_Nested_Map_KeyValue::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        key_{nullptr},
        value_{nullptr} {}

template <typename>
constexpr Expression_Nested_Map_KeyValue::Expression_Nested_Map_KeyValue(::_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 Expression_Nested_Map_KeyValue::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Nested_Map_KeyValue(arena);
}
constexpr auto Expression_Nested_Map_KeyValue::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Nested_Map_KeyValue), alignof(Expression_Nested_Map_KeyValue));
}
constexpr auto Expression_Nested_Map_KeyValue::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
          &Expression_Nested_Map_KeyValue::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Nested_Map_KeyValue>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Nested_Map_KeyValue::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Nested_Map_KeyValue>(), &Expression_Nested_Map_KeyValue::ByteSizeLong,
              &Expression_Nested_Map_KeyValue::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Nested_Map_KeyValue, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[66],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Nested_Map_KeyValueGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Nested_Map_KeyValueGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Nested_Map_KeyValue_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Nested_Map_KeyValue::InternalGenerateClassData_(
            _default, &Expression_Nested_Map_KeyValue_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Nested_Map_KeyValue>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Nested_Map_KeyValueGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Nested_Map_KeyValue _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Nested_Map_KeyValue>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Nested_Map_KeyValueGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Nested_Struct::ParseTableT_ Expression_Nested_Struct::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Nested_Struct, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_Nested_Struct>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression fields = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Nested_Struct, _impl_.fields_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression fields = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Nested_Struct, _impl_.fields_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_Nested_Struct::Expression_Nested_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 Expression_Nested_Struct::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Nested_Struct(arena);
}
constexpr auto Expression_Nested_Struct::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_Nested_Struct), alignof(Expression_Nested_Struct));
}
constexpr auto Expression_Nested_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
          &Expression_Nested_Struct::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Nested_Struct>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Nested_Struct::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Nested_Struct>(), &Expression_Nested_Struct::ByteSizeLong,
              &Expression_Nested_Struct::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Nested_Struct, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[68],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Nested_StructGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Nested_StructGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Nested_Struct_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Nested_Struct::InternalGenerateClassData_(
            _default, &Expression_Nested_Struct_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Nested_Struct>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Nested_StructGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Nested_Struct _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Nested_Struct>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Nested_StructGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_ScalarFunction::ParseTableT_ Expression_ScalarFunction::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_._has_bits_),
      0, // no _extensions_
      5, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967264,  // skipmap
      offsetof(ParseTableT_, field_entries),
      5,  // num_field_entries
      4,  // 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::Expression_ScalarFunction>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 function_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_ScalarFunction, _impl_.function_reference_), 4>(),
       {8, 4, 0,
        PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.function_reference_)}},
      // repeated .substrait.Expression args = 2 [deprecated = true];
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.args_)}},
      // .substrait.Type output_type = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 3, 1,
        PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.output_type_)}},
      // repeated .substrait.FunctionArgument arguments = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 1, 2,
        PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.arguments_)}},
      // repeated .substrait.FunctionOption options = 5;
      {::_pbi::TcParser::FastMtR1,
       {42, 2, 3,
        PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.options_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 function_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.function_reference_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // repeated .substrait.Expression args = 2 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.args_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type output_type = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.output_type_), _Internal::kHasBitsOffset + 3, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.FunctionArgument arguments = 4;
      {PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.arguments_), _Internal::kHasBitsOffset + 1, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.FunctionOption options = 5;
      {PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.options_), _Internal::kHasBitsOffset + 2, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::FunctionArgument>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::FunctionArgument_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::FunctionOption>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::FunctionOption_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_ScalarFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        args_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_ScalarFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.args_)>()
         }
        ,
        arguments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_ScalarFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.arguments_)>()
         }
        ,
        options_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_ScalarFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.options_)>()
         }
        ,
        output_type_{nullptr},
        function_reference_{0u} {}

template <typename>
constexpr Expression_ScalarFunction::Expression_ScalarFunction(::_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 Expression_ScalarFunction::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_ScalarFunction(arena);
}
constexpr auto Expression_ScalarFunction::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_ScalarFunction), alignof(Expression_ScalarFunction));
}
constexpr auto Expression_ScalarFunction::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
          &Expression_ScalarFunction::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_ScalarFunction>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_ScalarFunction::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_ScalarFunction>(), &Expression_ScalarFunction::ByteSizeLong,
              &Expression_ScalarFunction::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[71],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_ScalarFunctionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_ScalarFunctionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_ScalarFunction_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_ScalarFunction::InternalGenerateClassData_(
            _default, &Expression_ScalarFunction_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_ScalarFunction>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_ScalarFunctionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_ScalarFunction _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_ScalarFunction>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_ScalarFunctionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_SingularOrList::ParseTableT_ Expression_SingularOrList::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_SingularOrList, _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
      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::Expression_SingularOrList>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .substrait.Expression options = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 1,
        PROTOBUF_FIELD_OFFSET(Expression_SingularOrList, _impl_.options_)}},
      // .substrait.Expression value = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_SingularOrList, _impl_.value_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression value = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_SingularOrList, _impl_.value_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Expression options = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_SingularOrList, _impl_.options_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_SingularOrList::Expression_SingularOrList(::_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 Expression_SingularOrList::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_SingularOrList(arena);
}
constexpr auto Expression_SingularOrList::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_SingularOrList), alignof(Expression_SingularOrList));
}
constexpr auto Expression_SingularOrList::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
          &Expression_SingularOrList::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_SingularOrList>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_SingularOrList::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_SingularOrList>(), &Expression_SingularOrList::ByteSizeLong,
              &Expression_SingularOrList::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_SingularOrList, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[83],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_SingularOrListGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_SingularOrListGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_SingularOrList_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_SingularOrList::InternalGenerateClassData_(
            _default, &Expression_SingularOrList_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_SingularOrList>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_SingularOrListGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_SingularOrList _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_SingularOrList>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_SingularOrListGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Subquery::ParseTableT_ Expression_Subquery::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Subquery,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      4, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // 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::Expression_Subquery>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.Subquery.Scalar scalar = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery, _impl_.subquery_type_.scalar_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Subquery.InPredicate in_predicate = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery, _impl_.subquery_type_.in_predicate_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Subquery.SetPredicate set_predicate = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery, _impl_.subquery_type_.set_predicate_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.Subquery.SetComparison set_comparison = 4;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery, _impl_.subquery_type_.set_comparison_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Subquery_Scalar>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Subquery_Scalar_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Subquery_InPredicate>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Subquery_InPredicate_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Subquery_SetPredicate>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Subquery_SetPredicate_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Subquery_SetComparison>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Subquery_SetComparison_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_Subquery::Expression_Subquery(::_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 Expression_Subquery::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Subquery(arena);
}
constexpr auto Expression_Subquery::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Subquery), alignof(Expression_Subquery));
}
constexpr auto Expression_Subquery::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
          &Expression_Subquery::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Subquery>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Subquery::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Subquery>(), &Expression_Subquery::ByteSizeLong,
              &Expression_Subquery::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Subquery, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[111],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_SubqueryGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_SubqueryGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Subquery_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Subquery::InternalGenerateClassData_(
            _default, &Expression_Subquery_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Subquery>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_SubqueryGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Subquery _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Subquery>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_SubqueryGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Subquery_InPredicate::ParseTableT_ Expression_Subquery_InPredicate::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Subquery_InPredicate, _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
      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::Expression_Subquery_InPredicate>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Rel haystack = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_Subquery_InPredicate, _impl_.haystack_)}},
      // repeated .substrait.Expression needles = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Subquery_InPredicate, _impl_.needles_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression needles = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery_InPredicate, _impl_.needles_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel haystack = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery_InPredicate, _impl_.haystack_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_Subquery_InPredicate::Expression_Subquery_InPredicate(::_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 Expression_Subquery_InPredicate::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Subquery_InPredicate(arena);
}
constexpr auto Expression_Subquery_InPredicate::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_Subquery_InPredicate), alignof(Expression_Subquery_InPredicate));
}
constexpr auto Expression_Subquery_InPredicate::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
          &Expression_Subquery_InPredicate::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Subquery_InPredicate>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Subquery_InPredicate::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Subquery_InPredicate>(), &Expression_Subquery_InPredicate::ByteSizeLong,
              &Expression_Subquery_InPredicate::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Subquery_InPredicate, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[108],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Subquery_InPredicateGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Subquery_InPredicateGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Subquery_InPredicate_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Subquery_InPredicate::InternalGenerateClassData_(
            _default, &Expression_Subquery_InPredicate_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Subquery_InPredicate>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Subquery_InPredicateGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Subquery_InPredicate _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Subquery_InPredicate>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Subquery_InPredicateGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Subquery_Scalar::ParseTableT_ Expression_Subquery_Scalar::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Subquery_Scalar, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // 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::Expression_Subquery_Scalar>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Rel input = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Subquery_Scalar, _impl_.input_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Rel input = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery_Scalar, _impl_.input_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_Subquery_Scalar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        input_{nullptr} {}

template <typename>
constexpr Expression_Subquery_Scalar::Expression_Subquery_Scalar(::_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 Expression_Subquery_Scalar::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Subquery_Scalar(arena);
}
constexpr auto Expression_Subquery_Scalar::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Subquery_Scalar), alignof(Expression_Subquery_Scalar));
}
constexpr auto Expression_Subquery_Scalar::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
          &Expression_Subquery_Scalar::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Subquery_Scalar>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Subquery_Scalar::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Subquery_Scalar>(), &Expression_Subquery_Scalar::ByteSizeLong,
              &Expression_Subquery_Scalar::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Subquery_Scalar, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[107],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Subquery_ScalarGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Subquery_ScalarGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Subquery_Scalar_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Subquery_Scalar::InternalGenerateClassData_(
            _default, &Expression_Subquery_Scalar_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Subquery_Scalar>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Subquery_ScalarGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Subquery_Scalar _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Subquery_Scalar>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Subquery_ScalarGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Subquery_SetComparison::ParseTableT_ Expression_Subquery_SetComparison::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _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::Expression_Subquery_SetComparison>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Rel right = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _impl_.right_)}},
      // .substrait.Expression.Subquery.SetComparison.ReductionOp reduction_op = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Subquery_SetComparison, _impl_.reduction_op_), 2>(),
       {8, 2, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _impl_.reduction_op_)}},
      // .substrait.Expression.Subquery.SetComparison.ComparisonOp comparison_op = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Subquery_SetComparison, _impl_.comparison_op_), 3>(),
       {16, 3, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _impl_.comparison_op_)}},
      // .substrait.Expression left = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _impl_.left_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.Subquery.SetComparison.ReductionOp reduction_op = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _impl_.reduction_op_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.Expression.Subquery.SetComparison.ComparisonOp comparison_op = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _impl_.comparison_op_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.Expression left = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _impl_.left_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel right = 4;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _impl_.right_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_Subquery_SetComparison::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        left_{nullptr},
        right_{nullptr},
        reduction_op_{static_cast< ::substrait::Expression_Subquery_SetComparison_ReductionOp >(0)},
        comparison_op_{static_cast< ::substrait::Expression_Subquery_SetComparison_ComparisonOp >(0)} {}

template <typename>
constexpr Expression_Subquery_SetComparison::Expression_Subquery_SetComparison(::_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 Expression_Subquery_SetComparison::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Subquery_SetComparison(arena);
}
constexpr auto Expression_Subquery_SetComparison::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Subquery_SetComparison), alignof(Expression_Subquery_SetComparison));
}
constexpr auto Expression_Subquery_SetComparison::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
          &Expression_Subquery_SetComparison::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Subquery_SetComparison>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Subquery_SetComparison::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Subquery_SetComparison>(), &Expression_Subquery_SetComparison::ByteSizeLong,
              &Expression_Subquery_SetComparison::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[110],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Subquery_SetComparisonGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Subquery_SetComparisonGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Subquery_SetComparison_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Subquery_SetComparison::InternalGenerateClassData_(
            _default, &Expression_Subquery_SetComparison_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Subquery_SetComparison>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Subquery_SetComparisonGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Subquery_SetComparison _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Subquery_SetComparison>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparisonGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_Subquery_SetPredicate::ParseTableT_ Expression_Subquery_SetPredicate::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetPredicate, _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::Expression_Subquery_SetPredicate>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Rel tuples = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetPredicate, _impl_.tuples_)}},
      // .substrait.Expression.Subquery.SetPredicate.PredicateOp predicate_op = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_Subquery_SetPredicate, _impl_.predicate_op_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetPredicate, _impl_.predicate_op_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.Subquery.SetPredicate.PredicateOp predicate_op = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetPredicate, _impl_.predicate_op_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.Rel tuples = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetPredicate, _impl_.tuples_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_Subquery_SetPredicate::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        tuples_{nullptr},
        predicate_op_{static_cast< ::substrait::Expression_Subquery_SetPredicate_PredicateOp >(0)} {}

template <typename>
constexpr Expression_Subquery_SetPredicate::Expression_Subquery_SetPredicate(::_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 Expression_Subquery_SetPredicate::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_Subquery_SetPredicate(arena);
}
constexpr auto Expression_Subquery_SetPredicate::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_Subquery_SetPredicate), alignof(Expression_Subquery_SetPredicate));
}
constexpr auto Expression_Subquery_SetPredicate::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
          &Expression_Subquery_SetPredicate::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_Subquery_SetPredicate>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_Subquery_SetPredicate::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_Subquery_SetPredicate>(), &Expression_Subquery_SetPredicate::ByteSizeLong,
              &Expression_Subquery_SetPredicate::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetPredicate, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[109],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_Subquery_SetPredicateGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_Subquery_SetPredicateGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_Subquery_SetPredicate_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_Subquery_SetPredicate::InternalGenerateClassData_(
            _default, &Expression_Subquery_SetPredicate_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_Subquery_SetPredicate>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_Subquery_SetPredicateGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_Subquery_SetPredicate _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_Subquery_SetPredicate>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetPredicateGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_SwitchExpression::ParseTableT_ Expression_SwitchExpression::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression, _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
      3,  // 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::Expression_SwitchExpression>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .substrait.Expression.SwitchExpression.IfValue ifs = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression, _impl_.ifs_)}},
      // .substrait.Expression else = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression, _impl_.else__)}},
      // .substrait.Expression match = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression, _impl_.match_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression.SwitchExpression.IfValue ifs = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression, _impl_.ifs_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression else = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression, _impl_.else__), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression match = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression, _impl_.match_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_SwitchExpression_IfValue>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_SwitchExpression_IfValue_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Expression_SwitchExpression::Expression_SwitchExpression(::_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 Expression_SwitchExpression::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_SwitchExpression(arena);
}
constexpr auto Expression_SwitchExpression::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_SwitchExpression), alignof(Expression_SwitchExpression));
}
constexpr auto Expression_SwitchExpression::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
          &Expression_SwitchExpression::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_SwitchExpression>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_SwitchExpression::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_SwitchExpression>(), &Expression_SwitchExpression::ByteSizeLong,
              &Expression_SwitchExpression::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[82],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_SwitchExpressionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_SwitchExpressionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_SwitchExpression_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_SwitchExpression::InternalGenerateClassData_(
            _default, &Expression_SwitchExpression_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_SwitchExpression>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_SwitchExpressionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_SwitchExpression _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_SwitchExpression>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_SwitchExpressionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_SwitchExpression_IfValue::ParseTableT_ Expression_SwitchExpression_IfValue::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression_IfValue, _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
      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::Expression_SwitchExpression_IfValue>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression then = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression_IfValue, _impl_.then_)}},
      // .substrait.Expression.Literal if = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression_IfValue, _impl_.if__)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression.Literal if = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression_IfValue, _impl_.if__), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression then = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression_IfValue, _impl_.then_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_Literal>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_Literal_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_SwitchExpression_IfValue::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        if__{nullptr},
        then_{nullptr} {}

template <typename>
constexpr Expression_SwitchExpression_IfValue::Expression_SwitchExpression_IfValue(::_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 Expression_SwitchExpression_IfValue::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_SwitchExpression_IfValue(arena);
}
constexpr auto Expression_SwitchExpression_IfValue::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Expression_SwitchExpression_IfValue), alignof(Expression_SwitchExpression_IfValue));
}
constexpr auto Expression_SwitchExpression_IfValue::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
          &Expression_SwitchExpression_IfValue::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_SwitchExpression_IfValue>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_SwitchExpression_IfValue::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_SwitchExpression_IfValue>(), &Expression_SwitchExpression_IfValue::ByteSizeLong,
              &Expression_SwitchExpression_IfValue::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression_IfValue, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[81],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_SwitchExpression_IfValueGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_SwitchExpression_IfValueGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_SwitchExpression_IfValue_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_SwitchExpression_IfValue::InternalGenerateClassData_(
            _default, &Expression_SwitchExpression_IfValue_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_SwitchExpression_IfValue>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_SwitchExpression_IfValueGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_SwitchExpression_IfValue _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_SwitchExpression_IfValue>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression_IfValueGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_WindowFunction::ParseTableT_ Expression_WindowFunction::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_._has_bits_),
      0, // no _extensions_
      12, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294963200,  // skipmap
      offsetof(ParseTableT_, field_entries),
      12,  // num_field_entries
      8,  // 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::Expression_WindowFunction>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 function_reference = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_WindowFunction, _impl_.function_reference_), 8>(),
       {8, 8, 0,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.function_reference_)}},
      // repeated .substrait.Expression partitions = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.partitions_)}},
      // repeated .substrait.SortField sorts = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.sorts_)}},
      // .substrait.Expression.WindowFunction.Bound upper_bound = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 5, 2,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.upper_bound_)}},
      // .substrait.Expression.WindowFunction.Bound lower_bound = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 6, 3,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.lower_bound_)}},
      // .substrait.AggregationPhase phase = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_WindowFunction, _impl_.phase_), 9>(),
       {48, 9, 0,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.phase_)}},
      // .substrait.Type output_type = 7;
      {::_pbi::TcParser::FastMtS1,
       {58, 7, 4,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.output_type_)}},
      // repeated .substrait.Expression args = 8 [deprecated = true];
      {::_pbi::TcParser::FastMtR1,
       {66, 2, 5,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.args_)}},
      // repeated .substrait.FunctionArgument arguments = 9;
      {::_pbi::TcParser::FastMtR1,
       {74, 3, 6,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.arguments_)}},
      // .substrait.AggregateFunction.AggregationInvocation invocation = 10;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_WindowFunction, _impl_.invocation_), 10>(),
       {80, 10, 0,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.invocation_)}},
      // repeated .substrait.FunctionOption options = 11;
      {::_pbi::TcParser::FastMtR1,
       {90, 4, 7,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.options_)}},
      // .substrait.Expression.WindowFunction.BoundsType bounds_type = 12;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Expression_WindowFunction, _impl_.bounds_type_), 11>(),
       {96, 11, 0,
        PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.bounds_type_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 function_reference = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.function_reference_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // repeated .substrait.Expression partitions = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.partitions_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.SortField sorts = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.sorts_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.WindowFunction.Bound upper_bound = 4;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.upper_bound_), _Internal::kHasBitsOffset + 5, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.WindowFunction.Bound lower_bound = 5;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.lower_bound_), _Internal::kHasBitsOffset + 6, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.AggregationPhase phase = 6;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.phase_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.Type output_type = 7;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.output_type_), _Internal::kHasBitsOffset + 7, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Expression args = 8 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.args_), _Internal::kHasBitsOffset + 2, 5, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.FunctionArgument arguments = 9;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.arguments_), _Internal::kHasBitsOffset + 3, 6, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.AggregateFunction.AggregationInvocation invocation = 10;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.invocation_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // repeated .substrait.FunctionOption options = 11;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.options_), _Internal::kHasBitsOffset + 4, 7, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.WindowFunction.BoundsType bounds_type = 12;
      {PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.bounds_type_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::SortField>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::SortField_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_WindowFunction_Bound>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_WindowFunction_Bound_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_WindowFunction_Bound>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_WindowFunction_Bound_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::FunctionArgument>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::FunctionArgument_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::FunctionOption>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::FunctionOption_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_WindowFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        partitions_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_WindowFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.partitions_)>()
         }
        ,
        sorts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_WindowFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.sorts_)>()
         }
        ,
        args_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_WindowFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.args_)>()
         }
        ,
        arguments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_WindowFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.arguments_)>()
         }
        ,
        options_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_WindowFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.options_)>()
         }
        ,
        upper_bound_{nullptr},
        lower_bound_{nullptr},
        output_type_{nullptr},
        function_reference_{0u},
        phase_{static_cast< ::substrait::AggregationPhase >(0)},
        invocation_{static_cast< ::substrait::AggregateFunction_AggregationInvocation >(0)},
        bounds_type_{static_cast< ::substrait::Expression_WindowFunction_BoundsType >(0)} {}

template <typename>
constexpr Expression_WindowFunction::Expression_WindowFunction(::_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 Expression_WindowFunction::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_WindowFunction(arena);
}
constexpr auto Expression_WindowFunction::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_WindowFunction), alignof(Expression_WindowFunction));
}
constexpr auto Expression_WindowFunction::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
          &Expression_WindowFunction::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_WindowFunction>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_WindowFunction::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_WindowFunction>(), &Expression_WindowFunction::ByteSizeLong,
              &Expression_WindowFunction::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[77],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_WindowFunctionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_WindowFunctionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_WindowFunction_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_WindowFunction::InternalGenerateClassData_(
            _default, &Expression_WindowFunction_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_WindowFunctionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_WindowFunction _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_WindowFunction>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_WindowFunctionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExtensionMultiRel::ParseTableT_ ExtensionMultiRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExtensionMultiRel, _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
      3,  // 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::ExtensionMultiRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(ExtensionMultiRel, _impl_.common_)}},
      // repeated .substrait.Rel inputs = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 1,
        PROTOBUF_FIELD_OFFSET(ExtensionMultiRel, _impl_.inputs_)}},
      // .google.protobuf.Any detail = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(ExtensionMultiRel, _impl_.detail_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(ExtensionMultiRel, _impl_.common_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Rel inputs = 2;
      {PROTOBUF_FIELD_OFFSET(ExtensionMultiRel, _impl_.inputs_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .google.protobuf.Any detail = 3;
      {PROTOBUF_FIELD_OFFSET(ExtensionMultiRel, _impl_.detail_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr ExtensionMultiRel::ExtensionMultiRel(::_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 ExtensionMultiRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExtensionMultiRel(arena);
}
constexpr auto ExtensionMultiRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExtensionMultiRel), alignof(ExtensionMultiRel));
}
constexpr auto ExtensionMultiRel::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
          &ExtensionMultiRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExtensionMultiRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExtensionMultiRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExtensionMultiRel>(), &ExtensionMultiRel::ByteSizeLong,
              &ExtensionMultiRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExtensionMultiRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[30],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExtensionMultiRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExtensionMultiRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExtensionMultiRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExtensionMultiRel::InternalGenerateClassData_(
            _default, &ExtensionMultiRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExtensionMultiRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExtensionMultiRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExtensionMultiRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExtensionMultiRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExtensionMultiRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExtensionSingleRel::ParseTableT_ ExtensionSingleRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExtensionSingleRel, _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
      3,  // 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::ExtensionSingleRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExtensionSingleRel, _impl_.common_)}},
      // .substrait.Rel input = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(ExtensionSingleRel, _impl_.input_)}},
      // .google.protobuf.Any detail = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(ExtensionSingleRel, _impl_.detail_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(ExtensionSingleRel, _impl_.common_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel input = 2;
      {PROTOBUF_FIELD_OFFSET(ExtensionSingleRel, _impl_.input_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .google.protobuf.Any detail = 3;
      {PROTOBUF_FIELD_OFFSET(ExtensionSingleRel, _impl_.detail_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ExtensionSingleRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        common_{nullptr},
        input_{nullptr},
        detail_{nullptr} {}

template <typename>
constexpr ExtensionSingleRel::ExtensionSingleRel(::_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 ExtensionSingleRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExtensionSingleRel(arena);
}
constexpr auto ExtensionSingleRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ExtensionSingleRel), alignof(ExtensionSingleRel));
}
constexpr auto ExtensionSingleRel::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
          &ExtensionSingleRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExtensionSingleRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExtensionSingleRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExtensionSingleRel>(), &ExtensionSingleRel::ByteSizeLong,
              &ExtensionSingleRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExtensionSingleRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[28],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExtensionSingleRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExtensionSingleRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExtensionSingleRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExtensionSingleRel::InternalGenerateClassData_(
            _default, &ExtensionSingleRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExtensionSingleRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExtensionSingleRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExtensionSingleRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExtensionSingleRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExtensionSingleRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FetchRel::ParseTableT_ FetchRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FetchRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966768,  // skipmap
      offsetof(ParseTableT_, field_entries),
      5,  // num_field_entries
      3,  // 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::FetchRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // int64 count = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(FetchRel, _impl_.count_), 4>(),
       {32, 4, 0,
        PROTOBUF_FIELD_OFFSET(FetchRel, _impl_.count_)}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(FetchRel, _impl_.common_)}},
      // .substrait.Rel input = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(FetchRel, _impl_.input_)}},
      // int64 offset = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(FetchRel, _impl_.offset_), 3>(),
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(FetchRel, _impl_.offset_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(FetchRel, _impl_.common_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel input = 2;
      {PROTOBUF_FIELD_OFFSET(FetchRel, _impl_.input_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // int64 offset = 3;
      {PROTOBUF_FIELD_OFFSET(FetchRel, _impl_.offset_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // int64 count = 4;
      {PROTOBUF_FIELD_OFFSET(FetchRel, _impl_.count_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(FetchRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FetchRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        common_{nullptr},
        input_{nullptr},
        advanced_extension_{nullptr},
        offset_{::int64_t{0}},
        count_{::int64_t{0}} {}

template <typename>
constexpr FetchRel::FetchRel(::_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 FetchRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FetchRel(arena);
}
constexpr auto FetchRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(FetchRel), alignof(FetchRel));
}
constexpr auto FetchRel::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
          &FetchRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FetchRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FetchRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FetchRel>(), &FetchRel::ByteSizeLong,
              &FetchRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FetchRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[19],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct FetchRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FetchRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FetchRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FetchRel::InternalGenerateClassData_(
            _default, &FetchRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FetchRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FetchRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FetchRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FetchRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FetchRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FilterRel::ParseTableT_ FilterRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FilterRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966776,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // 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::FilterRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(FilterRel, _impl_.common_)}},
      // .substrait.Rel input = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(FilterRel, _impl_.input_)}},
      // .substrait.Expression condition = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(FilterRel, _impl_.condition_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(FilterRel, _impl_.common_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel input = 2;
      {PROTOBUF_FIELD_OFFSET(FilterRel, _impl_.input_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression condition = 3;
      {PROTOBUF_FIELD_OFFSET(FilterRel, _impl_.condition_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(FilterRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FilterRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        common_{nullptr},
        input_{nullptr},
        condition_{nullptr},
        advanced_extension_{nullptr} {}

template <typename>
constexpr FilterRel::FilterRel(::_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 FilterRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FilterRel(arena);
}
constexpr auto FilterRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(FilterRel), alignof(FilterRel));
}
constexpr auto FilterRel::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
          &FilterRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FilterRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FilterRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FilterRel>(), &FilterRel::ByteSizeLong,
              &FilterRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FilterRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[26],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct FilterRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FilterRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FilterRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FilterRel::InternalGenerateClassData_(
            _default, &FilterRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FilterRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FilterRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FilterRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FilterRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FilterRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FunctionArgument::ParseTableT_ FunctionArgument::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FunctionArgument,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      3, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // 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::FunctionArgument>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // string enum = 1;
      {PROTOBUF_FIELD_OFFSET(FunctionArgument, _impl_.arg_type_.enum__), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .substrait.Type type = 2;
      {PROTOBUF_FIELD_OFFSET(FunctionArgument, _impl_.arg_type_.type_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression value = 3;
      {PROTOBUF_FIELD_OFFSET(FunctionArgument, _impl_.arg_type_.value_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
      "\32\4\0\0\0\0\0\0"
      "substrait.FunctionArgument"
      "enum"
    }},
  };
}


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

template <typename>
constexpr FunctionArgument::FunctionArgument(::_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 FunctionArgument::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FunctionArgument(arena);
}
constexpr auto FunctionArgument::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(FunctionArgument), alignof(FunctionArgument));
}
constexpr auto FunctionArgument::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
          &FunctionArgument::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FunctionArgument>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FunctionArgument::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FunctionArgument>(), &FunctionArgument::ByteSizeLong,
              &FunctionArgument::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FunctionArgument, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[52],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct FunctionArgumentGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FunctionArgumentGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FunctionArgument_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FunctionArgument::InternalGenerateClassData_(
            _default, &FunctionArgument_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FunctionArgument>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FunctionArgumentGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FunctionArgument _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FunctionArgument>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FunctionArgumentGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr HashJoinRel::ParseTableT_ HashJoinRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966528,  // skipmap
      offsetof(ParseTableT_, field_entries),
      9,  // num_field_entries
      8,  // 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::HashJoinRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 3, 0,
        PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.common_)}},
      // .substrait.Rel left = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 4, 1,
        PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.left_)}},
      // .substrait.Rel right = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 5, 2,
        PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.right_)}},
      // repeated .substrait.Expression.FieldReference left_keys = 4 [deprecated = true];
      {::_pbi::TcParser::FastMtR1,
       {34, 0, 3,
        PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.left_keys_)}},
      // repeated .substrait.Expression.FieldReference right_keys = 5 [deprecated = true];
      {::_pbi::TcParser::FastMtR1,
       {42, 1, 4,
        PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.right_keys_)}},
      // .substrait.Expression post_join_filter = 6;
      {::_pbi::TcParser::FastMtS1,
       {50, 6, 5,
        PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.post_join_filter_)}},
      // .substrait.HashJoinRel.JoinType type = 7;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(HashJoinRel, _impl_.type_), 8>(),
       {56, 8, 0,
        PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.type_)}},
      // repeated .substrait.ComparisonJoinKey keys = 8;
      {::_pbi::TcParser::FastMtR1,
       {66, 2, 6,
        PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.keys_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {::_pbi::TcParser::FastMtS1,
       {82, 7, 7,
        PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.advanced_extension_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.common_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel left = 2;
      {PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.left_), _Internal::kHasBitsOffset + 4, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel right = 3;
      {PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.right_), _Internal::kHasBitsOffset + 5, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Expression.FieldReference left_keys = 4 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.left_keys_), _Internal::kHasBitsOffset + 0, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Expression.FieldReference right_keys = 5 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.right_keys_), _Internal::kHasBitsOffset + 1, 4, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression post_join_filter = 6;
      {PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.post_join_filter_), _Internal::kHasBitsOffset + 6, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.HashJoinRel.JoinType type = 7;
      {PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.type_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // repeated .substrait.ComparisonJoinKey keys = 8;
      {PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.keys_), _Internal::kHasBitsOffset + 2, 6, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 7, 7, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_FieldReference>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_FieldReference_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_FieldReference>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_FieldReference_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ComparisonJoinKey>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ComparisonJoinKey_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr HashJoinRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        left_keys_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::HashJoinRel,
            PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.left_keys_)>()
         }
        ,
        right_keys_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::HashJoinRel,
            PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.right_keys_)>()
         }
        ,
        keys_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::HashJoinRel,
            PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.keys_)>()
         }
        ,
        common_{nullptr},
        left_{nullptr},
        right_{nullptr},
        post_join_filter_{nullptr},
        advanced_extension_{nullptr},
        type_{static_cast< ::substrait::HashJoinRel_JoinType >(0)} {}

template <typename>
constexpr HashJoinRel::HashJoinRel(::_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 HashJoinRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HashJoinRel(arena);
}
constexpr auto HashJoinRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HashJoinRel), alignof(HashJoinRel));
}
constexpr auto HashJoinRel::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
          &HashJoinRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<HashJoinRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HashJoinRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<HashJoinRel>(), &HashJoinRel::ByteSizeLong,
              &HashJoinRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[49],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct HashJoinRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HashJoinRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 HashJoinRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(HashJoinRel::InternalGenerateClassData_(
            _default, &HashJoinRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<HashJoinRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HashJoinRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) HashJoinRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<HashJoinRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HashJoinRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr JoinRel::ParseTableT_ JoinRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(JoinRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966720,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      6,  // 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::JoinRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.common_)}},
      // .substrait.Rel left = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.left_)}},
      // .substrait.Rel right = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.right_)}},
      // .substrait.Expression expression = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 3, 3,
        PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.expression_)}},
      // .substrait.Expression post_join_filter = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 4, 4,
        PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.post_join_filter_)}},
      // .substrait.JoinRel.JoinType type = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(JoinRel, _impl_.type_), 6>(),
       {48, 6, 0,
        PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.type_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.common_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel left = 2;
      {PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.left_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel right = 3;
      {PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.right_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression expression = 4;
      {PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.expression_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression post_join_filter = 5;
      {PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.post_join_filter_), _Internal::kHasBitsOffset + 4, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.JoinRel.JoinType type = 6;
      {PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.type_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 5, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr JoinRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        common_{nullptr},
        left_{nullptr},
        right_{nullptr},
        expression_{nullptr},
        post_join_filter_{nullptr},
        advanced_extension_{nullptr},
        type_{static_cast< ::substrait::JoinRel_JoinType >(0)} {}

template <typename>
constexpr JoinRel::JoinRel(::_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 JoinRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) JoinRel(arena);
}
constexpr auto JoinRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(JoinRel), alignof(JoinRel));
}
constexpr auto JoinRel::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
          &JoinRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<JoinRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &JoinRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<JoinRel>(), &JoinRel::ByteSizeLong,
              &JoinRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(JoinRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[17],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct JoinRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr JoinRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 JoinRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(JoinRel::InternalGenerateClassData_(
            _default, &JoinRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<JoinRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~JoinRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) JoinRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<JoinRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(JoinRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MergeJoinRel::ParseTableT_ MergeJoinRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966528,  // skipmap
      offsetof(ParseTableT_, field_entries),
      9,  // num_field_entries
      8,  // 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::MergeJoinRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 3, 0,
        PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.common_)}},
      // .substrait.Rel left = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 4, 1,
        PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.left_)}},
      // .substrait.Rel right = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 5, 2,
        PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.right_)}},
      // repeated .substrait.Expression.FieldReference left_keys = 4 [deprecated = true];
      {::_pbi::TcParser::FastMtR1,
       {34, 0, 3,
        PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.left_keys_)}},
      // repeated .substrait.Expression.FieldReference right_keys = 5 [deprecated = true];
      {::_pbi::TcParser::FastMtR1,
       {42, 1, 4,
        PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.right_keys_)}},
      // .substrait.Expression post_join_filter = 6;
      {::_pbi::TcParser::FastMtS1,
       {50, 6, 5,
        PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.post_join_filter_)}},
      // .substrait.MergeJoinRel.JoinType type = 7;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MergeJoinRel, _impl_.type_), 8>(),
       {56, 8, 0,
        PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.type_)}},
      // repeated .substrait.ComparisonJoinKey keys = 8;
      {::_pbi::TcParser::FastMtR1,
       {66, 2, 6,
        PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.keys_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {::_pbi::TcParser::FastMtS1,
       {82, 7, 7,
        PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.advanced_extension_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.common_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel left = 2;
      {PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.left_), _Internal::kHasBitsOffset + 4, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel right = 3;
      {PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.right_), _Internal::kHasBitsOffset + 5, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Expression.FieldReference left_keys = 4 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.left_keys_), _Internal::kHasBitsOffset + 0, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Expression.FieldReference right_keys = 5 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.right_keys_), _Internal::kHasBitsOffset + 1, 4, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression post_join_filter = 6;
      {PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.post_join_filter_), _Internal::kHasBitsOffset + 6, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.MergeJoinRel.JoinType type = 7;
      {PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.type_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // repeated .substrait.ComparisonJoinKey keys = 8;
      {PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.keys_), _Internal::kHasBitsOffset + 2, 6, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 7, 7, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_FieldReference>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_FieldReference_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_FieldReference>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_FieldReference_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ComparisonJoinKey>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ComparisonJoinKey_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr MergeJoinRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        left_keys_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::MergeJoinRel,
            PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.left_keys_)>()
         }
        ,
        right_keys_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::MergeJoinRel,
            PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.right_keys_)>()
         }
        ,
        keys_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::MergeJoinRel,
            PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.keys_)>()
         }
        ,
        common_{nullptr},
        left_{nullptr},
        right_{nullptr},
        post_join_filter_{nullptr},
        advanced_extension_{nullptr},
        type_{static_cast< ::substrait::MergeJoinRel_JoinType >(0)} {}

template <typename>
constexpr MergeJoinRel::MergeJoinRel(::_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 MergeJoinRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MergeJoinRel(arena);
}
constexpr auto MergeJoinRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MergeJoinRel), alignof(MergeJoinRel));
}
constexpr auto MergeJoinRel::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
          &MergeJoinRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MergeJoinRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MergeJoinRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MergeJoinRel>(), &MergeJoinRel::ByteSizeLong,
              &MergeJoinRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[50],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MergeJoinRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MergeJoinRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MergeJoinRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MergeJoinRel::InternalGenerateClassData_(
            _default, &MergeJoinRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MergeJoinRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MergeJoinRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MergeJoinRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MergeJoinRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MergeJoinRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr NestedLoopJoinRel::ParseTableT_ NestedLoopJoinRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966752,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      5,  // 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::NestedLoopJoinRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.common_)}},
      // .substrait.Rel left = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.left_)}},
      // .substrait.Rel right = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.right_)}},
      // .substrait.Expression expression = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 3, 3,
        PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.expression_)}},
      // .substrait.NestedLoopJoinRel.JoinType type = 5;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NestedLoopJoinRel, _impl_.type_), 5>(),
       {40, 5, 0,
        PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.type_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.common_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel left = 2;
      {PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.left_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel right = 3;
      {PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.right_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression expression = 4;
      {PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.expression_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.NestedLoopJoinRel.JoinType type = 5;
      {PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.type_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 4, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr NestedLoopJoinRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        common_{nullptr},
        left_{nullptr},
        right_{nullptr},
        expression_{nullptr},
        advanced_extension_{nullptr},
        type_{static_cast< ::substrait::NestedLoopJoinRel_JoinType >(0)} {}

template <typename>
constexpr NestedLoopJoinRel::NestedLoopJoinRel(::_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 NestedLoopJoinRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NestedLoopJoinRel(arena);
}
constexpr auto NestedLoopJoinRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(NestedLoopJoinRel), alignof(NestedLoopJoinRel));
}
constexpr auto NestedLoopJoinRel::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
          &NestedLoopJoinRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NestedLoopJoinRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NestedLoopJoinRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NestedLoopJoinRel>(), &NestedLoopJoinRel::ByteSizeLong,
              &NestedLoopJoinRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[51],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct NestedLoopJoinRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr NestedLoopJoinRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 NestedLoopJoinRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(NestedLoopJoinRel::InternalGenerateClassData_(
            _default, &NestedLoopJoinRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<NestedLoopJoinRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~NestedLoopJoinRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) NestedLoopJoinRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<NestedLoopJoinRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(NestedLoopJoinRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ProjectRel::ParseTableT_ ProjectRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966776,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // 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::ProjectRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_.common_)}},
      // .substrait.Rel input = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 2, 1,
        PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_.input_)}},
      // repeated .substrait.Expression expressions = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 0, 2,
        PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_.expressions_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_.common_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel input = 2;
      {PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_.input_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Expression expressions = 3;
      {PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_.expressions_), _Internal::kHasBitsOffset + 0, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ProjectRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        expressions_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::ProjectRel,
            PROTOBUF_FIELD_OFFSET(::substrait::ProjectRel, _impl_.expressions_)>()
         }
        ,
        common_{nullptr},
        input_{nullptr},
        advanced_extension_{nullptr} {}

template <typename>
constexpr ProjectRel::ProjectRel(::_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 ProjectRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ProjectRel(arena);
}
constexpr auto ProjectRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ProjectRel), alignof(ProjectRel));
}
constexpr auto ProjectRel::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
          &ProjectRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ProjectRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ProjectRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ProjectRel>(), &ProjectRel::ByteSizeLong,
              &ProjectRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[16],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ProjectRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ProjectRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ProjectRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ProjectRel::InternalGenerateClassData_(
            _default, &ProjectRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ProjectRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ProjectRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ProjectRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ProjectRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ProjectRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ReadRel::ParseTableT_ ReadRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReadRel, _impl_._has_bits_),
      0, // no _extensions_
      11, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294965504,  // skipmap
      offsetof(ParseTableT_, field_entries),
      10,  // num_field_entries
      10,  // 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::ReadRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.common_)}},
      // .substrait.NamedStruct base_schema = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.base_schema_)}},
      // .substrait.Expression filter = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.filter_)}},
      // .substrait.Expression.MaskExpression projection = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 3, 3,
        PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.projection_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {::_pbi::TcParser::FastMtS1,
       {82, 4, 8,
        PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.advanced_extension_)}},
      // .substrait.Expression best_effort_filter = 11;
      {::_pbi::TcParser::FastMtS1,
       {90, 5, 9,
        PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.best_effort_filter_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.common_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.NamedStruct base_schema = 2;
      {PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.base_schema_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression filter = 3;
      {PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.filter_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.MaskExpression projection = 4;
      {PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.projection_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ReadRel.VirtualTable virtual_table = 5;
      {PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.read_type_.virtual_table_), _Internal::kOneofCaseOffset + 0, 4, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ReadRel.LocalFiles local_files = 6;
      {PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.read_type_.local_files_), _Internal::kOneofCaseOffset + 0, 5, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ReadRel.NamedTable named_table = 7;
      {PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.read_type_.named_table_), _Internal::kOneofCaseOffset + 0, 6, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ReadRel.ExtensionTable extension_table = 8;
      {PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.read_type_.extension_table_), _Internal::kOneofCaseOffset + 0, 7, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 4, 8, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression best_effort_filter = 11;
      {PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.best_effort_filter_), _Internal::kHasBitsOffset + 5, 9, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::NamedStruct>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::NamedStruct_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_MaskExpression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_MaskExpression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReadRel_VirtualTable>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReadRel_VirtualTable_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReadRel_LocalFiles>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReadRel_LocalFiles_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReadRel_NamedTable>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReadRel_NamedTable_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReadRel_ExtensionTable>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReadRel_ExtensionTable_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ReadRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        common_{nullptr},
        base_schema_{nullptr},
        filter_{nullptr},
        projection_{nullptr},
        advanced_extension_{nullptr},
        best_effort_filter_{nullptr},
        read_type_{},
        _oneof_case_{} {}

template <typename>
constexpr ReadRel::ReadRel(::_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 ReadRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReadRel(arena);
}
constexpr auto ReadRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ReadRel), alignof(ReadRel));
}
constexpr auto ReadRel::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
          &ReadRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ReadRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReadRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ReadRel>(), &ReadRel::ByteSizeLong,
              &ReadRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReadRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[15],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ReadRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReadRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReadRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReadRel::InternalGenerateClassData_(
            _default, &ReadRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReadRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReadRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReadRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReadRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReadRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Rel::ParseTableT_ Rel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Rel,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      21, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4292870144,  // skipmap
      offsetof(ParseTableT_, field_entries),
      21,  // num_field_entries
      21,  // 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::Rel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.ReadRel read = 1;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.read_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.FilterRel filter = 2;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.filter_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.FetchRel fetch = 3;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.fetch_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.AggregateRel aggregate = 4;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.aggregate_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.SortRel sort = 5;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.sort_), _Internal::kOneofCaseOffset + 0, 4, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.JoinRel join = 6;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.join_), _Internal::kOneofCaseOffset + 0, 5, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ProjectRel project = 7;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.project_), _Internal::kOneofCaseOffset + 0, 6, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.SetRel set = 8;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.set_), _Internal::kOneofCaseOffset + 0, 7, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExtensionSingleRel extension_single = 9;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.extension_single_), _Internal::kOneofCaseOffset + 0, 8, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExtensionMultiRel extension_multi = 10;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.extension_multi_), _Internal::kOneofCaseOffset + 0, 9, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExtensionLeafRel extension_leaf = 11;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.extension_leaf_), _Internal::kOneofCaseOffset + 0, 10, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.CrossRel cross = 12;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.cross_), _Internal::kOneofCaseOffset + 0, 11, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.HashJoinRel hash_join = 13;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.hash_join_), _Internal::kOneofCaseOffset + 0, 12, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.MergeJoinRel merge_join = 14;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.merge_join_), _Internal::kOneofCaseOffset + 0, 13, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExchangeRel exchange = 15;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.exchange_), _Internal::kOneofCaseOffset + 0, 14, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExpandRel expand = 16;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.expand_), _Internal::kOneofCaseOffset + 0, 15, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ConsistentPartitionWindowRel window = 17;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.window_), _Internal::kOneofCaseOffset + 0, 16, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.NestedLoopJoinRel nested_loop_join = 18;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.nested_loop_join_), _Internal::kOneofCaseOffset + 0, 17, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.WriteRel write = 19;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.write_), _Internal::kOneofCaseOffset + 0, 18, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.DdlRel ddl = 20;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.ddl_), _Internal::kOneofCaseOffset + 0, 19, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ReferenceRel reference = 21;
      {PROTOBUF_FIELD_OFFSET(Rel, _impl_.rel_type_.reference_), _Internal::kOneofCaseOffset + 0, 20, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReadRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReadRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::FilterRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::FilterRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::FetchRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::FetchRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::AggregateRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::AggregateRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::SortRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::SortRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::JoinRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::JoinRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ProjectRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ProjectRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::SetRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::SetRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExtensionSingleRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExtensionSingleRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExtensionMultiRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExtensionMultiRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExtensionLeafRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExtensionLeafRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::CrossRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::CrossRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::HashJoinRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::HashJoinRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::MergeJoinRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::MergeJoinRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExchangeRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExchangeRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExpandRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExpandRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ConsistentPartitionWindowRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ConsistentPartitionWindowRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::NestedLoopJoinRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::NestedLoopJoinRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::WriteRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::WriteRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::DdlRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::DdlRel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ReferenceRel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ReferenceRel_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr Rel::Rel(::_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 Rel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Rel(arena);
}
constexpr auto Rel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Rel), alignof(Rel));
}
constexpr auto Rel::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
          &Rel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Rel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Rel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Rel>(), &Rel::ByteSizeLong,
              &Rel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Rel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[42],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Rel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Rel::InternalGenerateClassData_(
            _default, &Rel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Rel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Rel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Rel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SetRel::ParseTableT_ SetRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SetRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966776,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      3,  // 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::SetRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(SetRel, _impl_.common_)}},
      // repeated .substrait.Rel inputs = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 1,
        PROTOBUF_FIELD_OFFSET(SetRel, _impl_.inputs_)}},
      // .substrait.SetRel.SetOp op = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SetRel, _impl_.op_), 3>(),
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(SetRel, _impl_.op_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(SetRel, _impl_.common_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.Rel inputs = 2;
      {PROTOBUF_FIELD_OFFSET(SetRel, _impl_.inputs_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.SetRel.SetOp op = 3;
      {PROTOBUF_FIELD_OFFSET(SetRel, _impl_.op_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(SetRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SetRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        inputs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::SetRel,
            PROTOBUF_FIELD_OFFSET(::substrait::SetRel, _impl_.inputs_)>()
         }
        ,
        common_{nullptr},
        advanced_extension_{nullptr},
        op_{static_cast< ::substrait::SetRel_SetOp >(0)} {}

template <typename>
constexpr SetRel::SetRel(::_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 SetRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SetRel(arena);
}
constexpr auto SetRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SetRel), alignof(SetRel));
}
constexpr auto SetRel::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
          &SetRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SetRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SetRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SetRel>(), &SetRel::ByteSizeLong,
              &SetRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SetRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[27],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SetRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SetRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SetRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SetRel::InternalGenerateClassData_(
            _default, &SetRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SetRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SetRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SetRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SetRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SetRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SortField::ParseTableT_ SortField::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SortField, _impl_._has_bits_),
      0, // no _extensions_
      3, 0,  // 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::SortField>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Expression expr = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(SortField, _impl_.expr_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Expression expr = 1;
      {PROTOBUF_FIELD_OFFSET(SortField, _impl_.expr_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.SortField.SortDirection direction = 2;
      {PROTOBUF_FIELD_OFFSET(SortField, _impl_.sort_kind_.direction_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kOpenEnum)},
      // uint32 comparison_function_reference = 3;
      {PROTOBUF_FIELD_OFFSET(SortField, _impl_.sort_kind_.comparison_function_reference_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SortField::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        expr_{nullptr},
        sort_kind_{},
        _oneof_case_{} {}

template <typename>
constexpr SortField::SortField(::_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 SortField::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SortField(arena);
}
constexpr auto SortField::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SortField), alignof(SortField));
}
constexpr auto SortField::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
          &SortField::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SortField>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SortField::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SortField>(), &SortField::ByteSizeLong,
              &SortField::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SortField, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[113],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SortFieldGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SortFieldGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SortField_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SortField::InternalGenerateClassData_(
            _default, &SortField_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SortField>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SortFieldGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SortField _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SortField>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SortFieldGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SortRel::ParseTableT_ SortRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SortRel, _impl_._has_bits_),
      0, // no _extensions_
      10, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966776,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // 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::SortRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.RelCommon common = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(SortRel, _impl_.common_)}},
      // .substrait.Rel input = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 2, 1,
        PROTOBUF_FIELD_OFFSET(SortRel, _impl_.input_)}},
      // repeated .substrait.SortField sorts = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 0, 2,
        PROTOBUF_FIELD_OFFSET(SortRel, _impl_.sorts_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.RelCommon common = 1;
      {PROTOBUF_FIELD_OFFSET(SortRel, _impl_.common_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Rel input = 2;
      {PROTOBUF_FIELD_OFFSET(SortRel, _impl_.input_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .substrait.SortField sorts = 3;
      {PROTOBUF_FIELD_OFFSET(SortRel, _impl_.sorts_), _Internal::kHasBitsOffset + 0, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.extensions.AdvancedExtension advanced_extension = 10;
      {PROTOBUF_FIELD_OFFSET(SortRel, _impl_.advanced_extension_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::SortField>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::SortField_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::extensions::AdvancedExtension>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::extensions::AdvancedExtension_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SortRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sorts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::SortRel,
            PROTOBUF_FIELD_OFFSET(::substrait::SortRel, _impl_.sorts_)>()
         }
        ,
        common_{nullptr},
        input_{nullptr},
        advanced_extension_{nullptr} {}

template <typename>
constexpr SortRel::SortRel(::_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 SortRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SortRel(arena);
}
constexpr auto SortRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SortRel), alignof(SortRel));
}
constexpr auto SortRel::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
          &SortRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SortRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SortRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SortRel>(), &SortRel::ByteSizeLong,
              &SortRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SortRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[25],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SortRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SortRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SortRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SortRel::InternalGenerateClassData_(
            _default, &SortRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SortRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SortRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SortRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SortRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SortRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr WriteRel::ParseTableT_ WriteRel::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(WriteRel, _impl_._has_bits_),
      0, // no _extensions_
      7, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967168,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      5,  // 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::WriteRel>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // .substrait.NamedStruct table_schema = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 0, 2,
        PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.table_schema_)}},
      // .substrait.WriteRel.WriteOp op = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(WriteRel, _impl_.op_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.op_)}},
      // .substrait.Rel input = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 1, 3,
        PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.input_)}},
      // .substrait.WriteRel.OutputMode output = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(WriteRel, _impl_.output_), 4>(),
       {48, 4, 0,
        PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.output_)}},
      // .substrait.RelCommon common = 7;
      {::_pbi::TcParser::FastMtS1,
       {58, 2, 4,
        PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.common_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.NamedObjectWrite named_table = 1;
      {PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.write_type_.named_table_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.ExtensionObject extension_table = 2;
      {PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.write_type_.extension_table_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.NamedStruct table_schema = 3;
      {PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.table_schema_), _Internal::kHasBitsOffset + 0, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.WriteRel.WriteOp op = 4;
      {PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.op_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.Rel input = 5;
      {PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.input_), _Internal::kHasBitsOffset + 1, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.WriteRel.OutputMode output = 6;
      {PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.output_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .substrait.RelCommon common = 7;
      {PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.common_), _Internal::kHasBitsOffset + 2, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::NamedObjectWrite>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::NamedObjectWrite_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::ExtensionObject>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::ExtensionObject_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::NamedStruct>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::NamedStruct_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::RelCommon>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::RelCommon_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr WriteRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        table_schema_{nullptr},
        input_{nullptr},
        common_{nullptr},
        op_{static_cast< ::substrait::WriteRel_WriteOp >(0)},
        output_{static_cast< ::substrait::WriteRel_OutputMode >(0)},
        write_type_{},
        _oneof_case_{} {}

template <typename>
constexpr WriteRel::WriteRel(::_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 WriteRel::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) WriteRel(arena);
}
constexpr auto WriteRel::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(WriteRel), alignof(WriteRel));
}
constexpr auto WriteRel::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
          &WriteRel::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<WriteRel>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &WriteRel::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<WriteRel>(), &WriteRel::ByteSizeLong,
              &WriteRel::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(WriteRel, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[46],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct WriteRelGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr WriteRelGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 WriteRel_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(WriteRel::InternalGenerateClassData_(
            _default, &WriteRel_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<WriteRel>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~WriteRelGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) WriteRel _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<WriteRel>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(WriteRelGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RelRoot::ParseTableT_ RelRoot::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RelRoot, _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::RelRoot>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated string names = 2;
      {::_pbi::TcParser::FastUR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(RelRoot, _impl_.names_)}},
      // .substrait.Rel input = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(RelRoot, _impl_.input_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .substrait.Rel input = 1;
      {PROTOBUF_FIELD_OFFSET(RelRoot, _impl_.input_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated string names = 2;
      {PROTOBUF_FIELD_OFFSET(RelRoot, _impl_.names_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Rel>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Rel_globals_},
        #endif
    }},
    {{
      "\21\0\5\0\0\0\0\0"
      "substrait.RelRoot"
      "names"
    }},
  };
}


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

template <typename>
constexpr RelRoot::RelRoot(::_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 RelRoot::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RelRoot(arena);
}
constexpr auto RelRoot::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(RelRoot), alignof(RelRoot));
}
constexpr auto RelRoot::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
          &RelRoot::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RelRoot>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RelRoot::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RelRoot>(), &RelRoot::ByteSizeLong,
              &RelRoot::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RelRoot, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[41],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RelRootGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RelRootGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RelRoot_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RelRoot::InternalGenerateClassData_(
            _default, &RelRoot_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RelRoot>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RelRootGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RelRoot _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RelRoot>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RelRootGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Expression_EmbeddedFunction::ParseTableT_ Expression_EmbeddedFunction::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction, _impl_._has_bits_),
      0, // no _extensions_
      4, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // 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::Expression_EmbeddedFunction>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .substrait.Type output_type = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction, _impl_.output_type_)}},
      // repeated .substrait.Expression arguments = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction, _impl_.arguments_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .substrait.Expression arguments = 1;
      {PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction, _impl_.arguments_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Type output_type = 2;
      {PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction, _impl_.output_type_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.EmbeddedFunction.PythonPickleFunction python_pickle_function = 3;
      {PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction, _impl_.kind_.python_pickle_function_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .substrait.Expression.EmbeddedFunction.WebAssemblyFunction web_assembly_function = 4;
      {PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction, _impl_.kind_.web_assembly_function_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Type>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Type_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_EmbeddedFunction_PythonPickleFunction>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_EmbeddedFunction_PythonPickleFunction_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::substrait::Expression_EmbeddedFunction_WebAssemblyFunction>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::substrait::Expression_EmbeddedFunction_WebAssemblyFunction_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Expression_EmbeddedFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        arguments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_EmbeddedFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction, _impl_.arguments_)>()
         }
        ,
        output_type_{nullptr},
        kind_{},
        _oneof_case_{} {}

template <typename>
constexpr Expression_EmbeddedFunction::Expression_EmbeddedFunction(::_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 Expression_EmbeddedFunction::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Expression_EmbeddedFunction(arena);
}
constexpr auto Expression_EmbeddedFunction::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Expression_EmbeddedFunction), alignof(Expression_EmbeddedFunction));
}
constexpr auto Expression_EmbeddedFunction::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
          &Expression_EmbeddedFunction::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Expression_EmbeddedFunction>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Expression_EmbeddedFunction::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Expression_EmbeddedFunction>(), &Expression_EmbeddedFunction::ByteSizeLong,
              &Expression_EmbeddedFunction::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunction, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[88],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_substrait_2falgebra_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct Expression_EmbeddedFunctionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr Expression_EmbeddedFunctionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Expression_EmbeddedFunction_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Expression_EmbeddedFunction::InternalGenerateClassData_(
            _default, &Expression_EmbeddedFunction_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Expression_EmbeddedFunction>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~Expression_EmbeddedFunctionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Expression_EmbeddedFunction _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Expression_EmbeddedFunction>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(Expression_EmbeddedFunctionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST Expression_EmbeddedFunctionGlobalsTypeInternal Expression_EmbeddedFunction_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Expression_EmbeddedFunction_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Expression_EmbeddedFunction_globals_.GetClassData();
#else
  return Expression_EmbeddedFunction_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_2falgebra_2eproto[18];
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_service_descriptors_substrait_2falgebra_2eproto = nullptr;
const ::uint32_t
    TableStruct_substrait_2falgebra_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x000, // bitmap
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Emit, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Emit, _impl_.output_mapping_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Hint_Stats, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Hint_Stats, _impl_.row_count_),
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Hint_Stats, _impl_.record_size_),
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Hint_Stats, _impl_.advanced_extension_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Hint_RuntimeConstraint, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Hint_RuntimeConstraint, _impl_.advanced_extension_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Hint, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Hint, _impl_.stats_),
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Hint, _impl_.constraint_),
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon_Hint, _impl_.advanced_extension_),
        0,
        1,
        2,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon, _impl_._oneof_case_[0]),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon, _impl_.emit_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon, _impl_.emit_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon, _impl_.hint_),
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon, _impl_.advanced_extension_),
        PROTOBUF_FIELD_OFFSET(::substrait::RelCommon, _impl_.emit_kind_),
        ~0u,
        ~0u,
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_NamedTable, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_NamedTable, _impl_.names_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_NamedTable, _impl_.advanced_extension_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_VirtualTable, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_VirtualTable, _impl_.values_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_ExtensionTable, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_ExtensionTable, _impl_.detail_),
        0,
        0x000, // bitmap
        0x000, // bitmap
        0x000, // bitmap
        0x000, // bitmap
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_._oneof_case_[0]),
        18, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.path_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.path_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.path_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.path_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.partition_index_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.start_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.length_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.path_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles_FileOrFiles, _impl_.file_format_),
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        0,
        1,
        2,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles, _impl_.items_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles, _impl_.advanced_extension_),
        0,
        1,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_._oneof_case_[0]),
        15, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.base_schema_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.filter_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.best_effort_filter_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.projection_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.advanced_extension_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.read_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.read_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.read_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.read_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ReadRel, _impl_.read_type_),
        0,
        1,
        2,
        5,
        3,
        4,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ProjectRel, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ProjectRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::ProjectRel, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::ProjectRel, _impl_.expressions_),
        PROTOBUF_FIELD_OFFSET(::substrait::ProjectRel, _impl_.advanced_extension_),
        1,
        2,
        0,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::JoinRel, _impl_._has_bits_),
        10, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::JoinRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::JoinRel, _impl_.left_),
        PROTOBUF_FIELD_OFFSET(::substrait::JoinRel, _impl_.right_),
        PROTOBUF_FIELD_OFFSET(::substrait::JoinRel, _impl_.expression_),
        PROTOBUF_FIELD_OFFSET(::substrait::JoinRel, _impl_.post_join_filter_),
        PROTOBUF_FIELD_OFFSET(::substrait::JoinRel, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::JoinRel, _impl_.advanced_extension_),
        0,
        1,
        2,
        3,
        4,
        6,
        5,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::CrossRel, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::CrossRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::CrossRel, _impl_.left_),
        PROTOBUF_FIELD_OFFSET(::substrait::CrossRel, _impl_.right_),
        PROTOBUF_FIELD_OFFSET(::substrait::CrossRel, _impl_.advanced_extension_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::FetchRel, _impl_._has_bits_),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::FetchRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::FetchRel, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::FetchRel, _impl_.offset_),
        PROTOBUF_FIELD_OFFSET(::substrait::FetchRel, _impl_.count_),
        PROTOBUF_FIELD_OFFSET(::substrait::FetchRel, _impl_.advanced_extension_),
        0,
        1,
        3,
        4,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel_Grouping, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel_Grouping, _impl_.grouping_expressions_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel_Measure, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel_Measure, _impl_.measure_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel_Measure, _impl_.filter_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel, _impl_._has_bits_),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel, _impl_.groupings_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel, _impl_.measures_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel, _impl_.advanced_extension_),
        2,
        3,
        0,
        1,
        4,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_._has_bits_),
        12, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.function_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.arguments_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.options_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.output_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.phase_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.invocation_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.lower_bound_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.upper_bound_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.bounds_type_),
        5,
        0,
        1,
        4,
        6,
        7,
        3,
        2,
        8,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.window_functions_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.partition_expressions_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.sorts_),
        PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.advanced_extension_),
        3,
        4,
        0,
        1,
        2,
        5,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::SortRel, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::SortRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::SortRel, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::SortRel, _impl_.sorts_),
        PROTOBUF_FIELD_OFFSET(::substrait::SortRel, _impl_.advanced_extension_),
        1,
        2,
        0,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::FilterRel, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::FilterRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::FilterRel, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::FilterRel, _impl_.condition_),
        PROTOBUF_FIELD_OFFSET(::substrait::FilterRel, _impl_.advanced_extension_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::SetRel, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::SetRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::SetRel, _impl_.inputs_),
        PROTOBUF_FIELD_OFFSET(::substrait::SetRel, _impl_.op_),
        PROTOBUF_FIELD_OFFSET(::substrait::SetRel, _impl_.advanced_extension_),
        1,
        0,
        3,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionSingleRel, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionSingleRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionSingleRel, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionSingleRel, _impl_.detail_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionLeafRel, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionLeafRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionLeafRel, _impl_.detail_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionMultiRel, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionMultiRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionMultiRel, _impl_.inputs_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionMultiRel, _impl_.detail_),
        1,
        0,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ScatterFields, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ScatterFields, _impl_.fields_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_SingleBucketExpression, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_SingleBucketExpression, _impl_.expression_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_MultiBucketExpression, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_MultiBucketExpression, _impl_.expression_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_MultiBucketExpression, _impl_.constrained_to_count_),
        0,
        1,
        0x000, // bitmap
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_RoundRobin, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_RoundRobin, _impl_.exact_),
        0,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ExchangeTarget, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ExchangeTarget, _impl_._oneof_case_[0]),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ExchangeTarget, _impl_.partition_id_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ExchangeTarget, _impl_.target_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ExchangeTarget, _impl_.target_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ExchangeTarget, _impl_.target_type_),
        0,
        ~0u,
        ~0u,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_._oneof_case_[0]),
        15, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.partition_count_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.targets_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.exchange_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.exchange_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.exchange_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.exchange_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.exchange_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.advanced_extension_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.exchange_kind_),
        1,
        2,
        4,
        0,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        3,
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExpandRel_ExpandField, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::ExpandRel_ExpandField, _impl_.field_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExpandRel_ExpandField, _impl_.field_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExpandRel_ExpandField, _impl_.field_type_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExpandRel_SwitchingField, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExpandRel_SwitchingField, _impl_.duplicates_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExpandRel, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExpandRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExpandRel, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::ExpandRel, _impl_.fields_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::RelRoot, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::RelRoot, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::RelRoot, _impl_.names_),
        1,
        0,
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Rel, _impl_.rel_type_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::NamedObjectWrite, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::NamedObjectWrite, _impl_.names_),
        PROTOBUF_FIELD_OFFSET(::substrait::NamedObjectWrite, _impl_.advanced_extension_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionObject, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ExtensionObject, _impl_.detail_),
        0,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_._oneof_case_[0]),
        13, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_.write_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_.write_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_.table_schema_),
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_.table_defaults_),
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_.object_),
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_.op_),
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_.view_definition_),
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::DdlRel, _impl_.write_type_),
        ~0u,
        ~0u,
        0,
        1,
        4,
        5,
        2,
        3,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::WriteRel, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::WriteRel, _impl_._oneof_case_[0]),
        12, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::WriteRel, _impl_.write_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::WriteRel, _impl_.write_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::WriteRel, _impl_.table_schema_),
        PROTOBUF_FIELD_OFFSET(::substrait::WriteRel, _impl_.op_),
        PROTOBUF_FIELD_OFFSET(::substrait::WriteRel, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::WriteRel, _impl_.output_),
        PROTOBUF_FIELD_OFFSET(::substrait::WriteRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::WriteRel, _impl_.write_type_),
        ~0u,
        ~0u,
        0,
        3,
        1,
        4,
        2,
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ComparisonJoinKey_ComparisonType, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::ComparisonJoinKey_ComparisonType, _impl_.inner_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ComparisonJoinKey_ComparisonType, _impl_.inner_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::ComparisonJoinKey_ComparisonType, _impl_.inner_type_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ComparisonJoinKey, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ComparisonJoinKey, _impl_.left_),
        PROTOBUF_FIELD_OFFSET(::substrait::ComparisonJoinKey, _impl_.right_),
        PROTOBUF_FIELD_OFFSET(::substrait::ComparisonJoinKey, _impl_.comparison_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_._has_bits_),
        12, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.left_),
        PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.right_),
        PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.left_keys_),
        PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.right_keys_),
        PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.keys_),
        PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.post_join_filter_),
        PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.advanced_extension_),
        3,
        4,
        5,
        0,
        1,
        2,
        6,
        8,
        7,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_._has_bits_),
        12, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.left_),
        PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.right_),
        PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.left_keys_),
        PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.right_keys_),
        PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.keys_),
        PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.post_join_filter_),
        PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.advanced_extension_),
        3,
        4,
        5,
        0,
        1,
        2,
        6,
        8,
        7,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::NestedLoopJoinRel, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::NestedLoopJoinRel, _impl_.common_),
        PROTOBUF_FIELD_OFFSET(::substrait::NestedLoopJoinRel, _impl_.left_),
        PROTOBUF_FIELD_OFFSET(::substrait::NestedLoopJoinRel, _impl_.right_),
        PROTOBUF_FIELD_OFFSET(::substrait::NestedLoopJoinRel, _impl_.expression_),
        PROTOBUF_FIELD_OFFSET(::substrait::NestedLoopJoinRel, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::NestedLoopJoinRel, _impl_.advanced_extension_),
        0,
        1,
        2,
        3,
        5,
        4,
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::FunctionArgument, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::FunctionArgument, _impl_.arg_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::FunctionArgument, _impl_.arg_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::FunctionArgument, _impl_.arg_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::FunctionArgument, _impl_.arg_type_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::FunctionOption, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::FunctionOption, _impl_.name_),
        PROTOBUF_FIELD_OFFSET(::substrait::FunctionOption, _impl_.preference_),
        1,
        0,
        0x000, // bitmap
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Enum, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Enum, _impl_.enum_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Enum, _impl_.enum_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Enum, _impl_.enum_kind_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_VarChar, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_VarChar, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_VarChar, _impl_.length_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Decimal, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Decimal, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Decimal, _impl_.precision_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Decimal, _impl_.scale_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Map_KeyValue, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Map_KeyValue, _impl_.key_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Map_KeyValue, _impl_.value_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Map, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Map, _impl_.key_values_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_IntervalYearToMonth, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_IntervalYearToMonth, _impl_.years_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_IntervalYearToMonth, _impl_.months_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_IntervalDayToSecond, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_IntervalDayToSecond, _impl_.days_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_IntervalDayToSecond, _impl_.seconds_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_IntervalDayToSecond, _impl_.microseconds_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Struct, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Struct, _impl_.fields_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_List, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_List, _impl_.values_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_UserDefined, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_UserDefined, _impl_.type_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_UserDefined, _impl_.type_parameters_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_UserDefined, _impl_.value_),
        2,
        0,
        1,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_._oneof_case_[0]),
        36, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.nullable_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal, _impl_.literal_type_),
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_Map_KeyValue, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_Map_KeyValue, _impl_.key_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_Map_KeyValue, _impl_.value_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_Map, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_Map, _impl_.key_values_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_Struct, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_Struct, _impl_.fields_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_List, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_List, _impl_.values_),
        0,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested, _impl_._oneof_case_[0]),
        10, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested, _impl_.nullable_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested, _impl_.type_variation_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested, _impl_.nested_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested, _impl_.nested_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested, _impl_.nested_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested, _impl_.nested_type_),
        0,
        1,
        ~0u,
        ~0u,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_._has_bits_),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.function_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.arguments_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.options_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.output_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.args_),
        4,
        1,
        2,
        3,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction_Bound_Preceding, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction_Bound_Preceding, _impl_.offset_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction_Bound_Following, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction_Bound_Following, _impl_.offset_),
        0,
        0x000, // bitmap
        0x000, // bitmap
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction_Bound, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction_Bound, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction_Bound, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction_Bound, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction_Bound, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction_Bound, _impl_.kind_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_._has_bits_),
        15, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.function_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.arguments_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.options_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.output_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.phase_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.sorts_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.invocation_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.partitions_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.bounds_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.lower_bound_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.upper_bound_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.args_),
        8,
        3,
        4,
        7,
        9,
        1,
        10,
        0,
        11,
        6,
        5,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_IfThen_IfClause, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_IfThen_IfClause, _impl_.if__),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_IfThen_IfClause, _impl_.then_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_IfThen, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_IfThen, _impl_.ifs_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_IfThen, _impl_.else__),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Cast, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Cast, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Cast, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Cast, _impl_.failure_behavior_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_SwitchExpression_IfValue, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_SwitchExpression_IfValue, _impl_.if__),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_SwitchExpression_IfValue, _impl_.then_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_SwitchExpression, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_SwitchExpression, _impl_.match_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_SwitchExpression, _impl_.ifs_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_SwitchExpression, _impl_.else__),
        2,
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_SingularOrList, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_SingularOrList, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_SingularOrList, _impl_.options_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MultiOrList_Record, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MultiOrList_Record, _impl_.fields_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MultiOrList, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MultiOrList, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MultiOrList, _impl_.options_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction_PythonPickleFunction, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction_PythonPickleFunction, _impl_.function_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction_PythonPickleFunction, _impl_.prerequisite_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction_WebAssemblyFunction, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction_WebAssemblyFunction, _impl_.script_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction_WebAssemblyFunction, _impl_.prerequisite_),
        1,
        0,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction, _impl_._oneof_case_[0]),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction, _impl_.arguments_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction, _impl_.output_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction, _impl_.kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction, _impl_.kind_),
        0,
        1,
        ~0u,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment_MapKey, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment_MapKey, _impl_.map_key_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment_MapKey, _impl_.child_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment_StructField, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment_StructField, _impl_.field_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment_StructField, _impl_.child_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment_ListElement, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment_ListElement, _impl_.offset_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment_ListElement, _impl_.child_),
        1,
        0,
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment, _impl_.reference_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment, _impl_.reference_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment, _impl_.reference_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_ReferenceSegment, _impl_.reference_type_),
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_Select, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_Select, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_Select, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_Select, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_Select, _impl_.type_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_StructSelect, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_StructSelect, _impl_.struct_items_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_StructItem, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_StructItem, _impl_.field_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_StructItem, _impl_.child_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement, _impl_.field_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_.start_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_.end_),
        0,
        1,
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem, _impl_.type_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect, _impl_.selection_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_ListSelect, _impl_.child_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_MapSelect_MapKey, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_MapSelect_MapKey, _impl_.map_key_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_MapSelect_MapKeyExpression, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_MapSelect_MapKeyExpression, _impl_.map_key_expression_),
        0,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_MapSelect, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_MapSelect, _impl_._oneof_case_[0]),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_MapSelect, _impl_.select_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_MapSelect, _impl_.select_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_MapSelect, _impl_.child_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression_MapSelect, _impl_.select_),
        ~0u,
        ~0u,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression, _impl_.select_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_MaskExpression, _impl_.maintain_singular_struct_),
        0,
        1,
        0x000, // bitmap
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_FieldReference_OuterReference, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_FieldReference_OuterReference, _impl_.steps_out_),
        0,
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_FieldReference, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_FieldReference, _impl_.reference_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_FieldReference, _impl_.reference_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_FieldReference, _impl_.root_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_FieldReference, _impl_.root_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_FieldReference, _impl_.root_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_FieldReference, _impl_.reference_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_FieldReference, _impl_.root_type_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_Scalar, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_Scalar, _impl_.input_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_InPredicate, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_InPredicate, _impl_.needles_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_InPredicate, _impl_.haystack_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_SetPredicate, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_SetPredicate, _impl_.predicate_op_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_SetPredicate, _impl_.tuples_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_SetComparison, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_SetComparison, _impl_.reduction_op_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_SetComparison, _impl_.comparison_op_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_SetComparison, _impl_.left_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_SetComparison, _impl_.right_),
        2,
        3,
        0,
        1,
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery, _impl_.subquery_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery, _impl_.subquery_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery, _impl_.subquery_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery, _impl_.subquery_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery, _impl_.subquery_type_),
        0x004, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_._oneof_case_[0]),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::Expression, _impl_.rex_type_),
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::SortField, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::substrait::SortField, _impl_._oneof_case_[0]),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::SortField, _impl_.expr_),
        PROTOBUF_FIELD_OFFSET(::substrait::SortField, _impl_.sort_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::SortField, _impl_.sort_kind_),
        PROTOBUF_FIELD_OFFSET(::substrait::SortField, _impl_.sort_kind_),
        0,
        ~0u,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_._has_bits_),
        11, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.function_reference_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.arguments_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.options_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.output_type_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.phase_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.sorts_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.invocation_),
        PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.args_),
        5,
        2,
        3,
        4,
        6,
        1,
        7,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::substrait::ReferenceRel, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::substrait::ReferenceRel, _impl_.subtree_ordinal_),
        0,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::substrait::RelCommon_Direct)},
        {1, sizeof(::substrait::RelCommon_Emit)},
        {6, sizeof(::substrait::RelCommon_Hint_Stats)},
        {15, sizeof(::substrait::RelCommon_Hint_RuntimeConstraint)},
        {20, sizeof(::substrait::RelCommon_Hint)},
        {29, sizeof(::substrait::RelCommon)},
        {42, sizeof(::substrait::ReadRel_NamedTable)},
        {49, sizeof(::substrait::ReadRel_VirtualTable)},
        {54, sizeof(::substrait::ReadRel_ExtensionTable)},
        {59, sizeof(::substrait::ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions)},
        {60, sizeof(::substrait::ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions)},
        {61, sizeof(::substrait::ReadRel_LocalFiles_FileOrFiles_OrcReadOptions)},
        {62, sizeof(::substrait::ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions)},
        {63, sizeof(::substrait::ReadRel_LocalFiles_FileOrFiles)},
        {93, sizeof(::substrait::ReadRel_LocalFiles)},
        {100, sizeof(::substrait::ReadRel)},
        {125, sizeof(::substrait::ProjectRel)},
        {136, sizeof(::substrait::JoinRel)},
        {153, sizeof(::substrait::CrossRel)},
        {164, sizeof(::substrait::FetchRel)},
        {177, sizeof(::substrait::AggregateRel_Grouping)},
        {182, sizeof(::substrait::AggregateRel_Measure)},
        {189, sizeof(::substrait::AggregateRel)},
        {202, sizeof(::substrait::ConsistentPartitionWindowRel_WindowRelFunction)},
        {223, sizeof(::substrait::ConsistentPartitionWindowRel)},
        {238, sizeof(::substrait::SortRel)},
        {249, sizeof(::substrait::FilterRel)},
        {260, sizeof(::substrait::SetRel)},
        {271, sizeof(::substrait::ExtensionSingleRel)},
        {280, sizeof(::substrait::ExtensionLeafRel)},
        {287, sizeof(::substrait::ExtensionMultiRel)},
        {296, sizeof(::substrait::ExchangeRel_ScatterFields)},
        {301, sizeof(::substrait::ExchangeRel_SingleBucketExpression)},
        {306, sizeof(::substrait::ExchangeRel_MultiBucketExpression)},
        {313, sizeof(::substrait::ExchangeRel_Broadcast)},
        {314, sizeof(::substrait::ExchangeRel_RoundRobin)},
        {319, sizeof(::substrait::ExchangeRel_ExchangeTarget)},
        {330, sizeof(::substrait::ExchangeRel)},
        {355, sizeof(::substrait::ExpandRel_ExpandField)},
        {360, sizeof(::substrait::ExpandRel_SwitchingField)},
        {365, sizeof(::substrait::ExpandRel)},
        {374, sizeof(::substrait::RelRoot)},
        {381, sizeof(::substrait::Rel)},
        {405, sizeof(::substrait::NamedObjectWrite)},
        {412, sizeof(::substrait::ExtensionObject)},
        {417, sizeof(::substrait::DdlRel)},
        {438, sizeof(::substrait::WriteRel)},
        {457, sizeof(::substrait::ComparisonJoinKey_ComparisonType)},
        {462, sizeof(::substrait::ComparisonJoinKey)},
        {471, sizeof(::substrait::HashJoinRel)},
        {492, sizeof(::substrait::MergeJoinRel)},
        {513, sizeof(::substrait::NestedLoopJoinRel)},
        {528, sizeof(::substrait::FunctionArgument)},
        {534, sizeof(::substrait::FunctionOption)},
        {541, sizeof(::substrait::Expression_Enum_Empty)},
        {542, sizeof(::substrait::Expression_Enum)},
        {547, sizeof(::substrait::Expression_Literal_VarChar)},
        {554, sizeof(::substrait::Expression_Literal_Decimal)},
        {563, sizeof(::substrait::Expression_Literal_Map_KeyValue)},
        {570, sizeof(::substrait::Expression_Literal_Map)},
        {575, sizeof(::substrait::Expression_Literal_IntervalYearToMonth)},
        {582, sizeof(::substrait::Expression_Literal_IntervalDayToSecond)},
        {591, sizeof(::substrait::Expression_Literal_Struct)},
        {596, sizeof(::substrait::Expression_Literal_List)},
        {601, sizeof(::substrait::Expression_Literal_UserDefined)},
        {610, sizeof(::substrait::Expression_Literal)},
        {677, sizeof(::substrait::Expression_Nested_Map_KeyValue)},
        {684, sizeof(::substrait::Expression_Nested_Map)},
        {689, sizeof(::substrait::Expression_Nested_Struct)},
        {694, sizeof(::substrait::Expression_Nested_List)},
        {699, sizeof(::substrait::Expression_Nested)},
        {714, sizeof(::substrait::Expression_ScalarFunction)},
        {727, sizeof(::substrait::Expression_WindowFunction_Bound_Preceding)},
        {732, sizeof(::substrait::Expression_WindowFunction_Bound_Following)},
        {737, sizeof(::substrait::Expression_WindowFunction_Bound_CurrentRow)},
        {738, sizeof(::substrait::Expression_WindowFunction_Bound_Unbounded)},
        {739, sizeof(::substrait::Expression_WindowFunction_Bound)},
        {746, sizeof(::substrait::Expression_WindowFunction)},
        {773, sizeof(::substrait::Expression_IfThen_IfClause)},
        {780, sizeof(::substrait::Expression_IfThen)},
        {787, sizeof(::substrait::Expression_Cast)},
        {796, sizeof(::substrait::Expression_SwitchExpression_IfValue)},
        {803, sizeof(::substrait::Expression_SwitchExpression)},
        {812, sizeof(::substrait::Expression_SingularOrList)},
        {819, sizeof(::substrait::Expression_MultiOrList_Record)},
        {824, sizeof(::substrait::Expression_MultiOrList)},
        {831, sizeof(::substrait::Expression_EmbeddedFunction_PythonPickleFunction)},
        {838, sizeof(::substrait::Expression_EmbeddedFunction_WebAssemblyFunction)},
        {845, sizeof(::substrait::Expression_EmbeddedFunction)},
        {858, sizeof(::substrait::Expression_ReferenceSegment_MapKey)},
        {865, sizeof(::substrait::Expression_ReferenceSegment_StructField)},
        {872, sizeof(::substrait::Expression_ReferenceSegment_ListElement)},
        {879, sizeof(::substrait::Expression_ReferenceSegment)},
        {885, sizeof(::substrait::Expression_MaskExpression_Select)},
        {891, sizeof(::substrait::Expression_MaskExpression_StructSelect)},
        {896, sizeof(::substrait::Expression_MaskExpression_StructItem)},
        {903, sizeof(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement)},
        {908, sizeof(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice)},
        {915, sizeof(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem)},
        {920, sizeof(::substrait::Expression_MaskExpression_ListSelect)},
        {927, sizeof(::substrait::Expression_MaskExpression_MapSelect_MapKey)},
        {932, sizeof(::substrait::Expression_MaskExpression_MapSelect_MapKeyExpression)},
        {937, sizeof(::substrait::Expression_MaskExpression_MapSelect)},
        {948, sizeof(::substrait::Expression_MaskExpression)},
        {955, sizeof(::substrait::Expression_FieldReference_RootReference)},
        {956, sizeof(::substrait::Expression_FieldReference_OuterReference)},
        {961, sizeof(::substrait::Expression_FieldReference)},
        {970, sizeof(::substrait::Expression_Subquery_Scalar)},
        {975, sizeof(::substrait::Expression_Subquery_InPredicate)},
        {982, sizeof(::substrait::Expression_Subquery_SetPredicate)},
        {989, sizeof(::substrait::Expression_Subquery_SetComparison)},
        {1000, sizeof(::substrait::Expression_Subquery)},
        {1007, sizeof(::substrait::Expression)},
        {1022, sizeof(::substrait::SortField)},
        {1033, sizeof(::substrait::AggregateFunction)},
        {1052, sizeof(::substrait::ReferenceRel)},
};
static const ::_pbi::MessageGlobalsBase* PROTOBUF_NONNULL const
    file_message_globals[] = {
        &::substrait::RelCommon_Direct_globals_,
        &::substrait::RelCommon_Emit_globals_,
        &::substrait::RelCommon_Hint_Stats_globals_,
        &::substrait::RelCommon_Hint_RuntimeConstraint_globals_,
        &::substrait::RelCommon_Hint_globals_,
        &::substrait::RelCommon_globals_,
        &::substrait::ReadRel_NamedTable_globals_,
        &::substrait::ReadRel_VirtualTable_globals_,
        &::substrait::ReadRel_ExtensionTable_globals_,
        &::substrait::ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_globals_,
        &::substrait::ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_globals_,
        &::substrait::ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_globals_,
        &::substrait::ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_globals_,
        &::substrait::ReadRel_LocalFiles_FileOrFiles_globals_,
        &::substrait::ReadRel_LocalFiles_globals_,
        &::substrait::ReadRel_globals_,
        &::substrait::ProjectRel_globals_,
        &::substrait::JoinRel_globals_,
        &::substrait::CrossRel_globals_,
        &::substrait::FetchRel_globals_,
        &::substrait::AggregateRel_Grouping_globals_,
        &::substrait::AggregateRel_Measure_globals_,
        &::substrait::AggregateRel_globals_,
        &::substrait::ConsistentPartitionWindowRel_WindowRelFunction_globals_,
        &::substrait::ConsistentPartitionWindowRel_globals_,
        &::substrait::SortRel_globals_,
        &::substrait::FilterRel_globals_,
        &::substrait::SetRel_globals_,
        &::substrait::ExtensionSingleRel_globals_,
        &::substrait::ExtensionLeafRel_globals_,
        &::substrait::ExtensionMultiRel_globals_,
        &::substrait::ExchangeRel_ScatterFields_globals_,
        &::substrait::ExchangeRel_SingleBucketExpression_globals_,
        &::substrait::ExchangeRel_MultiBucketExpression_globals_,
        &::substrait::ExchangeRel_Broadcast_globals_,
        &::substrait::ExchangeRel_RoundRobin_globals_,
        &::substrait::ExchangeRel_ExchangeTarget_globals_,
        &::substrait::ExchangeRel_globals_,
        &::substrait::ExpandRel_ExpandField_globals_,
        &::substrait::ExpandRel_SwitchingField_globals_,
        &::substrait::ExpandRel_globals_,
        &::substrait::RelRoot_globals_,
        &::substrait::Rel_globals_,
        &::substrait::NamedObjectWrite_globals_,
        &::substrait::ExtensionObject_globals_,
        &::substrait::DdlRel_globals_,
        &::substrait::WriteRel_globals_,
        &::substrait::ComparisonJoinKey_ComparisonType_globals_,
        &::substrait::ComparisonJoinKey_globals_,
        &::substrait::HashJoinRel_globals_,
        &::substrait::MergeJoinRel_globals_,
        &::substrait::NestedLoopJoinRel_globals_,
        &::substrait::FunctionArgument_globals_,
        &::substrait::FunctionOption_globals_,
        &::substrait::Expression_Enum_Empty_globals_,
        &::substrait::Expression_Enum_globals_,
        &::substrait::Expression_Literal_VarChar_globals_,
        &::substrait::Expression_Literal_Decimal_globals_,
        &::substrait::Expression_Literal_Map_KeyValue_globals_,
        &::substrait::Expression_Literal_Map_globals_,
        &::substrait::Expression_Literal_IntervalYearToMonth_globals_,
        &::substrait::Expression_Literal_IntervalDayToSecond_globals_,
        &::substrait::Expression_Literal_Struct_globals_,
        &::substrait::Expression_Literal_List_globals_,
        &::substrait::Expression_Literal_UserDefined_globals_,
        &::substrait::Expression_Literal_globals_,
        &::substrait::Expression_Nested_Map_KeyValue_globals_,
        &::substrait::Expression_Nested_Map_globals_,
        &::substrait::Expression_Nested_Struct_globals_,
        &::substrait::Expression_Nested_List_globals_,
        &::substrait::Expression_Nested_globals_,
        &::substrait::Expression_ScalarFunction_globals_,
        &::substrait::Expression_WindowFunction_Bound_Preceding_globals_,
        &::substrait::Expression_WindowFunction_Bound_Following_globals_,
        &::substrait::Expression_WindowFunction_Bound_CurrentRow_globals_,
        &::substrait::Expression_WindowFunction_Bound_Unbounded_globals_,
        &::substrait::Expression_WindowFunction_Bound_globals_,
        &::substrait::Expression_WindowFunction_globals_,
        &::substrait::Expression_IfThen_IfClause_globals_,
        &::substrait::Expression_IfThen_globals_,
        &::substrait::Expression_Cast_globals_,
        &::substrait::Expression_SwitchExpression_IfValue_globals_,
        &::substrait::Expression_SwitchExpression_globals_,
        &::substrait::Expression_SingularOrList_globals_,
        &::substrait::Expression_MultiOrList_Record_globals_,
        &::substrait::Expression_MultiOrList_globals_,
        &::substrait::Expression_EmbeddedFunction_PythonPickleFunction_globals_,
        &::substrait::Expression_EmbeddedFunction_WebAssemblyFunction_globals_,
        &::substrait::Expression_EmbeddedFunction_globals_,
        &::substrait::Expression_ReferenceSegment_MapKey_globals_,
        &::substrait::Expression_ReferenceSegment_StructField_globals_,
        &::substrait::Expression_ReferenceSegment_ListElement_globals_,
        &::substrait::Expression_ReferenceSegment_globals_,
        &::substrait::Expression_MaskExpression_Select_globals_,
        &::substrait::Expression_MaskExpression_StructSelect_globals_,
        &::substrait::Expression_MaskExpression_StructItem_globals_,
        &::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement_globals_,
        &::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_globals_,
        &::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_globals_,
        &::substrait::Expression_MaskExpression_ListSelect_globals_,
        &::substrait::Expression_MaskExpression_MapSelect_MapKey_globals_,
        &::substrait::Expression_MaskExpression_MapSelect_MapKeyExpression_globals_,
        &::substrait::Expression_MaskExpression_MapSelect_globals_,
        &::substrait::Expression_MaskExpression_globals_,
        &::substrait::Expression_FieldReference_RootReference_globals_,
        &::substrait::Expression_FieldReference_OuterReference_globals_,
        &::substrait::Expression_FieldReference_globals_,
        &::substrait::Expression_Subquery_Scalar_globals_,
        &::substrait::Expression_Subquery_InPredicate_globals_,
        &::substrait::Expression_Subquery_SetPredicate_globals_,
        &::substrait::Expression_Subquery_SetComparison_globals_,
        &::substrait::Expression_Subquery_globals_,
        &::substrait::Expression_globals_,
        &::substrait::SortField_globals_,
        &::substrait::AggregateFunction_globals_,
        &::substrait::ReferenceRel_globals_,
};
const char descriptor_table_protodef_substrait_2falgebra_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n\027substrait/algebra.proto\022\tsubstrait\032\031go"
    "ogle/protobuf/any.proto\032%substrait/exten"
    "sions/extensions.proto\032\024substrait/type.p"
    "roto\"\231\005\n\tRelCommon\022-\n\006direct\030\001 \001(\0132\033.sub"
    "strait.RelCommon.DirectH\000\022)\n\004emit\030\002 \001(\0132"
    "\031.substrait.RelCommon.EmitH\000\022\'\n\004hint\030\003 \001"
    "(\0132\031.substrait.RelCommon.Hint\022C\n\022advance"
    "d_extension\030\004 \001(\0132\'.substrait.extensions"
    ".AdvancedExtension\032\010\n\006Direct\032\036\n\004Emit\022\026\n\016"
    "output_mapping\030\001 \003(\005\032\214\003\n\004Hint\022.\n\005stats\030\001"
    " \001(\0132\037.substrait.RelCommon.Hint.Stats\022\?\n"
    "\nconstraint\030\002 \001(\0132+.substrait.RelCommon."
    "Hint.RuntimeConstraint\022C\n\022advanced_exten"
    "sion\030\n \001(\0132\'.substrait.extensions.Advanc"
    "edExtension\032t\n\005Stats\022\021\n\trow_count\030\001 \001(\001\022"
    "\023\n\013record_size\030\002 \001(\001\022C\n\022advanced_extensi"
    "on\030\n \001(\0132\'.substrait.extensions.Advanced"
    "Extension\032X\n\021RuntimeConstraint\022C\n\022advanc"
    "ed_extension\030\n \001(\0132\'.substrait.extension"
    "s.AdvancedExtensionB\013\n\temit_kind\"\211\014\n\007Rea"
    "dRel\022$\n\006common\030\001 \001(\0132\024.substrait.RelComm"
    "on\022+\n\013base_schema\030\002 \001(\0132\026.substrait.Name"
    "dStruct\022%\n\006filter\030\003 \001(\0132\025.substrait.Expr"
    "ession\0221\n\022best_effort_filter\030\013 \001(\0132\025.sub"
    "strait.Expression\0228\n\nprojection\030\004 \001(\0132$."
    "substrait.Expression.MaskExpression\022C\n\022a"
    "dvanced_extension\030\n \001(\0132\'.substrait.exte"
    "nsions.AdvancedExtension\0228\n\rvirtual_tabl"
    "e\030\005 \001(\0132\037.substrait.ReadRel.VirtualTable"
    "H\000\0224\n\013local_files\030\006 \001(\0132\035.substrait.Read"
    "Rel.LocalFilesH\000\0224\n\013named_table\030\007 \001(\0132\035."
    "substrait.ReadRel.NamedTableH\000\022<\n\017extens"
    "ion_table\030\010 \001(\0132!.substrait.ReadRel.Exte"
    "nsionTableH\000\032`\n\nNamedTable\022\r\n\005names\030\001 \003("
    "\t\022C\n\022advanced_extension\030\n \001(\0132\'.substrai"
    "t.extensions.AdvancedExtension\032D\n\014Virtua"
    "lTable\0224\n\006values\030\001 \003(\0132$.substrait.Expre"
    "ssion.Literal.Struct\0326\n\016ExtensionTable\022$"
    "\n\006detail\030\001 \001(\0132\024.google.protobuf.Any\032\200\006\n"
    "\nLocalFiles\0228\n\005items\030\001 \003(\0132).substrait.R"
    "eadRel.LocalFiles.FileOrFiles\022C\n\022advance"
    "d_extension\030\n \001(\0132\'.substrait.extensions"
    ".AdvancedExtension\032\362\004\n\013FileOrFiles\022\022\n\010ur"
    "i_path\030\001 \001(\tH\000\022\027\n\ruri_path_glob\030\002 \001(\tH\000\022"
    "\022\n\010uri_file\030\003 \001(\tH\000\022\024\n\nuri_folder\030\004 \001(\tH"
    "\000\022\027\n\017partition_index\030\006 \001(\004\022\r\n\005start\030\007 \001("
    "\004\022\016\n\006length\030\010 \001(\004\022O\n\007parquet\030\t \001(\0132<.sub"
    "strait.ReadRel.LocalFiles.FileOrFiles.Pa"
    "rquetReadOptionsH\001\022K\n\005arrow\030\n \001(\0132:.subs"
    "trait.ReadRel.LocalFiles.FileOrFiles.Arr"
    "owReadOptionsH\001\022G\n\003orc\030\013 \001(\01328.substrait"
    ".ReadRel.LocalFiles.FileOrFiles.OrcReadO"
    "ptionsH\001\022)\n\textension\030\014 \001(\0132\024.google.pro"
    "tobuf.AnyH\001\022I\n\004dwrf\030\r \001(\01329.substrait.Re"
    "adRel.LocalFiles.FileOrFiles.DwrfReadOpt"
    "ionsH\001\032\024\n\022ParquetReadOptions\032\022\n\020ArrowRea"
    "dOptions\032\020\n\016OrcReadOptions\032\021\n\017DwrfReadOp"
    "tionsB\013\n\tpath_typeB\r\n\013file_formatJ\004\010\005\020\006R"
    "\006formatB\013\n\tread_type\"\302\001\n\nProjectRel\022$\n\006c"
    "ommon\030\001 \001(\0132\024.substrait.RelCommon\022\035\n\005inp"
    "ut\030\002 \001(\0132\016.substrait.Rel\022*\n\013expressions\030"
    "\003 \003(\0132\025.substrait.Expression\022C\n\022advanced"
    "_extension\030\n \001(\0132\'.substrait.extensions."
    "AdvancedExtension\"\361\003\n\007JoinRel\022$\n\006common\030"
    "\001 \001(\0132\024.substrait.RelCommon\022\034\n\004left\030\002 \001("
    "\0132\016.substrait.Rel\022\035\n\005right\030\003 \001(\0132\016.subst"
    "rait.Rel\022)\n\nexpression\030\004 \001(\0132\025.substrait"
    ".Expression\022/\n\020post_join_filter\030\005 \001(\0132\025."
    "substrait.Expression\022)\n\004type\030\006 \001(\0162\033.sub"
    "strait.JoinRel.JoinType\022C\n\022advanced_exte"
    "nsion\030\n \001(\0132\'.substrait.extensions.Advan"
    "cedExtension\"\266\001\n\010JoinType\022\031\n\025JOIN_TYPE_U"
    "NSPECIFIED\020\000\022\023\n\017JOIN_TYPE_INNER\020\001\022\023\n\017JOI"
    "N_TYPE_OUTER\020\002\022\022\n\016JOIN_TYPE_LEFT\020\003\022\023\n\017JO"
    "IN_TYPE_RIGHT\020\004\022\022\n\016JOIN_TYPE_SEMI\020\005\022\022\n\016J"
    "OIN_TYPE_ANTI\020\006\022\024\n\020JOIN_TYPE_SINGLE\020\007\"\262\001"
    "\n\010CrossRel\022$\n\006common\030\001 \001(\0132\024.substrait.R"
    "elCommon\022\034\n\004left\030\002 \001(\0132\016.substrait.Rel\022\035"
    "\n\005right\030\003 \001(\0132\016.substrait.Rel\022C\n\022advance"
    "d_extension\030\n \001(\0132\'.substrait.extensions"
    ".AdvancedExtension\"\263\001\n\010FetchRel\022$\n\006commo"
    "n\030\001 \001(\0132\024.substrait.RelCommon\022\035\n\005input\030\002"
    " \001(\0132\016.substrait.Rel\022\016\n\006offset\030\003 \001(\003\022\r\n\005"
    "count\030\004 \001(\003\022C\n\022advanced_extension\030\n \001(\0132"
    "\'.substrait.extensions.AdvancedExtension"
    "\"\242\003\n\014AggregateRel\022$\n\006common\030\001 \001(\0132\024.subs"
    "trait.RelCommon\022\035\n\005input\030\002 \001(\0132\016.substra"
    "it.Rel\0223\n\tgroupings\030\003 \003(\0132 .substrait.Ag"
    "gregateRel.Grouping\0221\n\010measures\030\004 \003(\0132\037."
    "substrait.AggregateRel.Measure\022C\n\022advanc"
    "ed_extension\030\n \001(\0132\'.substrait.extension"
    "s.AdvancedExtension\032\?\n\010Grouping\0223\n\024group"
    "ing_expressions\030\001 \003(\0132\025.substrait.Expres"
    "sion\032_\n\007Measure\022-\n\007measure\030\001 \001(\0132\034.subst"
    "rait.AggregateFunction\022%\n\006filter\030\002 \001(\0132\025"
    ".substrait.Expression\"\310\006\n\034ConsistentPart"
    "itionWindowRel\022$\n\006common\030\001 \001(\0132\024.substra"
    "it.RelCommon\022\035\n\005input\030\002 \001(\0132\016.substrait."
    "Rel\022S\n\020window_functions\030\003 \003(\01329.substrai"
    "t.ConsistentPartitionWindowRel.WindowRel"
    "Function\0224\n\025partition_expressions\030\004 \003(\0132"
    "\025.substrait.Expression\022#\n\005sorts\030\005 \003(\0132\024."
    "substrait.SortField\022C\n\022advanced_extensio"
    "n\030\n \001(\0132\'.substrait.extensions.AdvancedE"
    "xtension\032\355\003\n\021WindowRelFunction\022\032\n\022functi"
    "on_reference\030\001 \001(\r\022.\n\targuments\030\t \003(\0132\033."
    "substrait.FunctionArgument\022*\n\007options\030\013 "
    "\003(\0132\031.substrait.FunctionOption\022$\n\013output"
    "_type\030\007 \001(\0132\017.substrait.Type\022*\n\005phase\030\006 "
    "\001(\0162\033.substrait.AggregationPhase\022F\n\ninvo"
    "cation\030\n \001(\01622.substrait.AggregateFuncti"
    "on.AggregationInvocation\022\?\n\013lower_bound\030"
    "\005 \001(\0132*.substrait.Expression.WindowFunct"
    "ion.Bound\022\?\n\013upper_bound\030\004 \001(\0132*.substra"
    "it.Expression.WindowFunction.Bound\022D\n\013bo"
    "unds_type\030\014 \001(\0162/.substrait.Expression.W"
    "indowFunction.BoundsType\"\270\001\n\007SortRel\022$\n\006"
    "common\030\001 \001(\0132\024.substrait.RelCommon\022\035\n\005in"
    "put\030\002 \001(\0132\016.substrait.Rel\022#\n\005sorts\030\003 \003(\013"
    "2\024.substrait.SortField\022C\n\022advanced_exten"
    "sion\030\n \001(\0132\'.substrait.extensions.Advanc"
    "edExtension\"\277\001\n\tFilterRel\022$\n\006common\030\001 \001("
    "\0132\024.substrait.RelCommon\022\035\n\005input\030\002 \001(\0132\016"
    ".substrait.Rel\022(\n\tcondition\030\003 \001(\0132\025.subs"
    "trait.Expression\022C\n\022advanced_extension\030\n"
    " \001(\0132\'.substrait.extensions.AdvancedExte"
    "nsion\"\203\003\n\006SetRel\022$\n\006common\030\001 \001(\0132\024.subst"
    "rait.RelCommon\022\036\n\006inputs\030\002 \003(\0132\016.substra"
    "it.Rel\022#\n\002op\030\003 \001(\0162\027.substrait.SetRel.Se"
    "tOp\022C\n\022advanced_extension\030\n \001(\0132\'.substr"
    "ait.extensions.AdvancedExtension\"\310\001\n\005Set"
    "Op\022\026\n\022SET_OP_UNSPECIFIED\020\000\022\030\n\024SET_OP_MIN"
    "US_PRIMARY\020\001\022\031\n\025SET_OP_MINUS_MULTISET\020\002\022"
    "\037\n\033SET_OP_INTERSECTION_PRIMARY\020\003\022 \n\034SET_"
    "OP_INTERSECTION_MULTISET\020\004\022\031\n\025SET_OP_UNI"
    "ON_DISTINCT\020\005\022\024\n\020SET_OP_UNION_ALL\020\006\"\177\n\022E"
    "xtensionSingleRel\022$\n\006common\030\001 \001(\0132\024.subs"
    "trait.RelCommon\022\035\n\005input\030\002 \001(\0132\016.substra"
    "it.Rel\022$\n\006detail\030\003 \001(\0132\024.google.protobuf"
    ".Any\"^\n\020ExtensionLeafRel\022$\n\006common\030\001 \001(\013"
    "2\024.substrait.RelCommon\022$\n\006detail\030\002 \001(\0132\024"
    ".google.protobuf.Any\"\177\n\021ExtensionMultiRe"
    "l\022$\n\006common\030\001 \001(\0132\024.substrait.RelCommon\022"
    "\036\n\006inputs\030\002 \003(\0132\016.substrait.Rel\022$\n\006detai"
    "l\030\003 \001(\0132\024.google.protobuf.Any\"\303\007\n\013Exchan"
    "geRel\022$\n\006common\030\001 \001(\0132\024.substrait.RelCom"
    "mon\022\035\n\005input\030\002 \001(\0132\016.substrait.Rel\022\027\n\017pa"
    "rtition_count\030\003 \001(\005\0226\n\007targets\030\004 \003(\0132%.s"
    "ubstrait.ExchangeRel.ExchangeTarget\022A\n\021s"
    "catter_by_fields\030\005 \001(\0132$.substrait.Excha"
    "ngeRel.ScatterFieldsH\000\022F\n\rsingle_target\030"
    "\006 \001(\0132-.substrait.ExchangeRel.SingleBuck"
    "etExpressionH\000\022D\n\014multi_target\030\007 \001(\0132,.s"
    "ubstrait.ExchangeRel.MultiBucketExpressi"
    "onH\000\0228\n\013round_robin\030\010 \001(\0132!.substrait.Ex"
    "changeRel.RoundRobinH\000\0225\n\tbroadcast\030\t \001("
    "\0132 .substrait.ExchangeRel.BroadcastH\000\022C\n"
    "\022advanced_extension\030\n \001(\0132\'.substrait.ex"
    "tensions.AdvancedExtension\032E\n\rScatterFie"
    "lds\0224\n\006fields\030\001 \003(\0132$.substrait.Expressi"
    "on.FieldReference\032C\n\026SingleBucketExpress"
    "ion\022)\n\nexpression\030\001 \001(\0132\025.substrait.Expr"
    "ession\032`\n\025MultiBucketExpression\022)\n\nexpre"
    "ssion\030\001 \001(\0132\025.substrait.Expression\022\034\n\024co"
    "nstrained_to_count\030\002 \001(\010\032\013\n\tBroadcast\032\033\n"
    "\nRoundRobin\022\r\n\005exact\030\001 \001(\010\032n\n\016ExchangeTa"
    "rget\022\024\n\014partition_id\030\001 \003(\005\022\r\n\003uri\030\002 \001(\tH"
    "\000\022(\n\010extended\030\003 \001(\0132\024.google.protobuf.An"
    "yH\000B\r\n\013target_typeB\017\n\rexchange_kind\"\320\002\n\t"
    "ExpandRel\022$\n\006common\030\001 \001(\0132\024.substrait.Re"
    "lCommon\022\035\n\005input\030\002 \001(\0132\016.substrait.Rel\0220"
    "\n\006fields\030\004 \003(\0132 .substrait.ExpandRel.Exp"
    "andField\032\216\001\n\013ExpandField\022>\n\017switching_fi"
    "eld\030\002 \001(\0132#.substrait.ExpandRel.Switchin"
    "gFieldH\000\0221\n\020consistent_field\030\003 \001(\0132\025.sub"
    "strait.ExpressionH\000B\014\n\nfield_type\032;\n\016Swi"
    "tchingField\022)\n\nduplicates\030\001 \003(\0132\025.substr"
    "ait.Expression\"7\n\007RelRoot\022\035\n\005input\030\001 \001(\013"
    "2\016.substrait.Rel\022\r\n\005names\030\002 \003(\t\"\261\007\n\003Rel\022"
    "\"\n\004read\030\001 \001(\0132\022.substrait.ReadRelH\000\022&\n\006f"
    "ilter\030\002 \001(\0132\024.substrait.FilterRelH\000\022$\n\005f"
    "etch\030\003 \001(\0132\023.substrait.FetchRelH\000\022,\n\tagg"
    "regate\030\004 \001(\0132\027.substrait.AggregateRelH\000\022"
    "\"\n\004sort\030\005 \001(\0132\022.substrait.SortRelH\000\022\"\n\004j"
    "oin\030\006 \001(\0132\022.substrait.JoinRelH\000\022(\n\007proje"
    "ct\030\007 \001(\0132\025.substrait.ProjectRelH\000\022 \n\003set"
    "\030\010 \001(\0132\021.substrait.SetRelH\000\0229\n\020extension"
    "_single\030\t \001(\0132\035.substrait.ExtensionSingl"
    "eRelH\000\0227\n\017extension_multi\030\n \001(\0132\034.substr"
    "ait.ExtensionMultiRelH\000\0225\n\016extension_lea"
    "f\030\013 \001(\0132\033.substrait.ExtensionLeafRelH\000\022$"
    "\n\005cross\030\014 \001(\0132\023.substrait.CrossRelH\000\022,\n\t"
    "reference\030\025 \001(\0132\027.substrait.ReferenceRel"
    "H\000\022$\n\005write\030\023 \001(\0132\023.substrait.WriteRelH\000"
    "\022 \n\003ddl\030\024 \001(\0132\021.substrait.DdlRelH\000\022+\n\tha"
    "sh_join\030\r \001(\0132\026.substrait.HashJoinRelH\000\022"
    "-\n\nmerge_join\030\016 \001(\0132\027.substrait.MergeJoi"
    "nRelH\000\0228\n\020nested_loop_join\030\022 \001(\0132\034.subst"
    "rait.NestedLoopJoinRelH\000\0229\n\006window\030\021 \001(\013"
    "2\'.substrait.ConsistentPartitionWindowRe"
    "lH\000\022*\n\010exchange\030\017 \001(\0132\026.substrait.Exchan"
    "geRelH\000\022&\n\006expand\030\020 \001(\0132\024.substrait.Expa"
    "ndRelH\000B\n\n\010rel_type\"f\n\020NamedObjectWrite\022"
    "\r\n\005names\030\001 \003(\t\022C\n\022advanced_extension\030\n \001"
    "(\0132\'.substrait.extensions.AdvancedExtens"
    "ion\"7\n\017ExtensionObject\022$\n\006detail\030\001 \001(\0132\024"
    ".google.protobuf.Any\"\364\004\n\006DdlRel\0223\n\014named"
    "_object\030\001 \001(\0132\033.substrait.NamedObjectWri"
    "teH\000\0226\n\020extension_object\030\002 \001(\0132\032.substra"
    "it.ExtensionObjectH\000\022,\n\014table_schema\030\003 \001"
    "(\0132\026.substrait.NamedStruct\022<\n\016table_defa"
    "ults\030\004 \001(\0132$.substrait.Expression.Litera"
    "l.Struct\022+\n\006object\030\005 \001(\0162\033.substrait.Ddl"
    "Rel.DdlObject\022#\n\002op\030\006 \001(\0162\027.substrait.Dd"
    "lRel.DdlOp\022\'\n\017view_definition\030\007 \001(\0132\016.su"
    "bstrait.Rel\022$\n\006common\030\010 \001(\0132\024.substrait."
    "RelCommon\"R\n\tDdlObject\022\032\n\026DDL_OBJECT_UNS"
    "PECIFIED\020\000\022\024\n\020DDL_OBJECT_TABLE\020\001\022\023\n\017DDL_"
    "OBJECT_VIEW\020\002\"\215\001\n\005DdlOp\022\026\n\022DDL_OP_UNSPEC"
    "IFIED\020\000\022\021\n\rDDL_OP_CREATE\020\001\022\034\n\030DDL_OP_CRE"
    "ATE_OR_REPLACE\020\002\022\020\n\014DDL_OP_ALTER\020\003\022\017\n\013DD"
    "L_OP_DROP\020\004\022\030\n\024DDL_OP_DROP_IF_EXIST\020\005B\014\n"
    "\nwrite_type\"\256\004\n\010WriteRel\0222\n\013named_table\030"
    "\001 \001(\0132\033.substrait.NamedObjectWriteH\000\0225\n\017"
    "extension_table\030\002 \001(\0132\032.substrait.Extens"
    "ionObjectH\000\022,\n\014table_schema\030\003 \001(\0132\026.subs"
    "trait.NamedStruct\022\'\n\002op\030\004 \001(\0162\033.substrai"
    "t.WriteRel.WriteOp\022\035\n\005input\030\005 \001(\0132\016.subs"
    "trait.Rel\022.\n\006output\030\006 \001(\0162\036.substrait.Wr"
    "iteRel.OutputMode\022$\n\006common\030\007 \001(\0132\024.subs"
    "trait.RelCommon\"u\n\007WriteOp\022\030\n\024WRITE_OP_U"
    "NSPECIFIED\020\000\022\023\n\017WRITE_OP_INSERT\020\001\022\023\n\017WRI"
    "TE_OP_DELETE\020\002\022\023\n\017WRITE_OP_UPDATE\020\003\022\021\n\rW"
    "RITE_OP_CTAS\020\004\"f\n\nOutputMode\022\033\n\027OUTPUT_M"
    "ODE_UNSPECIFIED\020\000\022\031\n\025OUTPUT_MODE_NO_OUTP"
    "UT\020\001\022 \n\034OUTPUT_MODE_MODIFIED_RECORDS\020\002B\014"
    "\n\nwrite_type\"\201\004\n\021ComparisonJoinKey\0222\n\004le"
    "ft\030\001 \001(\0132$.substrait.Expression.FieldRef"
    "erence\0223\n\005right\030\002 \001(\0132$.substrait.Expres"
    "sion.FieldReference\022\?\n\ncomparison\030\003 \001(\0132"
    "+.substrait.ComparisonJoinKey.Comparison"
    "Type\032\210\001\n\016ComparisonType\022C\n\006simple\030\001 \001(\0162"
    "1.substrait.ComparisonJoinKey.SimpleComp"
    "arisonTypeH\000\022#\n\031custom_function_referenc"
    "e\030\002 \001(\rH\000B\014\n\ninner_type\"\266\001\n\024SimpleCompar"
    "isonType\022&\n\"SIMPLE_COMPARISON_TYPE_UNSPE"
    "CIFIED\020\000\022\035\n\031SIMPLE_COMPARISON_TYPE_EQ\020\001\022"
    "/\n+SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINC"
    "T_FROM\020\002\022&\n\"SIMPLE_COMPARISON_TYPE_MIGHT"
    "_EQUAL\020\003\"\235\005\n\013HashJoinRel\022$\n\006common\030\001 \001(\013"
    "2\024.substrait.RelCommon\022\034\n\004left\030\002 \001(\0132\016.s"
    "ubstrait.Rel\022\035\n\005right\030\003 \001(\0132\016.substrait."
    "Rel\022;\n\tleft_keys\030\004 \003(\0132$.substrait.Expre"
    "ssion.FieldReferenceB\002\030\001\022<\n\nright_keys\030\005"
    " \003(\0132$.substrait.Expression.FieldReferen"
    "ceB\002\030\001\022*\n\004keys\030\010 \003(\0132\034.substrait.Compari"
    "sonJoinKey\022/\n\020post_join_filter\030\006 \001(\0132\025.s"
    "ubstrait.Expression\022-\n\004type\030\007 \001(\0162\037.subs"
    "trait.HashJoinRel.JoinType\022C\n\022advanced_e"
    "xtension\030\n \001(\0132\'.substrait.extensions.Ad"
    "vancedExtension\"\336\001\n\010JoinType\022\031\n\025JOIN_TYP"
    "E_UNSPECIFIED\020\000\022\023\n\017JOIN_TYPE_INNER\020\001\022\023\n\017"
    "JOIN_TYPE_OUTER\020\002\022\022\n\016JOIN_TYPE_LEFT\020\003\022\023\n"
    "\017JOIN_TYPE_RIGHT\020\004\022\027\n\023JOIN_TYPE_LEFT_SEM"
    "I\020\005\022\030\n\024JOIN_TYPE_RIGHT_SEMI\020\006\022\027\n\023JOIN_TY"
    "PE_LEFT_ANTI\020\007\022\030\n\024JOIN_TYPE_RIGHT_ANTI\020\010"
    "\"\237\005\n\014MergeJoinRel\022$\n\006common\030\001 \001(\0132\024.subs"
    "trait.RelCommon\022\034\n\004left\030\002 \001(\0132\016.substrai"
    "t.Rel\022\035\n\005right\030\003 \001(\0132\016.substrait.Rel\022;\n\t"
    "left_keys\030\004 \003(\0132$.substrait.Expression.F"
    "ieldReferenceB\002\030\001\022<\n\nright_keys\030\005 \003(\0132$."
    "substrait.Expression.FieldReferenceB\002\030\001\022"
    "*\n\004keys\030\010 \003(\0132\034.substrait.ComparisonJoin"
    "Key\022/\n\020post_join_filter\030\006 \001(\0132\025.substrai"
    "t.Expression\022.\n\004type\030\007 \001(\0162 .substrait.M"
    "ergeJoinRel.JoinType\022C\n\022advanced_extensi"
    "on\030\n \001(\0132\'.substrait.extensions.Advanced"
    "Extension\"\336\001\n\010JoinType\022\031\n\025JOIN_TYPE_UNSP"
    "ECIFIED\020\000\022\023\n\017JOIN_TYPE_INNER\020\001\022\023\n\017JOIN_T"
    "YPE_OUTER\020\002\022\022\n\016JOIN_TYPE_LEFT\020\003\022\023\n\017JOIN_"
    "TYPE_RIGHT\020\004\022\027\n\023JOIN_TYPE_LEFT_SEMI\020\005\022\030\n"
    "\024JOIN_TYPE_RIGHT_SEMI\020\006\022\027\n\023JOIN_TYPE_LEF"
    "T_ANTI\020\007\022\030\n\024JOIN_TYPE_RIGHT_ANTI\020\010\"\374\003\n\021N"
    "estedLoopJoinRel\022$\n\006common\030\001 \001(\0132\024.subst"
    "rait.RelCommon\022\034\n\004left\030\002 \001(\0132\016.substrait"
    ".Rel\022\035\n\005right\030\003 \001(\0132\016.substrait.Rel\022)\n\ne"
    "xpression\030\004 \001(\0132\025.substrait.Expression\0223"
    "\n\004type\030\005 \001(\0162%.substrait.NestedLoopJoinR"
    "el.JoinType\022C\n\022advanced_extension\030\n \001(\0132"
    "\'.substrait.extensions.AdvancedExtension"
    "\"\336\001\n\010JoinType\022\031\n\025JOIN_TYPE_UNSPECIFIED\020\000"
    "\022\023\n\017JOIN_TYPE_INNER\020\001\022\023\n\017JOIN_TYPE_OUTER"
    "\020\002\022\022\n\016JOIN_TYPE_LEFT\020\003\022\023\n\017JOIN_TYPE_RIGH"
    "T\020\004\022\027\n\023JOIN_TYPE_LEFT_SEMI\020\005\022\030\n\024JOIN_TYP"
    "E_RIGHT_SEMI\020\006\022\027\n\023JOIN_TYPE_LEFT_ANTI\020\007\022"
    "\030\n\024JOIN_TYPE_RIGHT_ANTI\020\010\"w\n\020FunctionArg"
    "ument\022\016\n\004enum\030\001 \001(\tH\000\022\037\n\004type\030\002 \001(\0132\017.su"
    "bstrait.TypeH\000\022&\n\005value\030\003 \001(\0132\025.substrai"
    "t.ExpressionH\000B\n\n\010arg_type\"2\n\016FunctionOp"
    "tion\022\014\n\004name\030\001 \001(\t\022\022\n\npreference\030\002 \003(\t\"\267"
    "G\n\nExpression\0220\n\007literal\030\001 \001(\0132\035.substra"
    "it.Expression.LiteralH\000\0229\n\tselection\030\002 \001"
    "(\0132$.substrait.Expression.FieldReference"
    "H\000\022\?\n\017scalar_function\030\003 \001(\0132$.substrait."
    "Expression.ScalarFunctionH\000\022\?\n\017window_fu"
    "nction\030\005 \001(\0132$.substrait.Expression.Wind"
    "owFunctionH\000\022/\n\007if_then\030\006 \001(\0132\034.substrai"
    "t.Expression.IfThenH\000\022C\n\021switch_expressi"
    "on\030\007 \001(\0132&.substrait.Expression.SwitchEx"
    "pressionH\000\022@\n\020singular_or_list\030\010 \001(\0132$.s"
    "ubstrait.Expression.SingularOrListH\000\022:\n\r"
    "multi_or_list\030\t \001(\0132!.substrait.Expressi"
    "on.MultiOrListH\000\022*\n\004cast\030\013 \001(\0132\032.substra"
    "it.Expression.CastH\000\0222\n\010subquery\030\014 \001(\0132\036"
    ".substrait.Expression.SubqueryH\000\022.\n\006nest"
    "ed\030\r \001(\0132\034.substrait.Expression.NestedH\000"
    "\022.\n\004enum\030\n \001(\0132\032.substrait.Expression.En"
    "umB\002\030\001H\000\032r\n\004Enum\022\023\n\tspecified\030\001 \001(\tH\000\0227\n"
    "\013unspecified\030\002 \001(\0132 .substrait.Expressio"
    "n.Enum.EmptyH\000\032\013\n\005Empty:\002\030\001:\002\030\001B\013\n\tenum_"
    "kind\032\260\r\n\007Literal\022\021\n\007boolean\030\001 \001(\010H\000\022\014\n\002i"
    "8\030\002 \001(\005H\000\022\r\n\003i16\030\003 \001(\005H\000\022\r\n\003i32\030\005 \001(\005H\000\022"
    "\r\n\003i64\030\007 \001(\003H\000\022\016\n\004fp32\030\n \001(\002H\000\022\016\n\004fp64\030\013"
    " \001(\001H\000\022\020\n\006string\030\014 \001(\tH\000\022\020\n\006binary\030\r \001(\014"
    "H\000\022\027\n\ttimestamp\030\016 \001(\003B\002\030\001H\000\022\016\n\004date\030\020 \001("
    "\005H\000\022\016\n\004time\030\021 \001(\003H\000\022S\n\026interval_year_to_"
    "month\030\023 \001(\01321.substrait.Expression.Liter"
    "al.IntervalYearToMonthH\000\022S\n\026interval_day"
    "_to_second\030\024 \001(\01321.substrait.Expression."
    "Literal.IntervalDayToSecondH\000\022\024\n\nfixed_c"
    "har\030\025 \001(\tH\000\0229\n\010var_char\030\026 \001(\0132%.substrai"
    "t.Expression.Literal.VarCharH\000\022\026\n\014fixed_"
    "binary\030\027 \001(\014H\000\0228\n\007decimal\030\030 \001(\0132%.substr"
    "ait.Expression.Literal.DecimalH\000\022\035\n\023prec"
    "ision_timestamp\030\" \001(\004H\000\022 \n\026precision_tim"
    "estamp_tz\030# \001(\004H\000\0226\n\006struct\030\031 \001(\0132$.subs"
    "trait.Expression.Literal.StructH\000\0220\n\003map"
    "\030\032 \001(\0132!.substrait.Expression.Literal.Ma"
    "pH\000\022\032\n\014timestamp_tz\030\033 \001(\003B\002\030\001H\000\022\016\n\004uuid\030"
    "\034 \001(\014H\000\022\037\n\004null\030\035 \001(\0132\017.substrait.TypeH\000"
    "\0222\n\004list\030\036 \001(\0132\".substrait.Expression.Li"
    "teral.ListH\000\022*\n\nempty_list\030\037 \001(\0132\024.subst"
    "rait.Type.ListH\000\022(\n\tempty_map\030  \001(\0132\023.su"
    "bstrait.Type.MapH\000\022A\n\014user_defined\030! \001(\013"
    "2).substrait.Expression.Literal.UserDefi"
    "nedH\000\022\020\n\010nullable\0302 \001(\010\022 \n\030type_variatio"
    "n_reference\0303 \001(\r\032(\n\007VarChar\022\r\n\005value\030\001 "
    "\001(\t\022\016\n\006length\030\002 \001(\r\032:\n\007Decimal\022\r\n\005value\030"
    "\001 \001(\014\022\021\n\tprecision\030\002 \001(\005\022\r\n\005scale\030\003 \001(\005\032"
    "\253\001\n\003Map\022>\n\nkey_values\030\001 \003(\0132*.substrait."
    "Expression.Literal.Map.KeyValue\032d\n\010KeyVa"
    "lue\022*\n\003key\030\001 \001(\0132\035.substrait.Expression."
    "Literal\022,\n\005value\030\002 \001(\0132\035.substrait.Expre"
    "ssion.Literal\0324\n\023IntervalYearToMonth\022\r\n\005"
    "years\030\001 \001(\005\022\016\n\006months\030\002 \001(\005\032J\n\023IntervalD"
    "ayToSecond\022\014\n\004days\030\001 \001(\005\022\017\n\007seconds\030\002 \001("
    "\005\022\024\n\014microseconds\030\003 \001(\005\0327\n\006Struct\022-\n\006fie"
    "lds\030\001 \003(\0132\035.substrait.Expression.Literal"
    "\0325\n\004List\022-\n\006values\030\001 \003(\0132\035.substrait.Exp"
    "ression.Literal\032~\n\013UserDefined\022\026\n\016type_r"
    "eference\030\001 \001(\r\0222\n\017type_parameters\030\003 \003(\0132"
    "\031.substrait.Type.Parameter\022#\n\005value\030\002 \001("
    "\0132\024.google.protobuf.AnyB\016\n\014literal_type\032"
    "\343\003\n\006Nested\022\020\n\010nullable\030\001 \001(\010\022 \n\030type_var"
    "iation_reference\030\002 \001(\r\0225\n\006struct\030\003 \001(\0132#"
    ".substrait.Expression.Nested.StructH\000\0221\n"
    "\004list\030\004 \001(\0132!.substrait.Expression.Neste"
    "d.ListH\000\022/\n\003map\030\005 \001(\0132 .substrait.Expres"
    "sion.Nested.MapH\000\032\232\001\n\003Map\022=\n\nkey_values\030"
    "\001 \003(\0132).substrait.Expression.Nested.Map."
    "KeyValue\032T\n\010KeyValue\022\"\n\003key\030\001 \001(\0132\025.subs"
    "trait.Expression\022$\n\005value\030\002 \001(\0132\025.substr"
    "ait.Expression\032/\n\006Struct\022%\n\006fields\030\001 \003(\013"
    "2\025.substrait.Expression\032-\n\004List\022%\n\006value"
    "s\030\001 \003(\0132\025.substrait.ExpressionB\r\n\013nested"
    "_type\032\327\001\n\016ScalarFunction\022\032\n\022function_ref"
    "erence\030\001 \001(\r\022.\n\targuments\030\004 \003(\0132\033.substr"
    "ait.FunctionArgument\022*\n\007options\030\005 \003(\0132\031."
    "substrait.FunctionOption\022$\n\013output_type\030"
    "\003 \001(\0132\017.substrait.Type\022\'\n\004args\030\002 \003(\0132\025.s"
    "ubstrait.ExpressionB\002\030\001\032\321\010\n\016WindowFuncti"
    "on\022\032\n\022function_reference\030\001 \001(\r\022.\n\targume"
    "nts\030\t \003(\0132\033.substrait.FunctionArgument\022*"
    "\n\007options\030\013 \003(\0132\031.substrait.FunctionOpti"
    "on\022$\n\013output_type\030\007 \001(\0132\017.substrait.Type"
    "\022*\n\005phase\030\006 \001(\0162\033.substrait.AggregationP"
    "hase\022#\n\005sorts\030\003 \003(\0132\024.substrait.SortFiel"
    "d\022F\n\ninvocation\030\n \001(\01622.substrait.Aggreg"
    "ateFunction.AggregationInvocation\022)\n\npar"
    "titions\030\002 \003(\0132\025.substrait.Expression\022D\n\013"
    "bounds_type\030\014 \001(\0162/.substrait.Expression"
    ".WindowFunction.BoundsType\022\?\n\013lower_boun"
    "d\030\005 \001(\0132*.substrait.Expression.WindowFun"
    "ction.Bound\022\?\n\013upper_bound\030\004 \001(\0132*.subst"
    "rait.Expression.WindowFunction.Bound\022\'\n\004"
    "args\030\010 \003(\0132\025.substrait.ExpressionB\002\030\001\032\223\003"
    "\n\005Bound\022I\n\tpreceding\030\001 \001(\01324.substrait.E"
    "xpression.WindowFunction.Bound.Preceding"
    "H\000\022I\n\tfollowing\030\002 \001(\01324.substrait.Expres"
    "sion.WindowFunction.Bound.FollowingH\000\022L\n"
    "\013current_row\030\003 \001(\01325.substrait.Expressio"
    "n.WindowFunction.Bound.CurrentRowH\000\022I\n\tu"
    "nbounded\030\004 \001(\01324.substrait.Expression.Wi"
    "ndowFunction.Bound.UnboundedH\000\032\033\n\tPreced"
    "ing\022\016\n\006offset\030\001 \001(\003\032\033\n\tFollowing\022\016\n\006offs"
    "et\030\001 \001(\003\032\014\n\nCurrentRow\032\013\n\tUnboundedB\006\n\004k"
    "ind\"V\n\nBoundsType\022\033\n\027BOUNDS_TYPE_UNSPECI"
    "FIED\020\000\022\024\n\020BOUNDS_TYPE_ROWS\020\001\022\025\n\021BOUNDS_T"
    "YPE_RANGE\020\002\032\265\001\n\006IfThen\0222\n\003ifs\030\001 \003(\0132%.su"
    "bstrait.Expression.IfThen.IfClause\022#\n\004el"
    "se\030\002 \001(\0132\025.substrait.Expression\032R\n\010IfCla"
    "use\022!\n\002if\030\001 \001(\0132\025.substrait.Expression\022#"
    "\n\004then\030\002 \001(\0132\025.substrait.Expression\032\216\002\n\004"
    "Cast\022\035\n\004type\030\001 \001(\0132\017.substrait.Type\022$\n\005i"
    "nput\030\002 \001(\0132\025.substrait.Expression\022D\n\020fai"
    "lure_behavior\030\003 \001(\0162*.substrait.Expressi"
    "on.Cast.FailureBehavior\"{\n\017FailureBehavi"
    "or\022 \n\034FAILURE_BEHAVIOR_UNSPECIFIED\020\000\022 \n\034"
    "FAILURE_BEHAVIOR_RETURN_NULL\020\001\022$\n FAILUR"
    "E_BEHAVIOR_THROW_EXCEPTION\020\002\032\365\001\n\020SwitchE"
    "xpression\022$\n\005match\030\003 \001(\0132\025.substrait.Exp"
    "ression\022;\n\003ifs\030\001 \003(\0132..substrait.Express"
    "ion.SwitchExpression.IfValue\022#\n\004else\030\002 \001"
    "(\0132\025.substrait.Expression\032Y\n\007IfValue\022)\n\002"
    "if\030\001 \001(\0132\035.substrait.Expression.Literal\022"
    "#\n\004then\030\002 \001(\0132\025.substrait.Expression\032^\n\016"
    "SingularOrList\022$\n\005value\030\001 \001(\0132\025.substrai"
    "t.Expression\022&\n\007options\030\002 \003(\0132\025.substrai"
    "t.Expression\032\237\001\n\013MultiOrList\022$\n\005value\030\001 "
    "\003(\0132\025.substrait.Expression\0229\n\007options\030\002 "
    "\003(\0132(.substrait.Expression.MultiOrList.R"
    "ecord\032/\n\006Record\022%\n\006fields\030\001 \003(\0132\025.substr"
    "ait.Expression\032\243\003\n\020EmbeddedFunction\022(\n\ta"
    "rguments\030\001 \003(\0132\025.substrait.Expression\022$\n"
    "\013output_type\030\002 \001(\0132\017.substrait.Type\022]\n\026p"
    "ython_pickle_function\030\003 \001(\0132;.substrait."
    "Expression.EmbeddedFunction.PythonPickle"
    "FunctionH\000\022[\n\025web_assembly_function\030\004 \001("
    "\0132:.substrait.Expression.EmbeddedFunctio"
    "n.WebAssemblyFunctionH\000\032>\n\024PythonPickleF"
    "unction\022\020\n\010function\030\001 \001(\014\022\024\n\014prerequisit"
    "e\030\002 \003(\t\032;\n\023WebAssemblyFunction\022\016\n\006script"
    "\030\001 \001(\014\022\024\n\014prerequisite\030\002 \003(\tB\006\n\004kind\032\232\004\n"
    "\020ReferenceSegment\022@\n\007map_key\030\001 \001(\0132-.sub"
    "strait.Expression.ReferenceSegment.MapKe"
    "yH\000\022J\n\014struct_field\030\002 \001(\01322.substrait.Ex"
    "pression.ReferenceSegment.StructFieldH\000\022"
    "J\n\014list_element\030\003 \001(\01322.substrait.Expres"
    "sion.ReferenceSegment.ListElementH\000\032o\n\006M"
    "apKey\022.\n\007map_key\030\001 \001(\0132\035.substrait.Expre"
    "ssion.Literal\0225\n\005child\030\002 \001(\0132&.substrait"
    ".Expression.ReferenceSegment\032S\n\013StructFi"
    "eld\022\r\n\005field\030\001 \001(\005\0225\n\005child\030\002 \001(\0132&.subs"
    "trait.Expression.ReferenceSegment\032T\n\013Lis"
    "tElement\022\016\n\006offset\030\001 \001(\005\0225\n\005child\030\002 \001(\0132"
    "&.substrait.Expression.ReferenceSegmentB"
    "\020\n\016reference_type\032\360\t\n\016MaskExpression\022A\n\006"
    "select\030\001 \001(\01321.substrait.Expression.Mask"
    "Expression.StructSelect\022 \n\030maintain_sing"
    "ular_struct\030\002 \001(\010\032\325\001\n\006Select\022C\n\006struct\030\001"
    " \001(\01321.substrait.Expression.MaskExpressi"
    "on.StructSelectH\000\022\?\n\004list\030\002 \001(\0132/.substr"
    "ait.Expression.MaskExpression.ListSelect"
    "H\000\022=\n\003map\030\003 \001(\0132..substrait.Expression.M"
    "askExpression.MapSelectH\000B\006\n\004type\032U\n\014Str"
    "uctSelect\022E\n\014struct_items\030\001 \003(\0132/.substr"
    "ait.Expression.MaskExpression.StructItem"
    "\032W\n\nStructItem\022\r\n\005field\030\001 \001(\005\022:\n\005child\030\002"
    " \001(\0132+.substrait.Expression.MaskExpressi"
    "on.Select\032\264\003\n\nListSelect\022Q\n\tselection\030\001 "
    "\003(\0132>.substrait.Expression.MaskExpressio"
    "n.ListSelect.ListSelectItem\022:\n\005child\030\002 \001"
    "(\0132+.substrait.Expression.MaskExpression"
    ".Select\032\226\002\n\016ListSelectItem\022Z\n\004item\030\001 \001(\013"
    "2J.substrait.Expression.MaskExpression.L"
    "istSelect.ListSelectItem.ListElementH\000\022Y"
    "\n\005slice\030\002 \001(\0132H.substrait.Expression.Mas"
    "kExpression.ListSelect.ListSelectItem.Li"
    "stSliceH\000\032\034\n\013ListElement\022\r\n\005field\030\001 \001(\005\032"
    "\'\n\tListSlice\022\r\n\005start\030\001 \001(\005\022\013\n\003end\030\002 \001(\005"
    "B\006\n\004type\032\271\002\n\tMapSelect\022D\n\003key\030\001 \001(\01325.su"
    "bstrait.Expression.MaskExpression.MapSel"
    "ect.MapKeyH\000\022U\n\nexpression\030\002 \001(\0132\?.subst"
    "rait.Expression.MaskExpression.MapSelect"
    ".MapKeyExpressionH\000\022:\n\005child\030\003 \001(\0132+.sub"
    "strait.Expression.MaskExpression.Select\032"
    "\031\n\006MapKey\022\017\n\007map_key\030\001 \001(\t\032.\n\020MapKeyExpr"
    "ession\022\032\n\022map_key_expression\030\001 \001(\tB\010\n\006se"
    "lect\032\266\003\n\016FieldReference\022B\n\020direct_refere"
    "nce\030\001 \001(\0132&.substrait.Expression.Referen"
    "ceSegmentH\000\022@\n\020masked_reference\030\002 \001(\0132$."
    "substrait.Expression.MaskExpressionH\000\022+\n"
    "\nexpression\030\003 \001(\0132\025.substrait.Expression"
    "H\001\022L\n\016root_reference\030\004 \001(\01322.substrait.E"
    "xpression.FieldReference.RootReferenceH\001"
    "\022N\n\017outer_reference\030\005 \001(\01323.substrait.Ex"
    "pression.FieldReference.OuterReferenceH\001"
    "\032\017\n\rRootReference\032#\n\016OuterReference\022\021\n\ts"
    "teps_out\030\001 \001(\rB\020\n\016reference_typeB\013\n\troot"
    "_type\032\214\t\n\010Subquery\0227\n\006scalar\030\001 \001(\0132%.sub"
    "strait.Expression.Subquery.ScalarH\000\022B\n\014i"
    "n_predicate\030\002 \001(\0132*.substrait.Expression"
    ".Subquery.InPredicateH\000\022D\n\rset_predicate"
    "\030\003 \001(\0132+.substrait.Expression.Subquery.S"
    "etPredicateH\000\022F\n\016set_comparison\030\004 \001(\0132,."
    "substrait.Expression.Subquery.SetCompari"
    "sonH\000\032\'\n\006Scalar\022\035\n\005input\030\001 \001(\0132\016.substra"
    "it.Rel\032W\n\013InPredicate\022&\n\007needles\030\001 \003(\0132\025"
    ".substrait.Expression\022 \n\010haystack\030\002 \001(\0132"
    "\016.substrait.Rel\032\334\001\n\014SetPredicate\022M\n\014pred"
    "icate_op\030\001 \001(\01627.substrait.Expression.Su"
    "bquery.SetPredicate.PredicateOp\022\036\n\006tuple"
    "s\030\002 \001(\0132\016.substrait.Rel\"]\n\013PredicateOp\022\034"
    "\n\030PREDICATE_OP_UNSPECIFIED\020\000\022\027\n\023PREDICAT"
    "E_OP_EXISTS\020\001\022\027\n\023PREDICATE_OP_UNIQUE\020\002\032\202"
    "\004\n\rSetComparison\022N\n\014reduction_op\030\001 \001(\01628"
    ".substrait.Expression.Subquery.SetCompar"
    "ison.ReductionOp\022P\n\rcomparison_op\030\002 \001(\0162"
    "9.substrait.Expression.Subquery.SetCompa"
    "rison.ComparisonOp\022#\n\004left\030\003 \001(\0132\025.subst"
    "rait.Expression\022\035\n\005right\030\004 \001(\0132\016.substra"
    "it.Rel\"\261\001\n\014ComparisonOp\022\035\n\031COMPARISON_OP"
    "_UNSPECIFIED\020\000\022\024\n\020COMPARISON_OP_EQ\020\001\022\024\n\020"
    "COMPARISON_OP_NE\020\002\022\024\n\020COMPARISON_OP_LT\020\003"
    "\022\024\n\020COMPARISON_OP_GT\020\004\022\024\n\020COMPARISON_OP_"
    "LE\020\005\022\024\n\020COMPARISON_OP_GE\020\006\"W\n\013ReductionO"
    "p\022\034\n\030REDUCTION_OP_UNSPECIFIED\020\000\022\024\n\020REDUC"
    "TION_OP_ANY\020\001\022\024\n\020REDUCTION_OP_ALL\020\002B\017\n\rs"
    "ubquery_typeB\n\n\010rex_type\"\377\002\n\tSortField\022#"
    "\n\004expr\030\001 \001(\0132\025.substrait.Expression\0227\n\td"
    "irection\030\002 \001(\0162\".substrait.SortField.Sor"
    "tDirectionH\000\022\'\n\035comparison_function_refe"
    "rence\030\003 \001(\rH\000\"\335\001\n\rSortDirection\022\036\n\032SORT_"
    "DIRECTION_UNSPECIFIED\020\000\022\"\n\036SORT_DIRECTIO"
    "N_ASC_NULLS_FIRST\020\001\022!\n\035SORT_DIRECTION_AS"
    "C_NULLS_LAST\020\002\022#\n\037SORT_DIRECTION_DESC_NU"
    "LLS_FIRST\020\003\022\"\n\036SORT_DIRECTION_DESC_NULLS"
    "_LAST\020\004\022\034\n\030SORT_DIRECTION_CLUSTERED\020\005B\013\n"
    "\tsort_kind\"\372\003\n\021AggregateFunction\022\032\n\022func"
    "tion_reference\030\001 \001(\r\022.\n\targuments\030\007 \003(\0132"
    "\033.substrait.FunctionArgument\022*\n\007options\030"
    "\010 \003(\0132\031.substrait.FunctionOption\022$\n\013outp"
    "ut_type\030\005 \001(\0132\017.substrait.Type\022*\n\005phase\030"
    "\004 \001(\0162\033.substrait.AggregationPhase\022#\n\005so"
    "rts\030\003 \003(\0132\024.substrait.SortField\022F\n\ninvoc"
    "ation\030\006 \001(\01622.substrait.AggregateFunctio"
    "n.AggregationInvocation\022\'\n\004args\030\002 \003(\0132\025."
    "substrait.ExpressionB\002\030\001\"\204\001\n\025Aggregation"
    "Invocation\022&\n\"AGGREGATION_INVOCATION_UNS"
    "PECIFIED\020\000\022\036\n\032AGGREGATION_INVOCATION_ALL"
    "\020\001\022#\n\037AGGREGATION_INVOCATION_DISTINCT\020\002\""
    "\'\n\014ReferenceRel\022\027\n\017subtree_ordinal\030\001 \001(\005"
    "*\357\001\n\020AggregationPhase\022!\n\035AGGREGATION_PHA"
    "SE_UNSPECIFIED\020\000\022-\n)AGGREGATION_PHASE_IN"
    "ITIAL_TO_INTERMEDIATE\020\001\0222\n.AGGREGATION_P"
    "HASE_INTERMEDIATE_TO_INTERMEDIATE\020\002\022\'\n#A"
    "GGREGATION_PHASE_INITIAL_TO_RESULT\020\003\022,\n("
    "AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT"
    "\020\004BW\n\022io.substrait.protoP\001Z*github.com/s"
    "ubstrait-io/substrait-go/proto\252\002\022Substra"
    "it.Protobufb\006proto3"
};
static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL const
    descriptor_table_substrait_2falgebra_2eproto_deps[3] = {
        &::descriptor_table_google_2fprotobuf_2fany_2eproto,
        &::descriptor_table_substrait_2fextensions_2fextensions_2eproto,
        &::descriptor_table_substrait_2ftype_2eproto,
};
static ::absl::once_flag descriptor_table_substrait_2falgebra_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_substrait_2falgebra_2eproto = {
    false,
    false,
    22419,
    descriptor_table_protodef_substrait_2falgebra_2eproto,
    "substrait/algebra.proto",
    &descriptor_table_substrait_2falgebra_2eproto_once,
    descriptor_table_substrait_2falgebra_2eproto_deps,
    3,
    116,
    schemas,
    file_message_globals,
    TableStruct_substrait_2falgebra_2eproto::offsets,
    file_level_enum_descriptors_substrait_2falgebra_2eproto,
    file_level_service_descriptors_substrait_2falgebra_2eproto,
};
namespace substrait {
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
JoinRel_JoinType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[0];
}
PROTOBUF_CONSTINIT const uint32_t JoinRel_JoinType_internal_data_[] = {
    524288u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
SetRel_SetOp_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[1];
}
PROTOBUF_CONSTINIT const uint32_t SetRel_SetOp_internal_data_[] = {
    458752u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
DdlRel_DdlObject_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[2];
}
PROTOBUF_CONSTINIT const uint32_t DdlRel_DdlObject_internal_data_[] = {
    196608u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
DdlRel_DdlOp_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[3];
}
PROTOBUF_CONSTINIT const uint32_t DdlRel_DdlOp_internal_data_[] = {
    393216u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
WriteRel_WriteOp_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[4];
}
PROTOBUF_CONSTINIT const uint32_t WriteRel_WriteOp_internal_data_[] = {
    327680u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
WriteRel_OutputMode_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[5];
}
PROTOBUF_CONSTINIT const uint32_t WriteRel_OutputMode_internal_data_[] = {
    196608u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
ComparisonJoinKey_SimpleComparisonType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[6];
}
PROTOBUF_CONSTINIT const uint32_t ComparisonJoinKey_SimpleComparisonType_internal_data_[] = {
    262144u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
HashJoinRel_JoinType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[7];
}
PROTOBUF_CONSTINIT const uint32_t HashJoinRel_JoinType_internal_data_[] = {
    589824u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
MergeJoinRel_JoinType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[8];
}
PROTOBUF_CONSTINIT const uint32_t MergeJoinRel_JoinType_internal_data_[] = {
    589824u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
NestedLoopJoinRel_JoinType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[9];
}
PROTOBUF_CONSTINIT const uint32_t NestedLoopJoinRel_JoinType_internal_data_[] = {
    589824u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Expression_WindowFunction_BoundsType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[10];
}
PROTOBUF_CONSTINIT const uint32_t Expression_WindowFunction_BoundsType_internal_data_[] = {
    196608u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Expression_Cast_FailureBehavior_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[11];
}
PROTOBUF_CONSTINIT const uint32_t Expression_Cast_FailureBehavior_internal_data_[] = {
    196608u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Expression_Subquery_SetPredicate_PredicateOp_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[12];
}
PROTOBUF_CONSTINIT const uint32_t Expression_Subquery_SetPredicate_PredicateOp_internal_data_[] = {
    196608u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Expression_Subquery_SetComparison_ComparisonOp_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[13];
}
PROTOBUF_CONSTINIT const uint32_t Expression_Subquery_SetComparison_ComparisonOp_internal_data_[] = {
    458752u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Expression_Subquery_SetComparison_ReductionOp_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[14];
}
PROTOBUF_CONSTINIT const uint32_t Expression_Subquery_SetComparison_ReductionOp_internal_data_[] = {
    196608u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
SortField_SortDirection_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[15];
}
PROTOBUF_CONSTINIT const uint32_t SortField_SortDirection_internal_data_[] = {
    393216u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
AggregateFunction_AggregationInvocation_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[16];
}
PROTOBUF_CONSTINIT const uint32_t AggregateFunction_AggregationInvocation_internal_data_[] = {
    196608u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
AggregationPhase_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_substrait_2falgebra_2eproto);
  return file_level_enum_descriptors_substrait_2falgebra_2eproto[17];
}
PROTOBUF_CONSTINIT const uint32_t AggregationPhase_internal_data_[] = {
    327680u, 0u, };
// ===================================================================

RelCommon_Direct::RelCommon_Direct(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, RelCommon_Direct_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:substrait.RelCommon.Direct)
}
RelCommon_Direct::RelCommon_Direct(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RelCommon_Direct& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, RelCommon_Direct_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RelCommon_Direct* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:substrait.RelCommon.Direct)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RelCommon_Direct_class_data_ =
        RelCommon_Direct::InternalGenerateClassData_(RelCommon_Direct_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon_Direct::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_Direct_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RelCommon_Direct_class_data_.tc_table);
  return RelCommon_Direct_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon_Direct::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_Direct_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RelCommon_Direct_globals_));
  return RelCommon_Direct_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RelCommon_Direct::ParseTableT_
    RelCommon_Direct::_table_ =
        RelCommon_Direct::InternalGenerateParseTable_(RelCommon_Direct_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata RelCommon_Direct::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RelCommon_Emit* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void RelCommon_Emit::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
RelCommon_Emit::~RelCommon_Emit() {
  // @@protoc_insertion_point(destructor:substrait.RelCommon.Emit)
  SharedDtor(*this);
}
inline void RelCommon_Emit::SharedDtor(MessageLite& self) {
  RelCommon_Emit& this_ = static_cast<RelCommon_Emit&>(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 RelCommon_Emit_class_data_ =
        RelCommon_Emit::InternalGenerateClassData_(RelCommon_Emit_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon_Emit::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_Emit_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RelCommon_Emit_class_data_.tc_table);
  return RelCommon_Emit_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon_Emit::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_Emit_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RelCommon_Emit_globals_));
  return RelCommon_Emit_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RelCommon_Emit::ParseTableT_
    RelCommon_Emit::_table_ =
        RelCommon_Emit::InternalGenerateParseTable_(RelCommon_Emit_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RelCommon_Emit::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.RelCommon.Emit)
  ::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_.output_mapping_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated int32 output_mapping = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      int byte_size = this_._impl_._output_mapping_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteInt32Packed(
            1, this_._internal_output_mapping(), byte_size, 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.RelCommon.Emit)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t RelCommon_Emit::ByteSizeLong(const MessageLite& base) {
  const RelCommon_Emit& this_ = static_cast<const RelCommon_Emit&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t RelCommon_Emit::ByteSizeLong() const {
  const RelCommon_Emit& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.RelCommon.Emit)
  ::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_);
   {
    // repeated int32 output_mapping = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          ::_pbi::WireFormatLite::Int32SizeWithPackedTagSize(
              this_._internal_output_mapping(), 1,
              this_._impl_._output_mapping_cached_byte_size_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_output_mapping()->MergeFrom(from._internal_output_mapping());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void RelCommon_Emit::InternalSwap(RelCommon_Emit* 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_.output_mapping_.InternalSwap(&other->_impl_.output_mapping_);
}

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

void RelCommon_Hint_Stats::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
RelCommon_Hint_Stats::RelCommon_Hint_Stats(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RelCommon_Hint_Stats_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.RelCommon.Hint.Stats)
}
PROTOBUF_NDEBUG_INLINE RelCommon_Hint_Stats::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::RelCommon_Hint_Stats& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RelCommon_Hint_Stats* 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_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, row_count_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, row_count_),
           offsetof(Impl_, record_size_) -
               offsetof(Impl_, row_count_) +
               sizeof(Impl_::record_size_));

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RelCommon_Hint_Stats_class_data_ =
        RelCommon_Hint_Stats::InternalGenerateClassData_(RelCommon_Hint_Stats_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon_Hint_Stats::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_Hint_Stats_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RelCommon_Hint_Stats_class_data_.tc_table);
  return RelCommon_Hint_Stats_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon_Hint_Stats::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_Hint_Stats_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RelCommon_Hint_Stats_globals_));
  return RelCommon_Hint_Stats_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RelCommon_Hint_Stats::ParseTableT_
    RelCommon_Hint_Stats::_table_ =
        RelCommon_Hint_Stats::InternalGenerateParseTable_(RelCommon_Hint_Stats_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RelCommon_Hint_Stats::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.RelCommon.Hint.Stats)
  ::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_.advanced_extension_ != nullptr);
    _impl_.advanced_extension_->Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    ::memset(&_impl_.row_count_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.record_size_) -
        reinterpret_cast<char*>(&_impl_.row_count_)) + sizeof(_impl_.record_size_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // double row_count = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (::absl::bit_cast<::uint64_t>(this_._internal_row_count()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteDoubleToArray(
          1, this_._internal_row_count(), target);
    }
  }

  // double record_size = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (::absl::bit_cast<::uint64_t>(this_._internal_record_size()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteDoubleToArray(
          2, this_._internal_record_size(), target);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.RelCommon.Hint.Stats)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t RelCommon_Hint_Stats::ByteSizeLong(const MessageLite& base) {
  const RelCommon_Hint_Stats& this_ = static_cast<const RelCommon_Hint_Stats&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t RelCommon_Hint_Stats::ByteSizeLong() const {
  const RelCommon_Hint_Stats& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.RelCommon.Hint.Stats)
  ::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.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
    // double row_count = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (::absl::bit_cast<::uint64_t>(this_._internal_row_count()) != 0) {
        total_size += 9;
      }
    }
    // double record_size = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (::absl::bit_cast<::uint64_t>(this_._internal_record_size()) != 0) {
        total_size += 9;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void RelCommon_Hint_Stats::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<RelCommon_Hint_Stats*>(&to_msg);
  auto& from = static_cast<const RelCommon_Hint_Stats&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.RelCommon.Hint.Stats)
  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_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (::absl::bit_cast<::uint64_t>(from._internal_row_count()) != 0) {
        _this->_impl_.row_count_ = from._impl_.row_count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (::absl::bit_cast<::uint64_t>(from._internal_record_size()) != 0) {
        _this->_impl_.record_size_ = from._impl_.record_size_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void RelCommon_Hint_Stats::InternalSwap(RelCommon_Hint_Stats* 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(RelCommon_Hint_Stats, _impl_.record_size_)
      + sizeof(RelCommon_Hint_Stats::_impl_.record_size_)
      - PROTOBUF_FIELD_OFFSET(RelCommon_Hint_Stats, _impl_.advanced_extension_)>(
          reinterpret_cast<char*>(&_impl_.advanced_extension_),
          reinterpret_cast<char*>(&other->_impl_.advanced_extension_));
}

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

void RelCommon_Hint_RuntimeConstraint::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
RelCommon_Hint_RuntimeConstraint::RelCommon_Hint_RuntimeConstraint(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RelCommon_Hint_RuntimeConstraint_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.RelCommon.Hint.RuntimeConstraint)
}
PROTOBUF_NDEBUG_INLINE RelCommon_Hint_RuntimeConstraint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::RelCommon_Hint_RuntimeConstraint& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RelCommon_Hint_RuntimeConstraint* 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_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RelCommon_Hint_RuntimeConstraint_class_data_ =
        RelCommon_Hint_RuntimeConstraint::InternalGenerateClassData_(RelCommon_Hint_RuntimeConstraint_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon_Hint_RuntimeConstraint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_Hint_RuntimeConstraint_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RelCommon_Hint_RuntimeConstraint_class_data_.tc_table);
  return RelCommon_Hint_RuntimeConstraint_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon_Hint_RuntimeConstraint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_Hint_RuntimeConstraint_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RelCommon_Hint_RuntimeConstraint_globals_));
  return RelCommon_Hint_RuntimeConstraint_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RelCommon_Hint_RuntimeConstraint::ParseTableT_
    RelCommon_Hint_RuntimeConstraint::_table_ =
        RelCommon_Hint_RuntimeConstraint::InternalGenerateParseTable_(RelCommon_Hint_RuntimeConstraint_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RelCommon_Hint_RuntimeConstraint::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.RelCommon.Hint.RuntimeConstraint)
  ::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_.advanced_extension_ != nullptr);
    _impl_.advanced_extension_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.RelCommon.Hint.RuntimeConstraint)
  return target;
}

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

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

   {
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
    if (_this->_impl_.advanced_extension_ == nullptr) {
      _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
    } else {
      _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

void RelCommon_Hint::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
RelCommon_Hint::RelCommon_Hint(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RelCommon_Hint_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.RelCommon.Hint)
}
PROTOBUF_NDEBUG_INLINE RelCommon_Hint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::RelCommon_Hint& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RelCommon_Hint* 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_.stats_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.stats_)
                : nullptr;
  _impl_.constraint_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.constraint_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RelCommon_Hint_class_data_ =
        RelCommon_Hint::InternalGenerateClassData_(RelCommon_Hint_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon_Hint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_Hint_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RelCommon_Hint_class_data_.tc_table);
  return RelCommon_Hint_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon_Hint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_Hint_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RelCommon_Hint_globals_));
  return RelCommon_Hint_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RelCommon_Hint::ParseTableT_
    RelCommon_Hint::_table_ =
        RelCommon_Hint::InternalGenerateParseTable_(RelCommon_Hint_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RelCommon_Hint::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.RelCommon.Hint)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.stats_ != nullptr);
      _impl_.stats_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.constraint_ != nullptr);
      _impl_.constraint_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.RelCommon.Hint.RuntimeConstraint constraint = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.constraint_, this_._impl_.constraint_->GetCachedSize(), target,
        stream);
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.RelCommon.Hint)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t RelCommon_Hint::ByteSizeLong(const MessageLite& base) {
  const RelCommon_Hint& this_ = static_cast<const RelCommon_Hint&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t RelCommon_Hint::ByteSizeLong() const {
  const RelCommon_Hint& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.RelCommon.Hint)
  ::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.RelCommon.Hint.Stats stats = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.stats_);
    }
    // .substrait.RelCommon.Hint.RuntimeConstraint constraint = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.constraint_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void RelCommon_Hint::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<RelCommon_Hint*>(&to_msg);
  auto& from = static_cast<const RelCommon_Hint&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.RelCommon.Hint)
  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_.stats_ != nullptr);
      if (_this->_impl_.stats_ == nullptr) {
        _this->_impl_.stats_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.stats_);
      } else {
        _this->_impl_.stats_->MergeFrom(*from._impl_.stats_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.constraint_ != nullptr);
      if (_this->_impl_.constraint_ == nullptr) {
        _this->_impl_.constraint_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.constraint_);
      } else {
        _this->_impl_.constraint_->MergeFrom(*from._impl_.constraint_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void RelCommon_Hint::InternalSwap(RelCommon_Hint* 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(RelCommon_Hint, _impl_.advanced_extension_)
      + sizeof(RelCommon_Hint::_impl_.advanced_extension_)
      - PROTOBUF_FIELD_OFFSET(RelCommon_Hint, _impl_.stats_)>(
          reinterpret_cast<char*>(&_impl_.stats_),
          reinterpret_cast<char*>(&other->_impl_.stats_));
}

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

void RelCommon::set_allocated_direct(::substrait::RelCommon_Direct* PROTOBUF_NULLABLE direct) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_emit_kind();
  if (direct) {
    ::google::protobuf::Arena* submessage_arena = direct->GetArena();
    if (message_arena != submessage_arena) {
      direct = ::google::protobuf::internal::GetOwnedMessage(message_arena, direct, submessage_arena);
    }
    set_has_direct();
    _impl_.emit_kind_.direct_ = direct;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.RelCommon.direct)
}
void RelCommon::set_allocated_emit(::substrait::RelCommon_Emit* PROTOBUF_NULLABLE emit) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_emit_kind();
  if (emit) {
    ::google::protobuf::Arena* submessage_arena = emit->GetArena();
    if (message_arena != submessage_arena) {
      emit = ::google::protobuf::internal::GetOwnedMessage(message_arena, emit, submessage_arena);
    }
    set_has_emit();
    _impl_.emit_kind_.emit_ = emit;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.RelCommon.emit)
}
void RelCommon::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
RelCommon::RelCommon(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RelCommon_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.RelCommon)
}
PROTOBUF_NDEBUG_INLINE RelCommon::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::RelCommon& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        emit_kind_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RelCommon* 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_.hint_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hint_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;
  switch (emit_kind_case()) {
    case EMIT_KIND_NOT_SET:
      break;
      case kDirect:
        _impl_.emit_kind_.direct_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.emit_kind_.direct_);
        break;
      case kEmit:
        _impl_.emit_kind_.emit_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.emit_kind_.emit_);
        break;
  }

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

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

void RelCommon::clear_emit_kind() {
// @@protoc_insertion_point(one_of_clear_start:substrait.RelCommon)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (emit_kind_case()) {
    case kDirect: {
      if (GetArena() == nullptr) {
        delete _impl_.emit_kind_.direct_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.emit_kind_.direct_);
      }
      break;
    }
    case kEmit: {
      if (GetArena() == nullptr) {
        delete _impl_.emit_kind_.emit_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.emit_kind_.emit_);
      }
      break;
    }
    case EMIT_KIND_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = EMIT_KIND_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RelCommon_class_data_ =
        RelCommon::InternalGenerateClassData_(RelCommon_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RelCommon_class_data_.tc_table);
  return RelCommon_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelCommon::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelCommon_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RelCommon_globals_));
  return RelCommon_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RelCommon::ParseTableT_
    RelCommon::_table_ =
        RelCommon::InternalGenerateParseTable_(RelCommon_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RelCommon::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.RelCommon)
  ::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_.hint_ != nullptr);
      _impl_.hint_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  clear_emit_kind();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.emit_kind_case()) {
    case kDirect: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.emit_kind_.direct_, this_._impl_.emit_kind_.direct_->GetCachedSize(), target,
          stream);
      break;
    }
    case kEmit: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.emit_kind_.emit_, this_._impl_.emit_kind_.emit_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.RelCommon.Hint hint = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.hint_, this_._impl_.hint_->GetCachedSize(), target,
        stream);
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.RelCommon)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t RelCommon::ByteSizeLong(const MessageLite& base) {
  const RelCommon& this_ = static_cast<const RelCommon&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t RelCommon::ByteSizeLong() const {
  const RelCommon& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.RelCommon)
  ::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)) {
    // .substrait.RelCommon.Hint hint = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.hint_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  switch (this_.emit_kind_case()) {
    // .substrait.RelCommon.Direct direct = 1;
    case kDirect: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.emit_kind_.direct_);
      break;
    }
    // .substrait.RelCommon.Emit emit = 2;
    case kEmit: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.emit_kind_.emit_);
      break;
    }
    case EMIT_KIND_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void RelCommon::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<RelCommon*>(&to_msg);
  auto& from = static_cast<const RelCommon&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.RelCommon)
  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)) {
      ABSL_DCHECK(from._impl_.hint_ != nullptr);
      if (_this->_impl_.hint_ == nullptr) {
        _this->_impl_.hint_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hint_);
      } else {
        _this->_impl_.hint_->MergeFrom(*from._impl_.hint_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= 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_emit_kind();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kDirect: {
        if (oneof_needs_init) {
          _this->_impl_.emit_kind_.direct_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.emit_kind_.direct_);
        } else {
          _this->_impl_.emit_kind_.direct_->MergeFrom(*from._impl_.emit_kind_.direct_);
        }
        break;
      }
      case kEmit: {
        if (oneof_needs_init) {
          _this->_impl_.emit_kind_.emit_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.emit_kind_.emit_);
        } else {
          _this->_impl_.emit_kind_.emit_->MergeFrom(*from._impl_.emit_kind_.emit_);
        }
        break;
      }
      case EMIT_KIND_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void RelCommon::InternalSwap(RelCommon* 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(RelCommon, _impl_.advanced_extension_)
      + sizeof(RelCommon::_impl_.advanced_extension_)
      - PROTOBUF_FIELD_OFFSET(RelCommon, _impl_.hint_)>(
          reinterpret_cast<char*>(&_impl_.hint_),
          reinterpret_cast<char*>(&other->_impl_.hint_));
  swap(_impl_.emit_kind_, other->_impl_.emit_kind_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

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

void ReadRel_NamedTable::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
ReadRel_NamedTable::ReadRel_NamedTable(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReadRel_NamedTable_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ReadRel.NamedTable)
}
PROTOBUF_NDEBUG_INLINE ReadRel_NamedTable::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ReadRel_NamedTable& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        names_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ReadRel_NamedTable,
              PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_NamedTable, _impl_.names_)>()
          , from.names_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReadRel_NamedTable* 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_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:substrait.ReadRel.NamedTable)
}
PROTOBUF_NDEBUG_INLINE ReadRel_NamedTable::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::ReadRel_NamedTable,
            PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_NamedTable, _impl_.names_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReadRel_NamedTable_class_data_ =
        ReadRel_NamedTable::InternalGenerateClassData_(ReadRel_NamedTable_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_NamedTable::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_NamedTable_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReadRel_NamedTable_class_data_.tc_table);
  return ReadRel_NamedTable_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_NamedTable::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_NamedTable_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReadRel_NamedTable_globals_));
  return ReadRel_NamedTable_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReadRel_NamedTable::ParseTableT_
    ReadRel_NamedTable::_table_ =
        ReadRel_NamedTable::InternalGenerateParseTable_(ReadRel_NamedTable_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ReadRel_NamedTable::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ReadRel.NamedTable)
  ::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_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ReadRel_NamedTable::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ReadRel_NamedTable& this_ = static_cast<const ReadRel_NamedTable&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ReadRel_NamedTable::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ReadRel_NamedTable& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.ReadRel.NamedTable)
  ::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.ReadRel.NamedTable.names");
      target = stream->WriteString(1, s, target);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.ReadRel.NamedTable)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ReadRel_NamedTable::ByteSizeLong(const MessageLite& base) {
  const ReadRel_NamedTable& this_ = static_cast<const ReadRel_NamedTable&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ReadRel_NamedTable::ByteSizeLong() const {
  const ReadRel_NamedTable& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ReadRel.NamedTable)
  ::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.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ReadRel_NamedTable::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ReadRel_NamedTable*>(&to_msg);
  auto& from = static_cast<const ReadRel_NamedTable&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ReadRel.NamedTable)
  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_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ReadRel_NamedTable::InternalSwap(ReadRel_NamedTable* 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_.advanced_extension_, other->_impl_.advanced_extension_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReadRel_VirtualTable* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void ReadRel_VirtualTable::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ReadRel_VirtualTable::~ReadRel_VirtualTable() {
  // @@protoc_insertion_point(destructor:substrait.ReadRel.VirtualTable)
  SharedDtor(*this);
}
inline void ReadRel_VirtualTable::SharedDtor(MessageLite& self) {
  ReadRel_VirtualTable& this_ = static_cast<ReadRel_VirtualTable&>(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 ReadRel_VirtualTable_class_data_ =
        ReadRel_VirtualTable::InternalGenerateClassData_(ReadRel_VirtualTable_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_VirtualTable::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_VirtualTable_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReadRel_VirtualTable_class_data_.tc_table);
  return ReadRel_VirtualTable_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_VirtualTable::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_VirtualTable_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReadRel_VirtualTable_globals_));
  return ReadRel_VirtualTable_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReadRel_VirtualTable::ParseTableT_
    ReadRel_VirtualTable::_table_ =
        ReadRel_VirtualTable::InternalGenerateParseTable_(ReadRel_VirtualTable_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ReadRel_VirtualTable::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ReadRel.VirtualTable)
  ::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_.values_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression.Literal.Struct values = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_values_size());
         i < n; i++) {
      const auto& repfield = this_._internal_values().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.ReadRel.VirtualTable)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ReadRel_VirtualTable::ByteSizeLong(const MessageLite& base) {
  const ReadRel_VirtualTable& this_ = static_cast<const ReadRel_VirtualTable&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ReadRel_VirtualTable::ByteSizeLong() const {
  const ReadRel_VirtualTable& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ReadRel.VirtualTable)
  ::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_);
   {
    // repeated .substrait.Expression.Literal.Struct values = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_values_size();
      for (const auto& msg : this_._internal_values()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_values()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_values());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ReadRel_VirtualTable::InternalSwap(ReadRel_VirtualTable* 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_.values_.InternalSwap(&other->_impl_.values_);
}

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

void ReadRel_ExtensionTable::clear_detail() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.detail_ != nullptr) _impl_.detail_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
ReadRel_ExtensionTable::ReadRel_ExtensionTable(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReadRel_ExtensionTable_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ReadRel.ExtensionTable)
}
PROTOBUF_NDEBUG_INLINE ReadRel_ExtensionTable::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ReadRel_ExtensionTable& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReadRel_ExtensionTable* 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_.detail_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detail_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReadRel_ExtensionTable_class_data_ =
        ReadRel_ExtensionTable::InternalGenerateClassData_(ReadRel_ExtensionTable_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_ExtensionTable::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_ExtensionTable_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReadRel_ExtensionTable_class_data_.tc_table);
  return ReadRel_ExtensionTable_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_ExtensionTable::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_ExtensionTable_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReadRel_ExtensionTable_globals_));
  return ReadRel_ExtensionTable_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReadRel_ExtensionTable::ParseTableT_
    ReadRel_ExtensionTable::_table_ =
        ReadRel_ExtensionTable::InternalGenerateParseTable_(ReadRel_ExtensionTable_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ReadRel_ExtensionTable::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ReadRel.ExtensionTable)
  ::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_.detail_ != nullptr);
    _impl_.detail_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any detail = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.detail_, this_._impl_.detail_->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.ReadRel.ExtensionTable)
  return target;
}

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

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

   {
    // .google.protobuf.Any detail = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.detail_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(from._impl_.detail_ != nullptr);
    if (_this->_impl_.detail_ == nullptr) {
      _this->_impl_.detail_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detail_);
    } else {
      _this->_impl_.detail_->MergeFrom(*from._impl_.detail_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions)
}
ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_class_data_ =
        ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::InternalGenerateClassData_(ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_class_data_.tc_table);
  return ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_globals_));
  return ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::ParseTableT_
    ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::_table_ =
        ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::InternalGenerateParseTable_(ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions)
}
ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_class_data_ =
        ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::InternalGenerateClassData_(ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_class_data_.tc_table);
  return ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_globals_));
  return ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::ParseTableT_
    ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::_table_ =
        ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::InternalGenerateParseTable_(ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::ReadRel_LocalFiles_FileOrFiles_OrcReadOptions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptions)
}
ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::ReadRel_LocalFiles_FileOrFiles_OrcReadOptions(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ReadRel_LocalFiles_FileOrFiles_OrcReadOptions& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReadRel_LocalFiles_FileOrFiles_OrcReadOptions* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptions)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_class_data_ =
        ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::InternalGenerateClassData_(ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_class_data_.tc_table);
  return ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_globals_));
  return ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::ParseTableT_
    ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::_table_ =
        ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::InternalGenerateParseTable_(ReadRel_LocalFiles_FileOrFiles_OrcReadOptions_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata ReadRel_LocalFiles_FileOrFiles_OrcReadOptions::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:substrait.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions)
}
ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:substrait.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_class_data_ =
        ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::InternalGenerateClassData_(ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_class_data_.tc_table);
  return ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_globals_));
  return ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::ParseTableT_
    ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::_table_ =
        ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::InternalGenerateParseTable_(ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void ReadRel_LocalFiles_FileOrFiles::set_allocated_parquet(::substrait::ReadRel_LocalFiles_FileOrFiles_ParquetReadOptions* PROTOBUF_NULLABLE parquet) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_file_format();
  if (parquet) {
    ::google::protobuf::Arena* submessage_arena = parquet->GetArena();
    if (message_arena != submessage_arena) {
      parquet = ::google::protobuf::internal::GetOwnedMessage(message_arena, parquet, submessage_arena);
    }
    set_has_parquet();
    _impl_.file_format_.parquet_ = parquet;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ReadRel.LocalFiles.FileOrFiles.parquet)
}
void ReadRel_LocalFiles_FileOrFiles::set_allocated_arrow(::substrait::ReadRel_LocalFiles_FileOrFiles_ArrowReadOptions* PROTOBUF_NULLABLE arrow) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_file_format();
  if (arrow) {
    ::google::protobuf::Arena* submessage_arena = arrow->GetArena();
    if (message_arena != submessage_arena) {
      arrow = ::google::protobuf::internal::GetOwnedMessage(message_arena, arrow, submessage_arena);
    }
    set_has_arrow();
    _impl_.file_format_.arrow_ = arrow;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ReadRel.LocalFiles.FileOrFiles.arrow)
}
void ReadRel_LocalFiles_FileOrFiles::set_allocated_orc(::substrait::ReadRel_LocalFiles_FileOrFiles_OrcReadOptions* PROTOBUF_NULLABLE orc) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_file_format();
  if (orc) {
    ::google::protobuf::Arena* submessage_arena = orc->GetArena();
    if (message_arena != submessage_arena) {
      orc = ::google::protobuf::internal::GetOwnedMessage(message_arena, orc, submessage_arena);
    }
    set_has_orc();
    _impl_.file_format_.orc_ = orc;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ReadRel.LocalFiles.FileOrFiles.orc)
}
void ReadRel_LocalFiles_FileOrFiles::set_allocated_extension(::google::protobuf::Any* PROTOBUF_NULLABLE extension) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_file_format();
  if (extension) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(extension)->GetArena();
    if (message_arena != submessage_arena) {
      extension = ::google::protobuf::internal::GetOwnedMessage(message_arena, extension, submessage_arena);
    }
    set_has_extension();
    _impl_.file_format_.extension_ = extension;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ReadRel.LocalFiles.FileOrFiles.extension)
}
void ReadRel_LocalFiles_FileOrFiles::clear_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (file_format_case() == kExtension) {
    if (GetArena() == nullptr) {
      delete _impl_.file_format_.extension_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.file_format_.extension_);
    }
    clear_has_file_format();
  }
}
void ReadRel_LocalFiles_FileOrFiles::set_allocated_dwrf(::substrait::ReadRel_LocalFiles_FileOrFiles_DwrfReadOptions* PROTOBUF_NULLABLE dwrf) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_file_format();
  if (dwrf) {
    ::google::protobuf::Arena* submessage_arena = dwrf->GetArena();
    if (message_arena != submessage_arena) {
      dwrf = ::google::protobuf::internal::GetOwnedMessage(message_arena, dwrf, submessage_arena);
    }
    set_has_dwrf();
    _impl_.file_format_.dwrf_ = dwrf;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ReadRel.LocalFiles.FileOrFiles.dwrf)
}
ReadRel_LocalFiles_FileOrFiles::ReadRel_LocalFiles_FileOrFiles(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReadRel_LocalFiles_FileOrFiles_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ReadRel.LocalFiles.FileOrFiles)
}
PROTOBUF_NDEBUG_INLINE ReadRel_LocalFiles_FileOrFiles::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ReadRel_LocalFiles_FileOrFiles& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        path_type_{},
        file_format_{},
        _oneof_case_{from._oneof_case_[0], from._oneof_case_[1]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReadRel_LocalFiles_FileOrFiles* 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_, partition_index_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, partition_index_),
           offsetof(Impl_, length_) -
               offsetof(Impl_, partition_index_) +
               sizeof(Impl_::length_));
  switch (path_type_case()) {
    case PATH_TYPE_NOT_SET:
      break;
      case kUriPath:
        new (&_impl_.path_type_.uri_path_) decltype(_impl_.path_type_.uri_path_){arena, from._impl_.path_type_.uri_path_};
        break;
      case kUriPathGlob:
        new (&_impl_.path_type_.uri_path_glob_) decltype(_impl_.path_type_.uri_path_glob_){arena, from._impl_.path_type_.uri_path_glob_};
        break;
      case kUriFile:
        new (&_impl_.path_type_.uri_file_) decltype(_impl_.path_type_.uri_file_){arena, from._impl_.path_type_.uri_file_};
        break;
      case kUriFolder:
        new (&_impl_.path_type_.uri_folder_) decltype(_impl_.path_type_.uri_folder_){arena, from._impl_.path_type_.uri_folder_};
        break;
  }
  switch (file_format_case()) {
    case FILE_FORMAT_NOT_SET:
      break;
      case kParquet:
        _impl_.file_format_.parquet_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.file_format_.parquet_);
        break;
      case kArrow:
        _impl_.file_format_.arrow_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.file_format_.arrow_);
        break;
      case kOrc:
        _impl_.file_format_.orc_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.file_format_.orc_);
        break;
      case kExtension:
        _impl_.file_format_.extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.file_format_.extension_);
        break;
      case kDwrf:
        _impl_.file_format_.dwrf_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.file_format_.dwrf_);
        break;
  }

  // @@protoc_insertion_point(copy_constructor:substrait.ReadRel.LocalFiles.FileOrFiles)
}
PROTOBUF_NDEBUG_INLINE ReadRel_LocalFiles_FileOrFiles::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        path_type_{},
        file_format_{},
        _oneof_case_{} {}

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

void ReadRel_LocalFiles_FileOrFiles::clear_path_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.ReadRel.LocalFiles.FileOrFiles)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (path_type_case()) {
    case kUriPath: {
      _impl_.path_type_.uri_path_.Destroy();
      break;
    }
    case kUriPathGlob: {
      _impl_.path_type_.uri_path_glob_.Destroy();
      break;
    }
    case kUriFile: {
      _impl_.path_type_.uri_file_.Destroy();
      break;
    }
    case kUriFolder: {
      _impl_.path_type_.uri_folder_.Destroy();
      break;
    }
    case PATH_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = PATH_TYPE_NOT_SET;
}

void ReadRel_LocalFiles_FileOrFiles::clear_file_format() {
// @@protoc_insertion_point(one_of_clear_start:substrait.ReadRel.LocalFiles.FileOrFiles)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (file_format_case()) {
    case kParquet: {
      if (GetArena() == nullptr) {
        delete _impl_.file_format_.parquet_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.file_format_.parquet_);
      }
      break;
    }
    case kArrow: {
      if (GetArena() == nullptr) {
        delete _impl_.file_format_.arrow_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.file_format_.arrow_);
      }
      break;
    }
    case kOrc: {
      if (GetArena() == nullptr) {
        delete _impl_.file_format_.orc_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.file_format_.orc_);
      }
      break;
    }
    case kExtension: {
      if (GetArena() == nullptr) {
        delete _impl_.file_format_.extension_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.file_format_.extension_);
      }
      break;
    }
    case kDwrf: {
      if (GetArena() == nullptr) {
        delete _impl_.file_format_.dwrf_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.file_format_.dwrf_);
      }
      break;
    }
    case FILE_FORMAT_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[1] = FILE_FORMAT_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReadRel_LocalFiles_FileOrFiles_class_data_ =
        ReadRel_LocalFiles_FileOrFiles::InternalGenerateClassData_(ReadRel_LocalFiles_FileOrFiles_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles_FileOrFiles::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_FileOrFiles_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReadRel_LocalFiles_FileOrFiles_class_data_.tc_table);
  return ReadRel_LocalFiles_FileOrFiles_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles_FileOrFiles::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_FileOrFiles_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReadRel_LocalFiles_FileOrFiles_globals_));
  return ReadRel_LocalFiles_FileOrFiles_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReadRel_LocalFiles_FileOrFiles::ParseTableT_
    ReadRel_LocalFiles_FileOrFiles::_table_ =
        ReadRel_LocalFiles_FileOrFiles::InternalGenerateParseTable_(ReadRel_LocalFiles_FileOrFiles_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ReadRel_LocalFiles_FileOrFiles::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ReadRel.LocalFiles.FileOrFiles)
  ::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_.partition_index_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.length_) -
        reinterpret_cast<char*>(&_impl_.partition_index_)) + sizeof(_impl_.length_));
  }
  clear_path_type();
  clear_file_format();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.path_type_case()) {
    case kUriPath: {
      const ::std::string& _s = this_._internal_uri_path();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.ReadRel.LocalFiles.FileOrFiles.uri_path");
      target = stream->WriteStringMaybeAliased(1, _s, target);
      break;
    }
    case kUriPathGlob: {
      const ::std::string& _s = this_._internal_uri_path_glob();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.ReadRel.LocalFiles.FileOrFiles.uri_path_glob");
      target = stream->WriteStringMaybeAliased(2, _s, target);
      break;
    }
    case kUriFile: {
      const ::std::string& _s = this_._internal_uri_file();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.ReadRel.LocalFiles.FileOrFiles.uri_file");
      target = stream->WriteStringMaybeAliased(3, _s, target);
      break;
    }
    case kUriFolder: {
      const ::std::string& _s = this_._internal_uri_folder();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.ReadRel.LocalFiles.FileOrFiles.uri_folder");
      target = stream->WriteStringMaybeAliased(4, _s, target);
      break;
    }
    default:
      break;
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  // uint64 partition_index = 6;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_partition_index() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          6, this_._internal_partition_index(), target);
    }
  }

  // uint64 start = 7;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_start() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          7, this_._internal_start(), target);
    }
  }

  // uint64 length = 8;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          8, this_._internal_length(), target);
    }
  }

  switch (this_.file_format_case()) {
    case kParquet: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          9, *this_._impl_.file_format_.parquet_, this_._impl_.file_format_.parquet_->GetCachedSize(), target,
          stream);
      break;
    }
    case kArrow: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          10, *this_._impl_.file_format_.arrow_, this_._impl_.file_format_.arrow_->GetCachedSize(), target,
          stream);
      break;
    }
    case kOrc: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          11, *this_._impl_.file_format_.orc_, this_._impl_.file_format_.orc_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExtension: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          12, *this_._impl_.file_format_.extension_, this_._impl_.file_format_.extension_->GetCachedSize(), target,
          stream);
      break;
    }
    case kDwrf: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          13, *this_._impl_.file_format_.dwrf_, this_._impl_.file_format_.dwrf_->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.ReadRel.LocalFiles.FileOrFiles)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ReadRel_LocalFiles_FileOrFiles::ByteSizeLong(const MessageLite& base) {
  const ReadRel_LocalFiles_FileOrFiles& this_ = static_cast<const ReadRel_LocalFiles_FileOrFiles&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ReadRel_LocalFiles_FileOrFiles::ByteSizeLong() const {
  const ReadRel_LocalFiles_FileOrFiles& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ReadRel.LocalFiles.FileOrFiles)
  ::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)) {
    // uint64 partition_index = 6;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_partition_index() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_partition_index());
      }
    }
    // uint64 start = 7;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_start() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_start());
      }
    }
    // uint64 length = 8;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_length());
      }
    }
  }
  switch (this_.path_type_case()) {
    // string uri_path = 1;
    case kUriPath: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_uri_path());
      break;
    }
    // string uri_path_glob = 2;
    case kUriPathGlob: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_uri_path_glob());
      break;
    }
    // string uri_file = 3;
    case kUriFile: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_uri_file());
      break;
    }
    // string uri_folder = 4;
    case kUriFolder: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_uri_folder());
      break;
    }
    case PATH_TYPE_NOT_SET: {
      break;
    }
  }
  switch (this_.file_format_case()) {
    // .substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions parquet = 9;
    case kParquet: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.file_format_.parquet_);
      break;
    }
    // .substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions arrow = 10;
    case kArrow: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.file_format_.arrow_);
      break;
    }
    // .substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptions orc = 11;
    case kOrc: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.file_format_.orc_);
      break;
    }
    // .google.protobuf.Any extension = 12;
    case kExtension: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.file_format_.extension_);
      break;
    }
    // .substrait.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions dwrf = 13;
    case kDwrf: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.file_format_.dwrf_);
      break;
    }
    case FILE_FORMAT_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ReadRel_LocalFiles_FileOrFiles::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ReadRel_LocalFiles_FileOrFiles*>(&to_msg);
  auto& from = static_cast<const ReadRel_LocalFiles_FileOrFiles&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ReadRel.LocalFiles.FileOrFiles)
  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_partition_index() != 0) {
        _this->_impl_.partition_index_ = from._impl_.partition_index_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_start() != 0) {
        _this->_impl_.start_ = from._impl_.start_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_length() != 0) {
        _this->_impl_.length_ = from._impl_.length_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= 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_path_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kUriPath: {
        if (oneof_needs_init) {
          _this->_impl_.path_type_.uri_path_.InitDefault();
        }
        _this->_impl_.path_type_.uri_path_.Set(from._internal_uri_path(), arena);
        break;
      }
      case kUriPathGlob: {
        if (oneof_needs_init) {
          _this->_impl_.path_type_.uri_path_glob_.InitDefault();
        }
        _this->_impl_.path_type_.uri_path_glob_.Set(from._internal_uri_path_glob(), arena);
        break;
      }
      case kUriFile: {
        if (oneof_needs_init) {
          _this->_impl_.path_type_.uri_file_.InitDefault();
        }
        _this->_impl_.path_type_.uri_file_.Set(from._internal_uri_file(), arena);
        break;
      }
      case kUriFolder: {
        if (oneof_needs_init) {
          _this->_impl_.path_type_.uri_folder_.InitDefault();
        }
        _this->_impl_.path_type_.uri_folder_.Set(from._internal_uri_folder(), arena);
        break;
      }
      case PATH_TYPE_NOT_SET:
        break;
    }
  }
  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[1]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[1];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_file_format();
      }
      _this->_impl_._oneof_case_[1] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kParquet: {
        if (oneof_needs_init) {
          _this->_impl_.file_format_.parquet_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.file_format_.parquet_);
        } else {
          _this->_impl_.file_format_.parquet_->MergeFrom(*from._impl_.file_format_.parquet_);
        }
        break;
      }
      case kArrow: {
        if (oneof_needs_init) {
          _this->_impl_.file_format_.arrow_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.file_format_.arrow_);
        } else {
          _this->_impl_.file_format_.arrow_->MergeFrom(*from._impl_.file_format_.arrow_);
        }
        break;
      }
      case kOrc: {
        if (oneof_needs_init) {
          _this->_impl_.file_format_.orc_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.file_format_.orc_);
        } else {
          _this->_impl_.file_format_.orc_->MergeFrom(*from._impl_.file_format_.orc_);
        }
        break;
      }
      case kExtension: {
        if (oneof_needs_init) {
          _this->_impl_.file_format_.extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.file_format_.extension_);
        } else {
          _this->_impl_.file_format_.extension_->MergeFrom(*from._impl_.file_format_.extension_);
        }
        break;
      }
      case kDwrf: {
        if (oneof_needs_init) {
          _this->_impl_.file_format_.dwrf_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.file_format_.dwrf_);
        } else {
          _this->_impl_.file_format_.dwrf_->MergeFrom(*from._impl_.file_format_.dwrf_);
        }
        break;
      }
      case FILE_FORMAT_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ReadRel_LocalFiles_FileOrFiles::InternalSwap(ReadRel_LocalFiles_FileOrFiles* 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(ReadRel_LocalFiles_FileOrFiles, _impl_.length_)
      + sizeof(ReadRel_LocalFiles_FileOrFiles::_impl_.length_)
      - PROTOBUF_FIELD_OFFSET(ReadRel_LocalFiles_FileOrFiles, _impl_.partition_index_)>(
          reinterpret_cast<char*>(&_impl_.partition_index_),
          reinterpret_cast<char*>(&other->_impl_.partition_index_));
  swap(_impl_.path_type_, other->_impl_.path_type_);
  swap(_impl_.file_format_, other->_impl_.file_format_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
  swap(_impl_._oneof_case_[1], other->_impl_._oneof_case_[1]);
}

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

void ReadRel_LocalFiles::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
ReadRel_LocalFiles::ReadRel_LocalFiles(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReadRel_LocalFiles_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ReadRel.LocalFiles)
}
PROTOBUF_NDEBUG_INLINE ReadRel_LocalFiles::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ReadRel_LocalFiles& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        items_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ReadRel_LocalFiles,
              PROTOBUF_FIELD_OFFSET(::substrait::ReadRel_LocalFiles, _impl_.items_)>()
          , from.items_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReadRel_LocalFiles* 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_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReadRel_LocalFiles_class_data_ =
        ReadRel_LocalFiles::InternalGenerateClassData_(ReadRel_LocalFiles_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReadRel_LocalFiles_class_data_.tc_table);
  return ReadRel_LocalFiles_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel_LocalFiles::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_LocalFiles_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReadRel_LocalFiles_globals_));
  return ReadRel_LocalFiles_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReadRel_LocalFiles::ParseTableT_
    ReadRel_LocalFiles::_table_ =
        ReadRel_LocalFiles::InternalGenerateParseTable_(ReadRel_LocalFiles_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ReadRel_LocalFiles::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ReadRel.LocalFiles)
  ::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_.items_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.ReadRel.LocalFiles)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ReadRel_LocalFiles::ByteSizeLong(const MessageLite& base) {
  const ReadRel_LocalFiles& this_ = static_cast<const ReadRel_LocalFiles&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ReadRel_LocalFiles::ByteSizeLong() const {
  const ReadRel_LocalFiles& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ReadRel.LocalFiles)
  ::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 .substrait.ReadRel.LocalFiles.FileOrFiles items = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_items_size();
      for (const auto& msg : this_._internal_items()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ReadRel_LocalFiles::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ReadRel_LocalFiles*>(&to_msg);
  auto& from = static_cast<const ReadRel_LocalFiles&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ReadRel.LocalFiles)
  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_items()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_items());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ReadRel_LocalFiles::InternalSwap(ReadRel_LocalFiles* 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_.items_.InternalSwap(&other->_impl_.items_);
  swap(_impl_.advanced_extension_, other->_impl_.advanced_extension_);
}

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

void ReadRel::clear_base_schema() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.base_schema_ != nullptr) _impl_.base_schema_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
void ReadRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
void ReadRel::set_allocated_virtual_table(::substrait::ReadRel_VirtualTable* PROTOBUF_NULLABLE virtual_table) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_read_type();
  if (virtual_table) {
    ::google::protobuf::Arena* submessage_arena = virtual_table->GetArena();
    if (message_arena != submessage_arena) {
      virtual_table = ::google::protobuf::internal::GetOwnedMessage(message_arena, virtual_table, submessage_arena);
    }
    set_has_virtual_table();
    _impl_.read_type_.virtual_table_ = virtual_table;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ReadRel.virtual_table)
}
void ReadRel::set_allocated_local_files(::substrait::ReadRel_LocalFiles* PROTOBUF_NULLABLE local_files) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_read_type();
  if (local_files) {
    ::google::protobuf::Arena* submessage_arena = local_files->GetArena();
    if (message_arena != submessage_arena) {
      local_files = ::google::protobuf::internal::GetOwnedMessage(message_arena, local_files, submessage_arena);
    }
    set_has_local_files();
    _impl_.read_type_.local_files_ = local_files;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ReadRel.local_files)
}
void ReadRel::set_allocated_named_table(::substrait::ReadRel_NamedTable* PROTOBUF_NULLABLE named_table) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_read_type();
  if (named_table) {
    ::google::protobuf::Arena* submessage_arena = named_table->GetArena();
    if (message_arena != submessage_arena) {
      named_table = ::google::protobuf::internal::GetOwnedMessage(message_arena, named_table, submessage_arena);
    }
    set_has_named_table();
    _impl_.read_type_.named_table_ = named_table;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ReadRel.named_table)
}
void ReadRel::set_allocated_extension_table(::substrait::ReadRel_ExtensionTable* PROTOBUF_NULLABLE extension_table) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_read_type();
  if (extension_table) {
    ::google::protobuf::Arena* submessage_arena = extension_table->GetArena();
    if (message_arena != submessage_arena) {
      extension_table = ::google::protobuf::internal::GetOwnedMessage(message_arena, extension_table, submessage_arena);
    }
    set_has_extension_table();
    _impl_.read_type_.extension_table_ = extension_table;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ReadRel.extension_table)
}
ReadRel::ReadRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReadRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ReadRel)
}
PROTOBUF_NDEBUG_INLINE ReadRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ReadRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        read_type_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReadRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.base_schema_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.base_schema_)
                : nullptr;
  _impl_.filter_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.filter_)
                : nullptr;
  _impl_.projection_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.projection_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;
  _impl_.best_effort_filter_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.best_effort_filter_)
                : nullptr;
  switch (read_type_case()) {
    case READ_TYPE_NOT_SET:
      break;
      case kVirtualTable:
        _impl_.read_type_.virtual_table_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.read_type_.virtual_table_);
        break;
      case kLocalFiles:
        _impl_.read_type_.local_files_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.read_type_.local_files_);
        break;
      case kNamedTable:
        _impl_.read_type_.named_table_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.read_type_.named_table_);
        break;
      case kExtensionTable:
        _impl_.read_type_.extension_table_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.read_type_.extension_table_);
        break;
  }

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

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

void ReadRel::clear_read_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.ReadRel)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (read_type_case()) {
    case kVirtualTable: {
      if (GetArena() == nullptr) {
        delete _impl_.read_type_.virtual_table_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.read_type_.virtual_table_);
      }
      break;
    }
    case kLocalFiles: {
      if (GetArena() == nullptr) {
        delete _impl_.read_type_.local_files_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.read_type_.local_files_);
      }
      break;
    }
    case kNamedTable: {
      if (GetArena() == nullptr) {
        delete _impl_.read_type_.named_table_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.read_type_.named_table_);
      }
      break;
    }
    case kExtensionTable: {
      if (GetArena() == nullptr) {
        delete _impl_.read_type_.extension_table_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.read_type_.extension_table_);
      }
      break;
    }
    case READ_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = READ_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReadRel_class_data_ =
        ReadRel::InternalGenerateClassData_(ReadRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReadRel_class_data_.tc_table);
  return ReadRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReadRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReadRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReadRel_globals_));
  return ReadRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReadRel::ParseTableT_
    ReadRel::_table_ =
        ReadRel::InternalGenerateParseTable_(ReadRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ReadRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ReadRel)
  ::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, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.base_schema_ != nullptr);
      _impl_.base_schema_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.filter_ != nullptr);
      _impl_.filter_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.projection_ != nullptr);
      _impl_.projection_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(_impl_.best_effort_filter_ != nullptr);
      _impl_.best_effort_filter_->Clear();
    }
  }
  clear_read_type();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  // .substrait.Expression filter = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.filter_, this_._impl_.filter_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Expression.MaskExpression projection = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.projection_, this_._impl_.projection_->GetCachedSize(), target,
        stream);
  }

  switch (this_.read_type_case()) {
    case kVirtualTable: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          5, *this_._impl_.read_type_.virtual_table_, this_._impl_.read_type_.virtual_table_->GetCachedSize(), target,
          stream);
      break;
    }
    case kLocalFiles: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          6, *this_._impl_.read_type_.local_files_, this_._impl_.read_type_.local_files_->GetCachedSize(), target,
          stream);
      break;
    }
    case kNamedTable: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          7, *this_._impl_.read_type_.named_table_, this_._impl_.read_type_.named_table_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExtensionTable: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          8, *this_._impl_.read_type_.extension_table_, this_._impl_.read_type_.extension_table_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Expression best_effort_filter = 11;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        11, *this_._impl_.best_effort_filter_, this_._impl_.best_effort_filter_->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.ReadRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ReadRel::ByteSizeLong(const MessageLite& base) {
  const ReadRel& this_ = static_cast<const ReadRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ReadRel::ByteSizeLong() const {
  const ReadRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ReadRel)
  ::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, 0x0000003fU)) {
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.NamedStruct base_schema = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.base_schema_);
    }
    // .substrait.Expression filter = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.filter_);
    }
    // .substrait.Expression.MaskExpression projection = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.projection_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
    // .substrait.Expression best_effort_filter = 11;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.best_effort_filter_);
    }
  }
  switch (this_.read_type_case()) {
    // .substrait.ReadRel.VirtualTable virtual_table = 5;
    case kVirtualTable: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.read_type_.virtual_table_);
      break;
    }
    // .substrait.ReadRel.LocalFiles local_files = 6;
    case kLocalFiles: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.read_type_.local_files_);
      break;
    }
    // .substrait.ReadRel.NamedTable named_table = 7;
    case kNamedTable: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.read_type_.named_table_);
      break;
    }
    // .substrait.ReadRel.ExtensionTable extension_table = 8;
    case kExtensionTable: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.read_type_.extension_table_);
      break;
    }
    case READ_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ReadRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ReadRel*>(&to_msg);
  auto& from = static_cast<const ReadRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ReadRel)
  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, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.base_schema_ != nullptr);
      if (_this->_impl_.base_schema_ == nullptr) {
        _this->_impl_.base_schema_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.base_schema_);
      } else {
        _this->_impl_.base_schema_->MergeFrom(*from._impl_.base_schema_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.filter_ != nullptr);
      if (_this->_impl_.filter_ == nullptr) {
        _this->_impl_.filter_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.filter_);
      } else {
        _this->_impl_.filter_->MergeFrom(*from._impl_.filter_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.projection_ != nullptr);
      if (_this->_impl_.projection_ == nullptr) {
        _this->_impl_.projection_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.projection_);
      } else {
        _this->_impl_.projection_->MergeFrom(*from._impl_.projection_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.best_effort_filter_ != nullptr);
      if (_this->_impl_.best_effort_filter_ == nullptr) {
        _this->_impl_.best_effort_filter_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.best_effort_filter_);
      } else {
        _this->_impl_.best_effort_filter_->MergeFrom(*from._impl_.best_effort_filter_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= 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_read_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kVirtualTable: {
        if (oneof_needs_init) {
          _this->_impl_.read_type_.virtual_table_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.read_type_.virtual_table_);
        } else {
          _this->_impl_.read_type_.virtual_table_->MergeFrom(*from._impl_.read_type_.virtual_table_);
        }
        break;
      }
      case kLocalFiles: {
        if (oneof_needs_init) {
          _this->_impl_.read_type_.local_files_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.read_type_.local_files_);
        } else {
          _this->_impl_.read_type_.local_files_->MergeFrom(*from._impl_.read_type_.local_files_);
        }
        break;
      }
      case kNamedTable: {
        if (oneof_needs_init) {
          _this->_impl_.read_type_.named_table_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.read_type_.named_table_);
        } else {
          _this->_impl_.read_type_.named_table_->MergeFrom(*from._impl_.read_type_.named_table_);
        }
        break;
      }
      case kExtensionTable: {
        if (oneof_needs_init) {
          _this->_impl_.read_type_.extension_table_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.read_type_.extension_table_);
        } else {
          _this->_impl_.read_type_.extension_table_->MergeFrom(*from._impl_.read_type_.extension_table_);
        }
        break;
      }
      case READ_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ReadRel::InternalSwap(ReadRel* 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(ReadRel, _impl_.best_effort_filter_)
      + sizeof(ReadRel::_impl_.best_effort_filter_)
      - PROTOBUF_FIELD_OFFSET(ReadRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
  swap(_impl_.read_type_, other->_impl_.read_type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

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

void ProjectRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
ProjectRel::ProjectRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ProjectRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ProjectRel)
}
PROTOBUF_NDEBUG_INLINE ProjectRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ProjectRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        expressions_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ProjectRel,
              PROTOBUF_FIELD_OFFSET(::substrait::ProjectRel, _impl_.expressions_)>()
          , from.expressions_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ProjectRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ProjectRel_class_data_ =
        ProjectRel::InternalGenerateClassData_(ProjectRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ProjectRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ProjectRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ProjectRel_class_data_.tc_table);
  return ProjectRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ProjectRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ProjectRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ProjectRel_globals_));
  return ProjectRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ProjectRel::ParseTableT_
    ProjectRel::_table_ =
        ProjectRel::InternalGenerateParseTable_(ProjectRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ProjectRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ProjectRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.expressions_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Rel input = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.input_, this_._impl_.input_->GetCachedSize(), target,
        stream);
  }

  // repeated .substrait.Expression expressions = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_expressions_size());
         i < n; i++) {
      const auto& repfield = this_._internal_expressions().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.ProjectRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ProjectRel::ByteSizeLong(const MessageLite& base) {
  const ProjectRel& this_ = static_cast<const ProjectRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ProjectRel::ByteSizeLong() const {
  const ProjectRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ProjectRel)
  ::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.Expression expressions = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_expressions_size();
      for (const auto& msg : this_._internal_expressions()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel input = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ProjectRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ProjectRel*>(&to_msg);
  auto& from = static_cast<const ProjectRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ProjectRel)
  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_expressions()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_expressions());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ProjectRel::InternalSwap(ProjectRel* 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_.expressions_.InternalSwap(&other->_impl_.expressions_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_.advanced_extension_)
      + sizeof(ProjectRel::_impl_.advanced_extension_)
      - PROTOBUF_FIELD_OFFSET(ProjectRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void JoinRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
JoinRel::JoinRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, JoinRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.JoinRel)
}
PROTOBUF_NDEBUG_INLINE JoinRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::JoinRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  JoinRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.left_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_)
                : nullptr;
  _impl_.right_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_)
                : nullptr;
  _impl_.expression_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.expression_)
                : nullptr;
  _impl_.post_join_filter_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.post_join_filter_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;
  _impl_.type_ = from._impl_.type_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull JoinRel_class_data_ =
        JoinRel::InternalGenerateClassData_(JoinRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
JoinRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&JoinRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(JoinRel_class_data_.tc_table);
  return JoinRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
JoinRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&JoinRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&JoinRel_globals_));
  return JoinRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const JoinRel::ParseTableT_
    JoinRel::_table_ =
        JoinRel::InternalGenerateParseTable_(JoinRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void JoinRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.JoinRel)
  ::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, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.left_ != nullptr);
      _impl_.left_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.right_ != nullptr);
      _impl_.right_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.expression_ != nullptr);
      _impl_.expression_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.post_join_filter_ != nullptr);
      _impl_.post_join_filter_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_.type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  // .substrait.Rel right = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.right_, this_._impl_.right_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Expression expression = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.expression_, this_._impl_.expression_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Expression post_join_filter = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.post_join_filter_, this_._impl_.post_join_filter_->GetCachedSize(), target,
        stream);
  }

  // .substrait.JoinRel.JoinType type = 6;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          6, this_._internal_type(), target);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.JoinRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t JoinRel::ByteSizeLong(const MessageLite& base) {
  const JoinRel& this_ = static_cast<const JoinRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t JoinRel::ByteSizeLong() const {
  const JoinRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.JoinRel)
  ::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, 0x0000007fU)) {
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel left = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.left_);
    }
    // .substrait.Rel right = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.right_);
    }
    // .substrait.Expression expression = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.expression_);
    }
    // .substrait.Expression post_join_filter = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.post_join_filter_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
    // .substrait.JoinRel.JoinType type = 6;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void JoinRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<JoinRel*>(&to_msg);
  auto& from = static_cast<const JoinRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.JoinRel)
  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, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.left_ != nullptr);
      if (_this->_impl_.left_ == nullptr) {
        _this->_impl_.left_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_);
      } else {
        _this->_impl_.left_->MergeFrom(*from._impl_.left_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.right_ != nullptr);
      if (_this->_impl_.right_ == nullptr) {
        _this->_impl_.right_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_);
      } else {
        _this->_impl_.right_->MergeFrom(*from._impl_.right_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.expression_ != nullptr);
      if (_this->_impl_.expression_ == nullptr) {
        _this->_impl_.expression_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.expression_);
      } else {
        _this->_impl_.expression_->MergeFrom(*from._impl_.expression_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.post_join_filter_ != nullptr);
      if (_this->_impl_.post_join_filter_ == nullptr) {
        _this->_impl_.post_join_filter_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.post_join_filter_);
      } else {
        _this->_impl_.post_join_filter_->MergeFrom(*from._impl_.post_join_filter_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void JoinRel::InternalSwap(JoinRel* 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(JoinRel, _impl_.type_)
      + sizeof(JoinRel::_impl_.type_)
      - PROTOBUF_FIELD_OFFSET(JoinRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void CrossRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
CrossRel::CrossRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, CrossRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.CrossRel)
}
PROTOBUF_NDEBUG_INLINE CrossRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::CrossRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  CrossRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.left_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_)
                : nullptr;
  _impl_.right_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull CrossRel_class_data_ =
        CrossRel::InternalGenerateClassData_(CrossRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CrossRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&CrossRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(CrossRel_class_data_.tc_table);
  return CrossRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CrossRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&CrossRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&CrossRel_globals_));
  return CrossRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const CrossRel::ParseTableT_
    CrossRel::_table_ =
        CrossRel::InternalGenerateParseTable_(CrossRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void CrossRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.CrossRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.left_ != nullptr);
      _impl_.left_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.right_ != nullptr);
      _impl_.right_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  // .substrait.Rel right = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.right_, this_._impl_.right_->GetCachedSize(), target,
        stream);
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.CrossRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t CrossRel::ByteSizeLong(const MessageLite& base) {
  const CrossRel& this_ = static_cast<const CrossRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t CrossRel::ByteSizeLong() const {
  const CrossRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.CrossRel)
  ::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.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel left = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.left_);
    }
    // .substrait.Rel right = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.right_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void CrossRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<CrossRel*>(&to_msg);
  auto& from = static_cast<const CrossRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.CrossRel)
  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_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.left_ != nullptr);
      if (_this->_impl_.left_ == nullptr) {
        _this->_impl_.left_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_);
      } else {
        _this->_impl_.left_->MergeFrom(*from._impl_.left_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.right_ != nullptr);
      if (_this->_impl_.right_ == nullptr) {
        _this->_impl_.right_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_);
      } else {
        _this->_impl_.right_->MergeFrom(*from._impl_.right_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void CrossRel::InternalSwap(CrossRel* 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(CrossRel, _impl_.advanced_extension_)
      + sizeof(CrossRel::_impl_.advanced_extension_)
      - PROTOBUF_FIELD_OFFSET(CrossRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void FetchRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
FetchRel::FetchRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FetchRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.FetchRel)
}
PROTOBUF_NDEBUG_INLINE FetchRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::FetchRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FetchRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, offset_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, offset_),
           offsetof(Impl_, count_) -
               offsetof(Impl_, offset_) +
               sizeof(Impl_::count_));

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FetchRel_class_data_ =
        FetchRel::InternalGenerateClassData_(FetchRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FetchRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FetchRel_class_data_.tc_table);
  return FetchRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FetchRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FetchRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&FetchRel_globals_));
  return FetchRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FetchRel::ParseTableT_
    FetchRel::_table_ =
        FetchRel::InternalGenerateParseTable_(FetchRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FetchRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.FetchRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000018U)) {
    ::memset(&_impl_.offset_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.count_) -
        reinterpret_cast<char*>(&_impl_.offset_)) + sizeof(_impl_.count_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  // int64 offset = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_offset() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<3>(
              stream, this_._internal_offset(), target);
    }
  }

  // int64 count = 4;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_count() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<4>(
              stream, this_._internal_count(), target);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.FetchRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FetchRel::ByteSizeLong(const MessageLite& base) {
  const FetchRel& this_ = static_cast<const FetchRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FetchRel::ByteSizeLong() const {
  const FetchRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.FetchRel)
  ::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, 0x0000001fU)) {
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel input = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
    // int64 offset = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_offset() != 0) {
        total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
            this_._internal_offset());
      }
    }
    // int64 count = 4;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_count() != 0) {
        total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
            this_._internal_count());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void FetchRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FetchRel*>(&to_msg);
  auto& from = static_cast<const FetchRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.FetchRel)
  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, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_offset() != 0) {
        _this->_impl_.offset_ = from._impl_.offset_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_count() != 0) {
        _this->_impl_.count_ = from._impl_.count_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void FetchRel::InternalSwap(FetchRel* 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(FetchRel, _impl_.count_)
      + sizeof(FetchRel::_impl_.count_)
      - PROTOBUF_FIELD_OFFSET(FetchRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AggregateRel_Grouping* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void AggregateRel_Grouping::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
AggregateRel_Grouping::~AggregateRel_Grouping() {
  // @@protoc_insertion_point(destructor:substrait.AggregateRel.Grouping)
  SharedDtor(*this);
}
inline void AggregateRel_Grouping::SharedDtor(MessageLite& self) {
  AggregateRel_Grouping& this_ = static_cast<AggregateRel_Grouping&>(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 AggregateRel_Grouping_class_data_ =
        AggregateRel_Grouping::InternalGenerateClassData_(AggregateRel_Grouping_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AggregateRel_Grouping::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AggregateRel_Grouping_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AggregateRel_Grouping_class_data_.tc_table);
  return AggregateRel_Grouping_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AggregateRel_Grouping::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AggregateRel_Grouping_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AggregateRel_Grouping_globals_));
  return AggregateRel_Grouping_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AggregateRel_Grouping::ParseTableT_
    AggregateRel_Grouping::_table_ =
        AggregateRel_Grouping::InternalGenerateParseTable_(AggregateRel_Grouping_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AggregateRel_Grouping::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.AggregateRel.Grouping)
  ::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_.grouping_expressions_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression grouping_expressions = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_grouping_expressions_size());
         i < n; i++) {
      const auto& repfield = this_._internal_grouping_expressions().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.AggregateRel.Grouping)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AggregateRel_Grouping::ByteSizeLong(const MessageLite& base) {
  const AggregateRel_Grouping& this_ = static_cast<const AggregateRel_Grouping&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AggregateRel_Grouping::ByteSizeLong() const {
  const AggregateRel_Grouping& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.AggregateRel.Grouping)
  ::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_);
   {
    // repeated .substrait.Expression grouping_expressions = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_grouping_expressions_size();
      for (const auto& msg : this_._internal_grouping_expressions()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_grouping_expressions()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_grouping_expressions());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void AggregateRel_Grouping::InternalSwap(AggregateRel_Grouping* 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_.grouping_expressions_.InternalSwap(&other->_impl_.grouping_expressions_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AggregateRel_Measure* 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_.measure_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.measure_)
                : nullptr;
  _impl_.filter_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.filter_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AggregateRel_Measure_class_data_ =
        AggregateRel_Measure::InternalGenerateClassData_(AggregateRel_Measure_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AggregateRel_Measure::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AggregateRel_Measure_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AggregateRel_Measure_class_data_.tc_table);
  return AggregateRel_Measure_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AggregateRel_Measure::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AggregateRel_Measure_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AggregateRel_Measure_globals_));
  return AggregateRel_Measure_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AggregateRel_Measure::ParseTableT_
    AggregateRel_Measure::_table_ =
        AggregateRel_Measure::InternalGenerateParseTable_(AggregateRel_Measure_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AggregateRel_Measure::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.AggregateRel.Measure)
  ::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_.measure_ != nullptr);
      _impl_.measure_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.filter_ != nullptr);
      _impl_.filter_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Expression filter = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.filter_, this_._impl_.filter_->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.AggregateRel.Measure)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AggregateRel_Measure::ByteSizeLong(const MessageLite& base) {
  const AggregateRel_Measure& this_ = static_cast<const AggregateRel_Measure&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AggregateRel_Measure::ByteSizeLong() const {
  const AggregateRel_Measure& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.AggregateRel.Measure)
  ::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)) {
    // .substrait.AggregateFunction measure = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.measure_);
    }
    // .substrait.Expression filter = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.filter_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void AggregateRel_Measure::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<AggregateRel_Measure*>(&to_msg);
  auto& from = static_cast<const AggregateRel_Measure&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.AggregateRel.Measure)
  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)) {
      ABSL_DCHECK(from._impl_.measure_ != nullptr);
      if (_this->_impl_.measure_ == nullptr) {
        _this->_impl_.measure_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.measure_);
      } else {
        _this->_impl_.measure_->MergeFrom(*from._impl_.measure_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.filter_ != nullptr);
      if (_this->_impl_.filter_ == nullptr) {
        _this->_impl_.filter_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.filter_);
      } else {
        _this->_impl_.filter_->MergeFrom(*from._impl_.filter_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void AggregateRel_Measure::InternalSwap(AggregateRel_Measure* 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(AggregateRel_Measure, _impl_.filter_)
      + sizeof(AggregateRel_Measure::_impl_.filter_)
      - PROTOBUF_FIELD_OFFSET(AggregateRel_Measure, _impl_.measure_)>(
          reinterpret_cast<char*>(&_impl_.measure_),
          reinterpret_cast<char*>(&other->_impl_.measure_));
}

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

void AggregateRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
AggregateRel::AggregateRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AggregateRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.AggregateRel)
}
PROTOBUF_NDEBUG_INLINE AggregateRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::AggregateRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        groupings_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::AggregateRel,
              PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel, _impl_.groupings_)>()
          , from.groupings_
        }
        ,
        measures_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::AggregateRel,
              PROTOBUF_FIELD_OFFSET(::substrait::AggregateRel, _impl_.measures_)>()
          , from.measures_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AggregateRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AggregateRel_class_data_ =
        AggregateRel::InternalGenerateClassData_(AggregateRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AggregateRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AggregateRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AggregateRel_class_data_.tc_table);
  return AggregateRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AggregateRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AggregateRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AggregateRel_globals_));
  return AggregateRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AggregateRel::ParseTableT_
    AggregateRel::_table_ =
        AggregateRel::InternalGenerateParseTable_(AggregateRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AggregateRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.AggregateRel)
  ::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, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.groupings_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.measures_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Rel input = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.input_, this_._impl_.input_->GetCachedSize(), target,
        stream);
  }

  // repeated .substrait.AggregateRel.Grouping groupings = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_groupings_size());
         i < n; i++) {
      const auto& repfield = this_._internal_groupings().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .substrait.AggregateRel.Measure measures = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_measures_size());
         i < n; i++) {
      const auto& repfield = this_._internal_measures().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.AggregateRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AggregateRel::ByteSizeLong(const MessageLite& base) {
  const AggregateRel& this_ = static_cast<const AggregateRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AggregateRel::ByteSizeLong() const {
  const AggregateRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.AggregateRel)
  ::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, 0x0000001fU)) {
    // repeated .substrait.AggregateRel.Grouping groupings = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_groupings_size();
      for (const auto& msg : this_._internal_groupings()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.AggregateRel.Measure measures = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_measures_size();
      for (const auto& msg : this_._internal_measures()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel input = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void AggregateRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<AggregateRel*>(&to_msg);
  auto& from = static_cast<const AggregateRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.AggregateRel)
  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, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_groupings()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_groupings());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_measures()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_measures());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void AggregateRel::InternalSwap(AggregateRel* 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_.groupings_.InternalSwap(&other->_impl_.groupings_);
  _impl_.measures_.InternalSwap(&other->_impl_.measures_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.advanced_extension_)
      + sizeof(AggregateRel::_impl_.advanced_extension_)
      - PROTOBUF_FIELD_OFFSET(AggregateRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void ConsistentPartitionWindowRel_WindowRelFunction::clear_output_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.output_type_ != nullptr) _impl_.output_type_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
ConsistentPartitionWindowRel_WindowRelFunction::ConsistentPartitionWindowRel_WindowRelFunction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ConsistentPartitionWindowRel_WindowRelFunction_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ConsistentPartitionWindowRel.WindowRelFunction)
}
PROTOBUF_NDEBUG_INLINE ConsistentPartitionWindowRel_WindowRelFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ConsistentPartitionWindowRel_WindowRelFunction& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        arguments_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ConsistentPartitionWindowRel_WindowRelFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.arguments_)>()
          , from.arguments_
        }
        ,
        options_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ConsistentPartitionWindowRel_WindowRelFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel_WindowRelFunction, _impl_.options_)>()
          , from.options_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ConsistentPartitionWindowRel_WindowRelFunction* 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_.upper_bound_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.upper_bound_)
                : nullptr;
  _impl_.lower_bound_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lower_bound_)
                : nullptr;
  _impl_.output_type_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.output_type_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, function_reference_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, function_reference_),
           offsetof(Impl_, bounds_type_) -
               offsetof(Impl_, function_reference_) +
               sizeof(Impl_::bounds_type_));

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ConsistentPartitionWindowRel_WindowRelFunction_class_data_ =
        ConsistentPartitionWindowRel_WindowRelFunction::InternalGenerateClassData_(ConsistentPartitionWindowRel_WindowRelFunction_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ConsistentPartitionWindowRel_WindowRelFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ConsistentPartitionWindowRel_WindowRelFunction_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ConsistentPartitionWindowRel_WindowRelFunction_class_data_.tc_table);
  return ConsistentPartitionWindowRel_WindowRelFunction_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ConsistentPartitionWindowRel_WindowRelFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ConsistentPartitionWindowRel_WindowRelFunction_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ConsistentPartitionWindowRel_WindowRelFunction_globals_));
  return ConsistentPartitionWindowRel_WindowRelFunction_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ConsistentPartitionWindowRel_WindowRelFunction::ParseTableT_
    ConsistentPartitionWindowRel_WindowRelFunction::_table_ =
        ConsistentPartitionWindowRel_WindowRelFunction::InternalGenerateParseTable_(ConsistentPartitionWindowRel_WindowRelFunction_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ConsistentPartitionWindowRel_WindowRelFunction::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ConsistentPartitionWindowRel.WindowRelFunction)
  ::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, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.arguments_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.options_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.upper_bound_ != nullptr);
      _impl_.upper_bound_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.lower_bound_ != nullptr);
      _impl_.lower_bound_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.output_type_ != nullptr);
      _impl_.output_type_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000e0U)) {
    ::memset(&_impl_.function_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.invocation_) -
        reinterpret_cast<char*>(&_impl_.function_reference_)) + sizeof(_impl_.invocation_));
  }
  _impl_.bounds_type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Expression.WindowFunction.Bound upper_bound = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.upper_bound_, this_._impl_.upper_bound_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Expression.WindowFunction.Bound lower_bound = 5;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.lower_bound_, this_._impl_.lower_bound_->GetCachedSize(), target,
        stream);
  }

  // .substrait.AggregationPhase phase = 6;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_phase() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          6, this_._internal_phase(), target);
    }
  }

  // .substrait.Type output_type = 7;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.output_type_, this_._impl_.output_type_->GetCachedSize(), target,
        stream);
  }

  // repeated .substrait.FunctionArgument arguments = 9;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_arguments_size());
         i < n; i++) {
      const auto& repfield = this_._internal_arguments().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              9, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.AggregateFunction.AggregationInvocation invocation = 10;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    if (this_._internal_invocation() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          10, this_._internal_invocation(), target);
    }
  }

  // repeated .substrait.FunctionOption options = 11;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_options_size());
         i < n; i++) {
      const auto& repfield = this_._internal_options().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              11, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.Expression.WindowFunction.BoundsType bounds_type = 12;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    if (this_._internal_bounds_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          12, this_._internal_bounds_type(), 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.ConsistentPartitionWindowRel.WindowRelFunction)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ConsistentPartitionWindowRel_WindowRelFunction::ByteSizeLong(const MessageLite& base) {
  const ConsistentPartitionWindowRel_WindowRelFunction& this_ = static_cast<const ConsistentPartitionWindowRel_WindowRelFunction&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ConsistentPartitionWindowRel_WindowRelFunction::ByteSizeLong() const {
  const ConsistentPartitionWindowRel_WindowRelFunction& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ConsistentPartitionWindowRel.WindowRelFunction)
  ::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, 0x000000ffU)) {
    // repeated .substrait.FunctionArgument arguments = 9;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_arguments_size();
      for (const auto& msg : this_._internal_arguments()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.FunctionOption options = 11;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_options_size();
      for (const auto& msg : this_._internal_options()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.Expression.WindowFunction.Bound upper_bound = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.upper_bound_);
    }
    // .substrait.Expression.WindowFunction.Bound lower_bound = 5;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.lower_bound_);
    }
    // .substrait.Type output_type = 7;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.output_type_);
    }
    // uint32 function_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_function_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_function_reference());
      }
    }
    // .substrait.AggregationPhase phase = 6;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_phase() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_phase());
      }
    }
    // .substrait.AggregateFunction.AggregationInvocation invocation = 10;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (this_._internal_invocation() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_invocation());
      }
    }
  }
   {
    // .substrait.Expression.WindowFunction.BoundsType bounds_type = 12;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (this_._internal_bounds_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_bounds_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ConsistentPartitionWindowRel_WindowRelFunction::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ConsistentPartitionWindowRel_WindowRelFunction*>(&to_msg);
  auto& from = static_cast<const ConsistentPartitionWindowRel_WindowRelFunction&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ConsistentPartitionWindowRel.WindowRelFunction)
  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, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_arguments()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_arguments());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_options()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_options());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.upper_bound_ != nullptr);
      if (_this->_impl_.upper_bound_ == nullptr) {
        _this->_impl_.upper_bound_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.upper_bound_);
      } else {
        _this->_impl_.upper_bound_->MergeFrom(*from._impl_.upper_bound_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.lower_bound_ != nullptr);
      if (_this->_impl_.lower_bound_ == nullptr) {
        _this->_impl_.lower_bound_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lower_bound_);
      } else {
        _this->_impl_.lower_bound_->MergeFrom(*from._impl_.lower_bound_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.output_type_ != nullptr);
      if (_this->_impl_.output_type_ == nullptr) {
        _this->_impl_.output_type_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.output_type_);
      } else {
        _this->_impl_.output_type_->MergeFrom(*from._impl_.output_type_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_function_reference() != 0) {
        _this->_impl_.function_reference_ = from._impl_.function_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_phase() != 0) {
        _this->_impl_.phase_ = from._impl_.phase_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (from._internal_invocation() != 0) {
        _this->_impl_.invocation_ = from._impl_.invocation_;
      }
    }
  }
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    if (from._internal_bounds_type() != 0) {
      _this->_impl_.bounds_type_ = from._impl_.bounds_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ConsistentPartitionWindowRel_WindowRelFunction::InternalSwap(ConsistentPartitionWindowRel_WindowRelFunction* 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_.arguments_.InternalSwap(&other->_impl_.arguments_);
  _impl_.options_.InternalSwap(&other->_impl_.options_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.bounds_type_)
      + sizeof(ConsistentPartitionWindowRel_WindowRelFunction::_impl_.bounds_type_)
      - PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel_WindowRelFunction, _impl_.upper_bound_)>(
          reinterpret_cast<char*>(&_impl_.upper_bound_),
          reinterpret_cast<char*>(&other->_impl_.upper_bound_));
}

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

void ConsistentPartitionWindowRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
ConsistentPartitionWindowRel::ConsistentPartitionWindowRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ConsistentPartitionWindowRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ConsistentPartitionWindowRel)
}
PROTOBUF_NDEBUG_INLINE ConsistentPartitionWindowRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ConsistentPartitionWindowRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        window_functions_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ConsistentPartitionWindowRel,
              PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.window_functions_)>()
          , from.window_functions_
        }
        ,
        partition_expressions_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ConsistentPartitionWindowRel,
              PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.partition_expressions_)>()
          , from.partition_expressions_
        }
        ,
        sorts_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ConsistentPartitionWindowRel,
              PROTOBUF_FIELD_OFFSET(::substrait::ConsistentPartitionWindowRel, _impl_.sorts_)>()
          , from.sorts_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ConsistentPartitionWindowRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ConsistentPartitionWindowRel_class_data_ =
        ConsistentPartitionWindowRel::InternalGenerateClassData_(ConsistentPartitionWindowRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ConsistentPartitionWindowRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ConsistentPartitionWindowRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ConsistentPartitionWindowRel_class_data_.tc_table);
  return ConsistentPartitionWindowRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ConsistentPartitionWindowRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ConsistentPartitionWindowRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ConsistentPartitionWindowRel_globals_));
  return ConsistentPartitionWindowRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ConsistentPartitionWindowRel::ParseTableT_
    ConsistentPartitionWindowRel::_table_ =
        ConsistentPartitionWindowRel::InternalGenerateParseTable_(ConsistentPartitionWindowRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ConsistentPartitionWindowRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ConsistentPartitionWindowRel)
  ::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, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.window_functions_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.partition_expressions_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.sorts_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Rel input = 2;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.input_, this_._impl_.input_->GetCachedSize(), target,
        stream);
  }

  // repeated .substrait.ConsistentPartitionWindowRel.WindowRelFunction window_functions = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_window_functions_size());
         i < n; i++) {
      const auto& repfield = this_._internal_window_functions().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .substrait.Expression partition_expressions = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_partition_expressions_size());
         i < n; i++) {
      const auto& repfield = this_._internal_partition_expressions().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .substrait.SortField sorts = 5;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_sorts_size());
         i < n; i++) {
      const auto& repfield = this_._internal_sorts().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              5, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.ConsistentPartitionWindowRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ConsistentPartitionWindowRel::ByteSizeLong(const MessageLite& base) {
  const ConsistentPartitionWindowRel& this_ = static_cast<const ConsistentPartitionWindowRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ConsistentPartitionWindowRel::ByteSizeLong() const {
  const ConsistentPartitionWindowRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ConsistentPartitionWindowRel)
  ::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, 0x0000003fU)) {
    // repeated .substrait.ConsistentPartitionWindowRel.WindowRelFunction window_functions = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_window_functions_size();
      for (const auto& msg : this_._internal_window_functions()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.Expression partition_expressions = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_partition_expressions_size();
      for (const auto& msg : this_._internal_partition_expressions()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.SortField sorts = 5;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_sorts_size();
      for (const auto& msg : this_._internal_sorts()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel input = 2;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ConsistentPartitionWindowRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ConsistentPartitionWindowRel*>(&to_msg);
  auto& from = static_cast<const ConsistentPartitionWindowRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ConsistentPartitionWindowRel)
  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, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_window_functions()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_window_functions());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_partition_expressions()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_partition_expressions());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_sorts()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_sorts());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ConsistentPartitionWindowRel::InternalSwap(ConsistentPartitionWindowRel* 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_.window_functions_.InternalSwap(&other->_impl_.window_functions_);
  _impl_.partition_expressions_.InternalSwap(&other->_impl_.partition_expressions_);
  _impl_.sorts_.InternalSwap(&other->_impl_.sorts_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.advanced_extension_)
      + sizeof(ConsistentPartitionWindowRel::_impl_.advanced_extension_)
      - PROTOBUF_FIELD_OFFSET(ConsistentPartitionWindowRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void SortRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
SortRel::SortRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SortRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.SortRel)
}
PROTOBUF_NDEBUG_INLINE SortRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::SortRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        sorts_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::SortRel,
              PROTOBUF_FIELD_OFFSET(::substrait::SortRel, _impl_.sorts_)>()
          , from.sorts_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SortRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SortRel_class_data_ =
        SortRel::InternalGenerateClassData_(SortRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SortRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SortRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SortRel_class_data_.tc_table);
  return SortRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SortRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SortRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SortRel_globals_));
  return SortRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SortRel::ParseTableT_
    SortRel::_table_ =
        SortRel::InternalGenerateParseTable_(SortRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SortRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.SortRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.sorts_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Rel input = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.input_, this_._impl_.input_->GetCachedSize(), target,
        stream);
  }

  // repeated .substrait.SortField sorts = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_sorts_size());
         i < n; i++) {
      const auto& repfield = this_._internal_sorts().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.SortRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SortRel::ByteSizeLong(const MessageLite& base) {
  const SortRel& this_ = static_cast<const SortRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SortRel::ByteSizeLong() const {
  const SortRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.SortRel)
  ::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.SortField sorts = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_sorts_size();
      for (const auto& msg : this_._internal_sorts()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel input = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SortRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<SortRel*>(&to_msg);
  auto& from = static_cast<const SortRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.SortRel)
  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_sorts()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_sorts());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SortRel::InternalSwap(SortRel* 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_.sorts_.InternalSwap(&other->_impl_.sorts_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SortRel, _impl_.advanced_extension_)
      + sizeof(SortRel::_impl_.advanced_extension_)
      - PROTOBUF_FIELD_OFFSET(SortRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void FilterRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
FilterRel::FilterRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FilterRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.FilterRel)
}
PROTOBUF_NDEBUG_INLINE FilterRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::FilterRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FilterRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;
  _impl_.condition_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.condition_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FilterRel_class_data_ =
        FilterRel::InternalGenerateClassData_(FilterRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FilterRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FilterRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FilterRel_class_data_.tc_table);
  return FilterRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FilterRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FilterRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&FilterRel_globals_));
  return FilterRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FilterRel::ParseTableT_
    FilterRel::_table_ =
        FilterRel::InternalGenerateParseTable_(FilterRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FilterRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.FilterRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.condition_ != nullptr);
      _impl_.condition_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  // .substrait.Expression condition = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.condition_, this_._impl_.condition_->GetCachedSize(), target,
        stream);
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.FilterRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FilterRel::ByteSizeLong(const MessageLite& base) {
  const FilterRel& this_ = static_cast<const FilterRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FilterRel::ByteSizeLong() const {
  const FilterRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.FilterRel)
  ::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.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel input = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
    // .substrait.Expression condition = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.condition_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void FilterRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FilterRel*>(&to_msg);
  auto& from = static_cast<const FilterRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.FilterRel)
  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_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.condition_ != nullptr);
      if (_this->_impl_.condition_ == nullptr) {
        _this->_impl_.condition_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.condition_);
      } else {
        _this->_impl_.condition_->MergeFrom(*from._impl_.condition_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void FilterRel::InternalSwap(FilterRel* 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(FilterRel, _impl_.advanced_extension_)
      + sizeof(FilterRel::_impl_.advanced_extension_)
      - PROTOBUF_FIELD_OFFSET(FilterRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void SetRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
SetRel::SetRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SetRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.SetRel)
}
PROTOBUF_NDEBUG_INLINE SetRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::SetRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        inputs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::SetRel,
              PROTOBUF_FIELD_OFFSET(::substrait::SetRel, _impl_.inputs_)>()
          , from.inputs_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SetRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;
  _impl_.op_ = from._impl_.op_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SetRel_class_data_ =
        SetRel::InternalGenerateClassData_(SetRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SetRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SetRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SetRel_class_data_.tc_table);
  return SetRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SetRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SetRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SetRel_globals_));
  return SetRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SetRel::ParseTableT_
    SetRel::_table_ =
        SetRel::InternalGenerateParseTable_(SetRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SetRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.SetRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.inputs_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_.op_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // repeated .substrait.Rel inputs = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_inputs_size());
         i < n; i++) {
      const auto& repfield = this_._internal_inputs().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.SetRel.SetOp op = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_op() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_op(), target);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.SetRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SetRel::ByteSizeLong(const MessageLite& base) {
  const SetRel& this_ = static_cast<const SetRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SetRel::ByteSizeLong() const {
  const SetRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.SetRel)
  ::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.Rel inputs = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_inputs_size();
      for (const auto& msg : this_._internal_inputs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
    // .substrait.SetRel.SetOp op = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_op() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_op());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SetRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<SetRel*>(&to_msg);
  auto& from = static_cast<const SetRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.SetRel)
  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_inputs()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_inputs());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_op() != 0) {
        _this->_impl_.op_ = from._impl_.op_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SetRel::InternalSwap(SetRel* 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_.inputs_.InternalSwap(&other->_impl_.inputs_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SetRel, _impl_.op_)
      + sizeof(SetRel::_impl_.op_)
      - PROTOBUF_FIELD_OFFSET(SetRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void ExtensionSingleRel::clear_detail() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.detail_ != nullptr) _impl_.detail_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
ExtensionSingleRel::ExtensionSingleRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExtensionSingleRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ExtensionSingleRel)
}
PROTOBUF_NDEBUG_INLINE ExtensionSingleRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ExtensionSingleRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExtensionSingleRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;
  _impl_.detail_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detail_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExtensionSingleRel_class_data_ =
        ExtensionSingleRel::InternalGenerateClassData_(ExtensionSingleRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtensionSingleRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExtensionSingleRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExtensionSingleRel_class_data_.tc_table);
  return ExtensionSingleRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtensionSingleRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExtensionSingleRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExtensionSingleRel_globals_));
  return ExtensionSingleRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExtensionSingleRel::ParseTableT_
    ExtensionSingleRel::_table_ =
        ExtensionSingleRel::InternalGenerateParseTable_(ExtensionSingleRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExtensionSingleRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExtensionSingleRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.detail_ != nullptr);
      _impl_.detail_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  // .google.protobuf.Any detail = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.detail_, this_._impl_.detail_->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.ExtensionSingleRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExtensionSingleRel::ByteSizeLong(const MessageLite& base) {
  const ExtensionSingleRel& this_ = static_cast<const ExtensionSingleRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExtensionSingleRel::ByteSizeLong() const {
  const ExtensionSingleRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ExtensionSingleRel)
  ::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.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel input = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
    // .google.protobuf.Any detail = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.detail_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExtensionSingleRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExtensionSingleRel*>(&to_msg);
  auto& from = static_cast<const ExtensionSingleRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ExtensionSingleRel)
  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_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.detail_ != nullptr);
      if (_this->_impl_.detail_ == nullptr) {
        _this->_impl_.detail_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detail_);
      } else {
        _this->_impl_.detail_->MergeFrom(*from._impl_.detail_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ExtensionSingleRel::InternalSwap(ExtensionSingleRel* 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(ExtensionSingleRel, _impl_.detail_)
      + sizeof(ExtensionSingleRel::_impl_.detail_)
      - PROTOBUF_FIELD_OFFSET(ExtensionSingleRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void ExtensionLeafRel::clear_detail() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.detail_ != nullptr) _impl_.detail_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
ExtensionLeafRel::ExtensionLeafRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExtensionLeafRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ExtensionLeafRel)
}
PROTOBUF_NDEBUG_INLINE ExtensionLeafRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ExtensionLeafRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExtensionLeafRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.detail_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detail_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExtensionLeafRel_class_data_ =
        ExtensionLeafRel::InternalGenerateClassData_(ExtensionLeafRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtensionLeafRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExtensionLeafRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExtensionLeafRel_class_data_.tc_table);
  return ExtensionLeafRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtensionLeafRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExtensionLeafRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExtensionLeafRel_globals_));
  return ExtensionLeafRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExtensionLeafRel::ParseTableT_
    ExtensionLeafRel::_table_ =
        ExtensionLeafRel::InternalGenerateParseTable_(ExtensionLeafRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExtensionLeafRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExtensionLeafRel)
  ::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_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.detail_ != nullptr);
      _impl_.detail_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .google.protobuf.Any detail = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.detail_, this_._impl_.detail_->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.ExtensionLeafRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExtensionLeafRel::ByteSizeLong(const MessageLite& base) {
  const ExtensionLeafRel& this_ = static_cast<const ExtensionLeafRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExtensionLeafRel::ByteSizeLong() const {
  const ExtensionLeafRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ExtensionLeafRel)
  ::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)) {
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .google.protobuf.Any detail = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.detail_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExtensionLeafRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExtensionLeafRel*>(&to_msg);
  auto& from = static_cast<const ExtensionLeafRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ExtensionLeafRel)
  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)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.detail_ != nullptr);
      if (_this->_impl_.detail_ == nullptr) {
        _this->_impl_.detail_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detail_);
      } else {
        _this->_impl_.detail_->MergeFrom(*from._impl_.detail_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ExtensionLeafRel::InternalSwap(ExtensionLeafRel* 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(ExtensionLeafRel, _impl_.detail_)
      + sizeof(ExtensionLeafRel::_impl_.detail_)
      - PROTOBUF_FIELD_OFFSET(ExtensionLeafRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void ExtensionMultiRel::clear_detail() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.detail_ != nullptr) _impl_.detail_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
ExtensionMultiRel::ExtensionMultiRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExtensionMultiRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ExtensionMultiRel)
}
PROTOBUF_NDEBUG_INLINE ExtensionMultiRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ExtensionMultiRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        inputs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ExtensionMultiRel,
              PROTOBUF_FIELD_OFFSET(::substrait::ExtensionMultiRel, _impl_.inputs_)>()
          , from.inputs_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExtensionMultiRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.detail_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detail_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExtensionMultiRel_class_data_ =
        ExtensionMultiRel::InternalGenerateClassData_(ExtensionMultiRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtensionMultiRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExtensionMultiRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExtensionMultiRel_class_data_.tc_table);
  return ExtensionMultiRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtensionMultiRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExtensionMultiRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExtensionMultiRel_globals_));
  return ExtensionMultiRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExtensionMultiRel::ParseTableT_
    ExtensionMultiRel::_table_ =
        ExtensionMultiRel::InternalGenerateParseTable_(ExtensionMultiRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExtensionMultiRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExtensionMultiRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.inputs_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.detail_ != nullptr);
      _impl_.detail_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // repeated .substrait.Rel inputs = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_inputs_size());
         i < n; i++) {
      const auto& repfield = this_._internal_inputs().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .google.protobuf.Any detail = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.detail_, this_._impl_.detail_->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.ExtensionMultiRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExtensionMultiRel::ByteSizeLong(const MessageLite& base) {
  const ExtensionMultiRel& this_ = static_cast<const ExtensionMultiRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExtensionMultiRel::ByteSizeLong() const {
  const ExtensionMultiRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ExtensionMultiRel)
  ::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.Rel inputs = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_inputs_size();
      for (const auto& msg : this_._internal_inputs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .google.protobuf.Any detail = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.detail_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExtensionMultiRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExtensionMultiRel*>(&to_msg);
  auto& from = static_cast<const ExtensionMultiRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ExtensionMultiRel)
  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_inputs()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_inputs());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.detail_ != nullptr);
      if (_this->_impl_.detail_ == nullptr) {
        _this->_impl_.detail_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detail_);
      } else {
        _this->_impl_.detail_->MergeFrom(*from._impl_.detail_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ExtensionMultiRel::InternalSwap(ExtensionMultiRel* 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_.inputs_.InternalSwap(&other->_impl_.inputs_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ExtensionMultiRel, _impl_.detail_)
      + sizeof(ExtensionMultiRel::_impl_.detail_)
      - PROTOBUF_FIELD_OFFSET(ExtensionMultiRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExchangeRel_ScatterFields* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void ExchangeRel_ScatterFields::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ExchangeRel_ScatterFields::~ExchangeRel_ScatterFields() {
  // @@protoc_insertion_point(destructor:substrait.ExchangeRel.ScatterFields)
  SharedDtor(*this);
}
inline void ExchangeRel_ScatterFields::SharedDtor(MessageLite& self) {
  ExchangeRel_ScatterFields& this_ = static_cast<ExchangeRel_ScatterFields&>(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 ExchangeRel_ScatterFields_class_data_ =
        ExchangeRel_ScatterFields::InternalGenerateClassData_(ExchangeRel_ScatterFields_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel_ScatterFields::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_ScatterFields_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExchangeRel_ScatterFields_class_data_.tc_table);
  return ExchangeRel_ScatterFields_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel_ScatterFields::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_ScatterFields_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExchangeRel_ScatterFields_globals_));
  return ExchangeRel_ScatterFields_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExchangeRel_ScatterFields::ParseTableT_
    ExchangeRel_ScatterFields::_table_ =
        ExchangeRel_ScatterFields::InternalGenerateParseTable_(ExchangeRel_ScatterFields_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExchangeRel_ScatterFields::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExchangeRel.ScatterFields)
  ::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_.fields_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression.FieldReference fields = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_fields_size());
         i < n; i++) {
      const auto& repfield = this_._internal_fields().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.ExchangeRel.ScatterFields)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExchangeRel_ScatterFields::ByteSizeLong(const MessageLite& base) {
  const ExchangeRel_ScatterFields& this_ = static_cast<const ExchangeRel_ScatterFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExchangeRel_ScatterFields::ByteSizeLong() const {
  const ExchangeRel_ScatterFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ExchangeRel.ScatterFields)
  ::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_);
   {
    // repeated .substrait.Expression.FieldReference fields = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_fields_size();
      for (const auto& msg : this_._internal_fields()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_fields()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_fields());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ExchangeRel_ScatterFields::InternalSwap(ExchangeRel_ScatterFields* 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_.fields_.InternalSwap(&other->_impl_.fields_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExchangeRel_SingleBucketExpression* 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_.expression_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.expression_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExchangeRel_SingleBucketExpression_class_data_ =
        ExchangeRel_SingleBucketExpression::InternalGenerateClassData_(ExchangeRel_SingleBucketExpression_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel_SingleBucketExpression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_SingleBucketExpression_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExchangeRel_SingleBucketExpression_class_data_.tc_table);
  return ExchangeRel_SingleBucketExpression_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel_SingleBucketExpression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_SingleBucketExpression_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExchangeRel_SingleBucketExpression_globals_));
  return ExchangeRel_SingleBucketExpression_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExchangeRel_SingleBucketExpression::ParseTableT_
    ExchangeRel_SingleBucketExpression::_table_ =
        ExchangeRel_SingleBucketExpression::InternalGenerateParseTable_(ExchangeRel_SingleBucketExpression_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExchangeRel_SingleBucketExpression::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExchangeRel.SingleBucketExpression)
  ::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_.expression_ != nullptr);
    _impl_.expression_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.Expression expression = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.expression_, this_._impl_.expression_->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.ExchangeRel.SingleBucketExpression)
  return target;
}

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

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

   {
    // .substrait.Expression expression = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.expression_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(from._impl_.expression_ != nullptr);
    if (_this->_impl_.expression_ == nullptr) {
      _this->_impl_.expression_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.expression_);
    } else {
      _this->_impl_.expression_->MergeFrom(*from._impl_.expression_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExchangeRel_MultiBucketExpression* 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_.expression_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.expression_)
                : nullptr;
  _impl_.constrained_to_count_ = from._impl_.constrained_to_count_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExchangeRel_MultiBucketExpression_class_data_ =
        ExchangeRel_MultiBucketExpression::InternalGenerateClassData_(ExchangeRel_MultiBucketExpression_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel_MultiBucketExpression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_MultiBucketExpression_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExchangeRel_MultiBucketExpression_class_data_.tc_table);
  return ExchangeRel_MultiBucketExpression_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel_MultiBucketExpression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_MultiBucketExpression_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExchangeRel_MultiBucketExpression_globals_));
  return ExchangeRel_MultiBucketExpression_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExchangeRel_MultiBucketExpression::ParseTableT_
    ExchangeRel_MultiBucketExpression::_table_ =
        ExchangeRel_MultiBucketExpression::InternalGenerateParseTable_(ExchangeRel_MultiBucketExpression_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExchangeRel_MultiBucketExpression::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExchangeRel.MultiBucketExpression)
  ::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_.expression_ != nullptr);
    _impl_.expression_->Clear();
  }
  _impl_.constrained_to_count_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // bool constrained_to_count = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_constrained_to_count() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_constrained_to_count(), 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.ExchangeRel.MultiBucketExpression)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExchangeRel_MultiBucketExpression::ByteSizeLong(const MessageLite& base) {
  const ExchangeRel_MultiBucketExpression& this_ = static_cast<const ExchangeRel_MultiBucketExpression&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExchangeRel_MultiBucketExpression::ByteSizeLong() const {
  const ExchangeRel_MultiBucketExpression& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ExchangeRel.MultiBucketExpression)
  ::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)) {
    // .substrait.Expression expression = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.expression_);
    }
    // bool constrained_to_count = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_constrained_to_count() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExchangeRel_MultiBucketExpression::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExchangeRel_MultiBucketExpression*>(&to_msg);
  auto& from = static_cast<const ExchangeRel_MultiBucketExpression&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ExchangeRel.MultiBucketExpression)
  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)) {
      ABSL_DCHECK(from._impl_.expression_ != nullptr);
      if (_this->_impl_.expression_ == nullptr) {
        _this->_impl_.expression_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.expression_);
      } else {
        _this->_impl_.expression_->MergeFrom(*from._impl_.expression_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_constrained_to_count() != 0) {
        _this->_impl_.constrained_to_count_ = from._impl_.constrained_to_count_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ExchangeRel_MultiBucketExpression::InternalSwap(ExchangeRel_MultiBucketExpression* 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(ExchangeRel_MultiBucketExpression, _impl_.constrained_to_count_)
      + sizeof(ExchangeRel_MultiBucketExpression::_impl_.constrained_to_count_)
      - PROTOBUF_FIELD_OFFSET(ExchangeRel_MultiBucketExpression, _impl_.expression_)>(
          reinterpret_cast<char*>(&_impl_.expression_),
          reinterpret_cast<char*>(&other->_impl_.expression_));
}

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

ExchangeRel_Broadcast::ExchangeRel_Broadcast(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, ExchangeRel_Broadcast_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:substrait.ExchangeRel.Broadcast)
}
ExchangeRel_Broadcast::ExchangeRel_Broadcast(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ExchangeRel_Broadcast& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, ExchangeRel_Broadcast_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExchangeRel_Broadcast* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:substrait.ExchangeRel.Broadcast)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExchangeRel_Broadcast_class_data_ =
        ExchangeRel_Broadcast::InternalGenerateClassData_(ExchangeRel_Broadcast_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel_Broadcast::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_Broadcast_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExchangeRel_Broadcast_class_data_.tc_table);
  return ExchangeRel_Broadcast_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel_Broadcast::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_Broadcast_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExchangeRel_Broadcast_globals_));
  return ExchangeRel_Broadcast_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExchangeRel_Broadcast::ParseTableT_
    ExchangeRel_Broadcast::_table_ =
        ExchangeRel_Broadcast::InternalGenerateParseTable_(ExchangeRel_Broadcast_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata ExchangeRel_Broadcast::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ExchangeRel_RoundRobin::ExchangeRel_RoundRobin(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExchangeRel_RoundRobin_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ExchangeRel.RoundRobin)
}
ExchangeRel_RoundRobin::ExchangeRel_RoundRobin(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ExchangeRel_RoundRobin& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExchangeRel_RoundRobin_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 ExchangeRel_RoundRobin::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ExchangeRel_RoundRobin::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.exact_ = {};
}
ExchangeRel_RoundRobin::~ExchangeRel_RoundRobin() {
  // @@protoc_insertion_point(destructor:substrait.ExchangeRel.RoundRobin)
  SharedDtor(*this);
}
inline void ExchangeRel_RoundRobin::SharedDtor(MessageLite& self) {
  ExchangeRel_RoundRobin& this_ = static_cast<ExchangeRel_RoundRobin&>(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 ExchangeRel_RoundRobin_class_data_ =
        ExchangeRel_RoundRobin::InternalGenerateClassData_(ExchangeRel_RoundRobin_globals_._default);

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

  _impl_.exact_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool exact = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_exact() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_exact(), 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.ExchangeRel.RoundRobin)
  return target;
}

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

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

   {
    // bool exact = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_exact() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_exact() != 0) {
      _this->_impl_.exact_ = from._impl_.exact_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

void ExchangeRel_ExchangeTarget::set_allocated_extended(::google::protobuf::Any* PROTOBUF_NULLABLE extended) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_target_type();
  if (extended) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(extended)->GetArena();
    if (message_arena != submessage_arena) {
      extended = ::google::protobuf::internal::GetOwnedMessage(message_arena, extended, submessage_arena);
    }
    set_has_extended();
    _impl_.target_type_.extended_ = extended;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ExchangeRel.ExchangeTarget.extended)
}
void ExchangeRel_ExchangeTarget::clear_extended() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (target_type_case() == kExtended) {
    if (GetArena() == nullptr) {
      delete _impl_.target_type_.extended_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.target_type_.extended_);
    }
    clear_has_target_type();
  }
}
ExchangeRel_ExchangeTarget::ExchangeRel_ExchangeTarget(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExchangeRel_ExchangeTarget_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ExchangeRel.ExchangeTarget)
}
PROTOBUF_NDEBUG_INLINE ExchangeRel_ExchangeTarget::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ExchangeRel_ExchangeTarget& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        partition_id_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ExchangeRel_ExchangeTarget,
              PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ExchangeTarget, _impl_.partition_id_)>()
          , from.partition_id_
        }
        ,
        _partition_id_cached_byte_size_{0},
        target_type_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExchangeRel_ExchangeTarget* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (target_type_case()) {
    case TARGET_TYPE_NOT_SET:
      break;
      case kUri:
        new (&_impl_.target_type_.uri_) decltype(_impl_.target_type_.uri_){arena, from._impl_.target_type_.uri_};
        break;
      case kExtended:
        _impl_.target_type_.extended_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.target_type_.extended_);
        break;
  }

  // @@protoc_insertion_point(copy_constructor:substrait.ExchangeRel.ExchangeTarget)
}
PROTOBUF_NDEBUG_INLINE ExchangeRel_ExchangeTarget::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        partition_id_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::ExchangeRel_ExchangeTarget,
            PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel_ExchangeTarget, _impl_.partition_id_)>()
         }
        ,
        _partition_id_cached_byte_size_{0},
        target_type_{},
        _oneof_case_{} {}

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

void ExchangeRel_ExchangeTarget::clear_target_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.ExchangeRel.ExchangeTarget)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (target_type_case()) {
    case kUri: {
      _impl_.target_type_.uri_.Destroy();
      break;
    }
    case kExtended: {
      if (GetArena() == nullptr) {
        delete _impl_.target_type_.extended_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.target_type_.extended_);
      }
      break;
    }
    case TARGET_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TARGET_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExchangeRel_ExchangeTarget_class_data_ =
        ExchangeRel_ExchangeTarget::InternalGenerateClassData_(ExchangeRel_ExchangeTarget_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel_ExchangeTarget::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_ExchangeTarget_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExchangeRel_ExchangeTarget_class_data_.tc_table);
  return ExchangeRel_ExchangeTarget_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel_ExchangeTarget::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_ExchangeTarget_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExchangeRel_ExchangeTarget_globals_));
  return ExchangeRel_ExchangeTarget_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExchangeRel_ExchangeTarget::ParseTableT_
    ExchangeRel_ExchangeTarget::_table_ =
        ExchangeRel_ExchangeTarget::InternalGenerateParseTable_(ExchangeRel_ExchangeTarget_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExchangeRel_ExchangeTarget::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExchangeRel.ExchangeTarget)
  ::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_.partition_id_.Clear();
  }
  clear_target_type();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated int32 partition_id = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      int byte_size = this_._impl_._partition_id_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteInt32Packed(
            1, this_._internal_partition_id(), byte_size, target);
      }
    }
  }

  switch (this_.target_type_case()) {
    case kUri: {
      const ::std::string& _s = this_._internal_uri();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.ExchangeRel.ExchangeTarget.uri");
      target = stream->WriteStringMaybeAliased(2, _s, target);
      break;
    }
    case kExtended: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.target_type_.extended_, this_._impl_.target_type_.extended_->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.ExchangeRel.ExchangeTarget)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExchangeRel_ExchangeTarget::ByteSizeLong(const MessageLite& base) {
  const ExchangeRel_ExchangeTarget& this_ = static_cast<const ExchangeRel_ExchangeTarget&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExchangeRel_ExchangeTarget::ByteSizeLong() const {
  const ExchangeRel_ExchangeTarget& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ExchangeRel.ExchangeTarget)
  ::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_);
   {
    // repeated int32 partition_id = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          ::_pbi::WireFormatLite::Int32SizeWithPackedTagSize(
              this_._internal_partition_id(), 1,
              this_._impl_._partition_id_cached_byte_size_);
    }
  }
  switch (this_.target_type_case()) {
    // string uri = 2;
    case kUri: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_uri());
      break;
    }
    // .google.protobuf.Any extended = 3;
    case kExtended: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.target_type_.extended_);
      break;
    }
    case TARGET_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_partition_id()->MergeFrom(from._internal_partition_id());
  }
  _this->_impl_._has_bits_[0] |= 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_target_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kUri: {
        if (oneof_needs_init) {
          _this->_impl_.target_type_.uri_.InitDefault();
        }
        _this->_impl_.target_type_.uri_.Set(from._internal_uri(), arena);
        break;
      }
      case kExtended: {
        if (oneof_needs_init) {
          _this->_impl_.target_type_.extended_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.target_type_.extended_);
        } else {
          _this->_impl_.target_type_.extended_->MergeFrom(*from._impl_.target_type_.extended_);
        }
        break;
      }
      case TARGET_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ExchangeRel_ExchangeTarget::InternalSwap(ExchangeRel_ExchangeTarget* 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_.partition_id_.InternalSwap(&other->_impl_.partition_id_);
  swap(_impl_.target_type_, other->_impl_.target_type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

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

void ExchangeRel::set_allocated_scatter_by_fields(::substrait::ExchangeRel_ScatterFields* PROTOBUF_NULLABLE scatter_by_fields) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_exchange_kind();
  if (scatter_by_fields) {
    ::google::protobuf::Arena* submessage_arena = scatter_by_fields->GetArena();
    if (message_arena != submessage_arena) {
      scatter_by_fields = ::google::protobuf::internal::GetOwnedMessage(message_arena, scatter_by_fields, submessage_arena);
    }
    set_has_scatter_by_fields();
    _impl_.exchange_kind_.scatter_by_fields_ = scatter_by_fields;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ExchangeRel.scatter_by_fields)
}
void ExchangeRel::set_allocated_single_target(::substrait::ExchangeRel_SingleBucketExpression* PROTOBUF_NULLABLE single_target) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_exchange_kind();
  if (single_target) {
    ::google::protobuf::Arena* submessage_arena = single_target->GetArena();
    if (message_arena != submessage_arena) {
      single_target = ::google::protobuf::internal::GetOwnedMessage(message_arena, single_target, submessage_arena);
    }
    set_has_single_target();
    _impl_.exchange_kind_.single_target_ = single_target;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ExchangeRel.single_target)
}
void ExchangeRel::set_allocated_multi_target(::substrait::ExchangeRel_MultiBucketExpression* PROTOBUF_NULLABLE multi_target) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_exchange_kind();
  if (multi_target) {
    ::google::protobuf::Arena* submessage_arena = multi_target->GetArena();
    if (message_arena != submessage_arena) {
      multi_target = ::google::protobuf::internal::GetOwnedMessage(message_arena, multi_target, submessage_arena);
    }
    set_has_multi_target();
    _impl_.exchange_kind_.multi_target_ = multi_target;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ExchangeRel.multi_target)
}
void ExchangeRel::set_allocated_round_robin(::substrait::ExchangeRel_RoundRobin* PROTOBUF_NULLABLE round_robin) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_exchange_kind();
  if (round_robin) {
    ::google::protobuf::Arena* submessage_arena = round_robin->GetArena();
    if (message_arena != submessage_arena) {
      round_robin = ::google::protobuf::internal::GetOwnedMessage(message_arena, round_robin, submessage_arena);
    }
    set_has_round_robin();
    _impl_.exchange_kind_.round_robin_ = round_robin;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ExchangeRel.round_robin)
}
void ExchangeRel::set_allocated_broadcast(::substrait::ExchangeRel_Broadcast* PROTOBUF_NULLABLE broadcast) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_exchange_kind();
  if (broadcast) {
    ::google::protobuf::Arena* submessage_arena = broadcast->GetArena();
    if (message_arena != submessage_arena) {
      broadcast = ::google::protobuf::internal::GetOwnedMessage(message_arena, broadcast, submessage_arena);
    }
    set_has_broadcast();
    _impl_.exchange_kind_.broadcast_ = broadcast;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ExchangeRel.broadcast)
}
void ExchangeRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
ExchangeRel::ExchangeRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExchangeRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ExchangeRel)
}
PROTOBUF_NDEBUG_INLINE ExchangeRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ExchangeRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        targets_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::ExchangeRel,
              PROTOBUF_FIELD_OFFSET(::substrait::ExchangeRel, _impl_.targets_)>()
          , from.targets_
        }
        ,
        exchange_kind_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExchangeRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;
  _impl_.partition_count_ = from._impl_.partition_count_;
  switch (exchange_kind_case()) {
    case EXCHANGE_KIND_NOT_SET:
      break;
      case kScatterByFields:
        _impl_.exchange_kind_.scatter_by_fields_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exchange_kind_.scatter_by_fields_);
        break;
      case kSingleTarget:
        _impl_.exchange_kind_.single_target_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exchange_kind_.single_target_);
        break;
      case kMultiTarget:
        _impl_.exchange_kind_.multi_target_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exchange_kind_.multi_target_);
        break;
      case kRoundRobin:
        _impl_.exchange_kind_.round_robin_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exchange_kind_.round_robin_);
        break;
      case kBroadcast:
        _impl_.exchange_kind_.broadcast_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exchange_kind_.broadcast_);
        break;
  }

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

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

void ExchangeRel::clear_exchange_kind() {
// @@protoc_insertion_point(one_of_clear_start:substrait.ExchangeRel)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (exchange_kind_case()) {
    case kScatterByFields: {
      if (GetArena() == nullptr) {
        delete _impl_.exchange_kind_.scatter_by_fields_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.exchange_kind_.scatter_by_fields_);
      }
      break;
    }
    case kSingleTarget: {
      if (GetArena() == nullptr) {
        delete _impl_.exchange_kind_.single_target_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.exchange_kind_.single_target_);
      }
      break;
    }
    case kMultiTarget: {
      if (GetArena() == nullptr) {
        delete _impl_.exchange_kind_.multi_target_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.exchange_kind_.multi_target_);
      }
      break;
    }
    case kRoundRobin: {
      if (GetArena() == nullptr) {
        delete _impl_.exchange_kind_.round_robin_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.exchange_kind_.round_robin_);
      }
      break;
    }
    case kBroadcast: {
      if (GetArena() == nullptr) {
        delete _impl_.exchange_kind_.broadcast_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.exchange_kind_.broadcast_);
      }
      break;
    }
    case EXCHANGE_KIND_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = EXCHANGE_KIND_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExchangeRel_class_data_ =
        ExchangeRel::InternalGenerateClassData_(ExchangeRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExchangeRel_class_data_.tc_table);
  return ExchangeRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExchangeRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExchangeRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExchangeRel_globals_));
  return ExchangeRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExchangeRel::ParseTableT_
    ExchangeRel::_table_ =
        ExchangeRel::InternalGenerateParseTable_(ExchangeRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExchangeRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExchangeRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.targets_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_.partition_count_ = 0;
  clear_exchange_kind();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Rel input = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.input_, this_._impl_.input_->GetCachedSize(), target,
        stream);
  }

  // int32 partition_count = 3;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_partition_count() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
              stream, this_._internal_partition_count(), target);
    }
  }

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

  switch (this_.exchange_kind_case()) {
    case kScatterByFields: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          5, *this_._impl_.exchange_kind_.scatter_by_fields_, this_._impl_.exchange_kind_.scatter_by_fields_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSingleTarget: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          6, *this_._impl_.exchange_kind_.single_target_, this_._impl_.exchange_kind_.single_target_->GetCachedSize(), target,
          stream);
      break;
    }
    case kMultiTarget: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          7, *this_._impl_.exchange_kind_.multi_target_, this_._impl_.exchange_kind_.multi_target_->GetCachedSize(), target,
          stream);
      break;
    }
    case kRoundRobin: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          8, *this_._impl_.exchange_kind_.round_robin_, this_._impl_.exchange_kind_.round_robin_->GetCachedSize(), target,
          stream);
      break;
    }
    case kBroadcast: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          9, *this_._impl_.exchange_kind_.broadcast_, this_._impl_.exchange_kind_.broadcast_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.ExchangeRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExchangeRel::ByteSizeLong(const MessageLite& base) {
  const ExchangeRel& this_ = static_cast<const ExchangeRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExchangeRel::ByteSizeLong() const {
  const ExchangeRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ExchangeRel)
  ::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, 0x0000001fU)) {
    // repeated .substrait.ExchangeRel.ExchangeTarget targets = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_targets_size();
      for (const auto& msg : this_._internal_targets()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel input = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
    // int32 partition_count = 3;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_partition_count() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_partition_count());
      }
    }
  }
  switch (this_.exchange_kind_case()) {
    // .substrait.ExchangeRel.ScatterFields scatter_by_fields = 5;
    case kScatterByFields: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.exchange_kind_.scatter_by_fields_);
      break;
    }
    // .substrait.ExchangeRel.SingleBucketExpression single_target = 6;
    case kSingleTarget: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.exchange_kind_.single_target_);
      break;
    }
    // .substrait.ExchangeRel.MultiBucketExpression multi_target = 7;
    case kMultiTarget: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.exchange_kind_.multi_target_);
      break;
    }
    // .substrait.ExchangeRel.RoundRobin round_robin = 8;
    case kRoundRobin: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.exchange_kind_.round_robin_);
      break;
    }
    // .substrait.ExchangeRel.Broadcast broadcast = 9;
    case kBroadcast: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.exchange_kind_.broadcast_);
      break;
    }
    case EXCHANGE_KIND_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExchangeRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExchangeRel*>(&to_msg);
  auto& from = static_cast<const ExchangeRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ExchangeRel)
  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, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_targets()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_targets());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_partition_count() != 0) {
        _this->_impl_.partition_count_ = from._impl_.partition_count_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= 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_exchange_kind();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kScatterByFields: {
        if (oneof_needs_init) {
          _this->_impl_.exchange_kind_.scatter_by_fields_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exchange_kind_.scatter_by_fields_);
        } else {
          _this->_impl_.exchange_kind_.scatter_by_fields_->MergeFrom(*from._impl_.exchange_kind_.scatter_by_fields_);
        }
        break;
      }
      case kSingleTarget: {
        if (oneof_needs_init) {
          _this->_impl_.exchange_kind_.single_target_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exchange_kind_.single_target_);
        } else {
          _this->_impl_.exchange_kind_.single_target_->MergeFrom(*from._impl_.exchange_kind_.single_target_);
        }
        break;
      }
      case kMultiTarget: {
        if (oneof_needs_init) {
          _this->_impl_.exchange_kind_.multi_target_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exchange_kind_.multi_target_);
        } else {
          _this->_impl_.exchange_kind_.multi_target_->MergeFrom(*from._impl_.exchange_kind_.multi_target_);
        }
        break;
      }
      case kRoundRobin: {
        if (oneof_needs_init) {
          _this->_impl_.exchange_kind_.round_robin_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exchange_kind_.round_robin_);
        } else {
          _this->_impl_.exchange_kind_.round_robin_->MergeFrom(*from._impl_.exchange_kind_.round_robin_);
        }
        break;
      }
      case kBroadcast: {
        if (oneof_needs_init) {
          _this->_impl_.exchange_kind_.broadcast_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exchange_kind_.broadcast_);
        } else {
          _this->_impl_.exchange_kind_.broadcast_->MergeFrom(*from._impl_.exchange_kind_.broadcast_);
        }
        break;
      }
      case EXCHANGE_KIND_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ExchangeRel::InternalSwap(ExchangeRel* 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_.targets_.InternalSwap(&other->_impl_.targets_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.partition_count_)
      + sizeof(ExchangeRel::_impl_.partition_count_)
      - PROTOBUF_FIELD_OFFSET(ExchangeRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
  swap(_impl_.exchange_kind_, other->_impl_.exchange_kind_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

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

void ExpandRel_ExpandField::set_allocated_switching_field(::substrait::ExpandRel_SwitchingField* PROTOBUF_NULLABLE switching_field) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_field_type();
  if (switching_field) {
    ::google::protobuf::Arena* submessage_arena = switching_field->GetArena();
    if (message_arena != submessage_arena) {
      switching_field = ::google::protobuf::internal::GetOwnedMessage(message_arena, switching_field, submessage_arena);
    }
    set_has_switching_field();
    _impl_.field_type_.switching_field_ = switching_field;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ExpandRel.ExpandField.switching_field)
}
void ExpandRel_ExpandField::set_allocated_consistent_field(::substrait::Expression* PROTOBUF_NULLABLE consistent_field) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_field_type();
  if (consistent_field) {
    ::google::protobuf::Arena* submessage_arena = consistent_field->GetArena();
    if (message_arena != submessage_arena) {
      consistent_field = ::google::protobuf::internal::GetOwnedMessage(message_arena, consistent_field, submessage_arena);
    }
    set_has_consistent_field();
    _impl_.field_type_.consistent_field_ = consistent_field;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.ExpandRel.ExpandField.consistent_field)
}
ExpandRel_ExpandField::ExpandRel_ExpandField(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExpandRel_ExpandField_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ExpandRel.ExpandField)
}
PROTOBUF_NDEBUG_INLINE ExpandRel_ExpandField::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ExpandRel_ExpandField& from_msg)
      : field_type_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExpandRel_ExpandField* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (field_type_case()) {
    case FIELD_TYPE_NOT_SET:
      break;
      case kSwitchingField:
        _impl_.field_type_.switching_field_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.field_type_.switching_field_);
        break;
      case kConsistentField:
        _impl_.field_type_.consistent_field_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.field_type_.consistent_field_);
        break;
  }

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

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

void ExpandRel_ExpandField::clear_field_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.ExpandRel.ExpandField)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (field_type_case()) {
    case kSwitchingField: {
      if (GetArena() == nullptr) {
        delete _impl_.field_type_.switching_field_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.field_type_.switching_field_);
      }
      break;
    }
    case kConsistentField: {
      if (GetArena() == nullptr) {
        delete _impl_.field_type_.consistent_field_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.field_type_.consistent_field_);
      }
      break;
    }
    case FIELD_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = FIELD_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExpandRel_ExpandField_class_data_ =
        ExpandRel_ExpandField::InternalGenerateClassData_(ExpandRel_ExpandField_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExpandRel_ExpandField::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExpandRel_ExpandField_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExpandRel_ExpandField_class_data_.tc_table);
  return ExpandRel_ExpandField_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExpandRel_ExpandField::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExpandRel_ExpandField_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExpandRel_ExpandField_globals_));
  return ExpandRel_ExpandField_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExpandRel_ExpandField::ParseTableT_
    ExpandRel_ExpandField::_table_ =
        ExpandRel_ExpandField::InternalGenerateParseTable_(ExpandRel_ExpandField_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExpandRel_ExpandField::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExpandRel.ExpandField)
  ::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_field_type();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.field_type_case()) {
    case kSwitchingField: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.field_type_.switching_field_, this_._impl_.field_type_.switching_field_->GetCachedSize(), target,
          stream);
      break;
    }
    case kConsistentField: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.field_type_.consistent_field_, this_._impl_.field_type_.consistent_field_->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.ExpandRel.ExpandField)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExpandRel_ExpandField::ByteSizeLong(const MessageLite& base) {
  const ExpandRel_ExpandField& this_ = static_cast<const ExpandRel_ExpandField&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExpandRel_ExpandField::ByteSizeLong() const {
  const ExpandRel_ExpandField& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ExpandRel.ExpandField)
  ::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_.field_type_case()) {
    // .substrait.ExpandRel.SwitchingField switching_field = 2;
    case kSwitchingField: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.field_type_.switching_field_);
      break;
    }
    // .substrait.Expression consistent_field = 3;
    case kConsistentField: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.field_type_.consistent_field_);
      break;
    }
    case FIELD_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExpandRel_ExpandField::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExpandRel_ExpandField*>(&to_msg);
  auto& from = static_cast<const ExpandRel_ExpandField&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ExpandRel.ExpandField)
  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_field_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kSwitchingField: {
        if (oneof_needs_init) {
          _this->_impl_.field_type_.switching_field_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.field_type_.switching_field_);
        } else {
          _this->_impl_.field_type_.switching_field_->MergeFrom(*from._impl_.field_type_.switching_field_);
        }
        break;
      }
      case kConsistentField: {
        if (oneof_needs_init) {
          _this->_impl_.field_type_.consistent_field_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.field_type_.consistent_field_);
        } else {
          _this->_impl_.field_type_.consistent_field_->MergeFrom(*from._impl_.field_type_.consistent_field_);
        }
        break;
      }
      case FIELD_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExpandRel_SwitchingField* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void ExpandRel_SwitchingField::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ExpandRel_SwitchingField::~ExpandRel_SwitchingField() {
  // @@protoc_insertion_point(destructor:substrait.ExpandRel.SwitchingField)
  SharedDtor(*this);
}
inline void ExpandRel_SwitchingField::SharedDtor(MessageLite& self) {
  ExpandRel_SwitchingField& this_ = static_cast<ExpandRel_SwitchingField&>(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 ExpandRel_SwitchingField_class_data_ =
        ExpandRel_SwitchingField::InternalGenerateClassData_(ExpandRel_SwitchingField_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExpandRel_SwitchingField::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExpandRel_SwitchingField_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExpandRel_SwitchingField_class_data_.tc_table);
  return ExpandRel_SwitchingField_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExpandRel_SwitchingField::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExpandRel_SwitchingField_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExpandRel_SwitchingField_globals_));
  return ExpandRel_SwitchingField_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExpandRel_SwitchingField::ParseTableT_
    ExpandRel_SwitchingField::_table_ =
        ExpandRel_SwitchingField::InternalGenerateParseTable_(ExpandRel_SwitchingField_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExpandRel_SwitchingField::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExpandRel.SwitchingField)
  ::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_.duplicates_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression duplicates = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_duplicates_size());
         i < n; i++) {
      const auto& repfield = this_._internal_duplicates().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.ExpandRel.SwitchingField)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExpandRel_SwitchingField::ByteSizeLong(const MessageLite& base) {
  const ExpandRel_SwitchingField& this_ = static_cast<const ExpandRel_SwitchingField&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExpandRel_SwitchingField::ByteSizeLong() const {
  const ExpandRel_SwitchingField& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ExpandRel.SwitchingField)
  ::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_);
   {
    // repeated .substrait.Expression duplicates = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_duplicates_size();
      for (const auto& msg : this_._internal_duplicates()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_duplicates()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_duplicates());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ExpandRel_SwitchingField::InternalSwap(ExpandRel_SwitchingField* 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_.duplicates_.InternalSwap(&other->_impl_.duplicates_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExpandRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExpandRel_class_data_ =
        ExpandRel::InternalGenerateClassData_(ExpandRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExpandRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExpandRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExpandRel_class_data_.tc_table);
  return ExpandRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExpandRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExpandRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExpandRel_globals_));
  return ExpandRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExpandRel::ParseTableT_
    ExpandRel::_table_ =
        ExpandRel::InternalGenerateParseTable_(ExpandRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExpandRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExpandRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.fields_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Rel input = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.input_, this_._impl_.input_->GetCachedSize(), target,
        stream);
  }

  // repeated .substrait.ExpandRel.ExpandField fields = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_fields_size());
         i < n; i++) {
      const auto& repfield = this_._internal_fields().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.ExpandRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExpandRel::ByteSizeLong(const MessageLite& base) {
  const ExpandRel& this_ = static_cast<const ExpandRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExpandRel::ByteSizeLong() const {
  const ExpandRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ExpandRel)
  ::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.ExpandRel.ExpandField fields = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_fields_size();
      for (const auto& msg : this_._internal_fields()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel input = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExpandRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExpandRel*>(&to_msg);
  auto& from = static_cast<const ExpandRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ExpandRel)
  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_fields()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_fields());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ExpandRel::InternalSwap(ExpandRel* 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_.fields_.InternalSwap(&other->_impl_.fields_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ExpandRel, _impl_.input_)
      + sizeof(ExpandRel::_impl_.input_)
      - PROTOBUF_FIELD_OFFSET(ExpandRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RelRoot* 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_.input_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:substrait.RelRoot)
}
PROTOBUF_NDEBUG_INLINE RelRoot::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::RelRoot,
            PROTOBUF_FIELD_OFFSET(::substrait::RelRoot, _impl_.names_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RelRoot_class_data_ =
        RelRoot::InternalGenerateClassData_(RelRoot_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelRoot::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelRoot_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RelRoot_class_data_.tc_table);
  return RelRoot_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RelRoot::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RelRoot_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RelRoot_globals_));
  return RelRoot_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RelRoot::ParseTableT_
    RelRoot::_table_ =
        RelRoot::InternalGenerateParseTable_(RelRoot_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RelRoot::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.RelRoot)
  ::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_.input_ != nullptr);
      _impl_.input_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // repeated string names = 2;
  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.RelRoot.names");
      target = stream->WriteString(2, s, 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.RelRoot)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t RelRoot::ByteSizeLong(const MessageLite& base) {
  const RelRoot& this_ = static_cast<const RelRoot&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t RelRoot::ByteSizeLong() const {
  const RelRoot& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.RelRoot)
  ::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 = 2;
    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.Rel input = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void RelRoot::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<RelRoot*>(&to_msg);
  auto& from = static_cast<const RelRoot&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.RelRoot)
  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_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void RelRoot::InternalSwap(RelRoot* 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_.input_, other->_impl_.input_);
}

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

void Rel::set_allocated_read(::substrait::ReadRel* PROTOBUF_NULLABLE read) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (read) {
    ::google::protobuf::Arena* submessage_arena = read->GetArena();
    if (message_arena != submessage_arena) {
      read = ::google::protobuf::internal::GetOwnedMessage(message_arena, read, submessage_arena);
    }
    set_has_read();
    _impl_.rel_type_.read_ = read;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.read)
}
void Rel::set_allocated_filter(::substrait::FilterRel* PROTOBUF_NULLABLE filter) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (filter) {
    ::google::protobuf::Arena* submessage_arena = filter->GetArena();
    if (message_arena != submessage_arena) {
      filter = ::google::protobuf::internal::GetOwnedMessage(message_arena, filter, submessage_arena);
    }
    set_has_filter();
    _impl_.rel_type_.filter_ = filter;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.filter)
}
void Rel::set_allocated_fetch(::substrait::FetchRel* PROTOBUF_NULLABLE fetch) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (fetch) {
    ::google::protobuf::Arena* submessage_arena = fetch->GetArena();
    if (message_arena != submessage_arena) {
      fetch = ::google::protobuf::internal::GetOwnedMessage(message_arena, fetch, submessage_arena);
    }
    set_has_fetch();
    _impl_.rel_type_.fetch_ = fetch;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.fetch)
}
void Rel::set_allocated_aggregate(::substrait::AggregateRel* PROTOBUF_NULLABLE aggregate) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (aggregate) {
    ::google::protobuf::Arena* submessage_arena = aggregate->GetArena();
    if (message_arena != submessage_arena) {
      aggregate = ::google::protobuf::internal::GetOwnedMessage(message_arena, aggregate, submessage_arena);
    }
    set_has_aggregate();
    _impl_.rel_type_.aggregate_ = aggregate;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.aggregate)
}
void Rel::set_allocated_sort(::substrait::SortRel* PROTOBUF_NULLABLE sort) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (sort) {
    ::google::protobuf::Arena* submessage_arena = sort->GetArena();
    if (message_arena != submessage_arena) {
      sort = ::google::protobuf::internal::GetOwnedMessage(message_arena, sort, submessage_arena);
    }
    set_has_sort();
    _impl_.rel_type_.sort_ = sort;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.sort)
}
void Rel::set_allocated_join(::substrait::JoinRel* PROTOBUF_NULLABLE join) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (join) {
    ::google::protobuf::Arena* submessage_arena = join->GetArena();
    if (message_arena != submessage_arena) {
      join = ::google::protobuf::internal::GetOwnedMessage(message_arena, join, submessage_arena);
    }
    set_has_join();
    _impl_.rel_type_.join_ = join;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.join)
}
void Rel::set_allocated_project(::substrait::ProjectRel* PROTOBUF_NULLABLE project) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (project) {
    ::google::protobuf::Arena* submessage_arena = project->GetArena();
    if (message_arena != submessage_arena) {
      project = ::google::protobuf::internal::GetOwnedMessage(message_arena, project, submessage_arena);
    }
    set_has_project();
    _impl_.rel_type_.project_ = project;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.project)
}
void Rel::set_allocated_set(::substrait::SetRel* PROTOBUF_NULLABLE set) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (set) {
    ::google::protobuf::Arena* submessage_arena = set->GetArena();
    if (message_arena != submessage_arena) {
      set = ::google::protobuf::internal::GetOwnedMessage(message_arena, set, submessage_arena);
    }
    set_has_set();
    _impl_.rel_type_.set_ = set;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.set)
}
void Rel::set_allocated_extension_single(::substrait::ExtensionSingleRel* PROTOBUF_NULLABLE extension_single) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (extension_single) {
    ::google::protobuf::Arena* submessage_arena = extension_single->GetArena();
    if (message_arena != submessage_arena) {
      extension_single = ::google::protobuf::internal::GetOwnedMessage(message_arena, extension_single, submessage_arena);
    }
    set_has_extension_single();
    _impl_.rel_type_.extension_single_ = extension_single;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.extension_single)
}
void Rel::set_allocated_extension_multi(::substrait::ExtensionMultiRel* PROTOBUF_NULLABLE extension_multi) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (extension_multi) {
    ::google::protobuf::Arena* submessage_arena = extension_multi->GetArena();
    if (message_arena != submessage_arena) {
      extension_multi = ::google::protobuf::internal::GetOwnedMessage(message_arena, extension_multi, submessage_arena);
    }
    set_has_extension_multi();
    _impl_.rel_type_.extension_multi_ = extension_multi;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.extension_multi)
}
void Rel::set_allocated_extension_leaf(::substrait::ExtensionLeafRel* PROTOBUF_NULLABLE extension_leaf) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (extension_leaf) {
    ::google::protobuf::Arena* submessage_arena = extension_leaf->GetArena();
    if (message_arena != submessage_arena) {
      extension_leaf = ::google::protobuf::internal::GetOwnedMessage(message_arena, extension_leaf, submessage_arena);
    }
    set_has_extension_leaf();
    _impl_.rel_type_.extension_leaf_ = extension_leaf;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.extension_leaf)
}
void Rel::set_allocated_cross(::substrait::CrossRel* PROTOBUF_NULLABLE cross) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (cross) {
    ::google::protobuf::Arena* submessage_arena = cross->GetArena();
    if (message_arena != submessage_arena) {
      cross = ::google::protobuf::internal::GetOwnedMessage(message_arena, cross, submessage_arena);
    }
    set_has_cross();
    _impl_.rel_type_.cross_ = cross;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.cross)
}
void Rel::set_allocated_reference(::substrait::ReferenceRel* PROTOBUF_NULLABLE reference) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (reference) {
    ::google::protobuf::Arena* submessage_arena = reference->GetArena();
    if (message_arena != submessage_arena) {
      reference = ::google::protobuf::internal::GetOwnedMessage(message_arena, reference, submessage_arena);
    }
    set_has_reference();
    _impl_.rel_type_.reference_ = reference;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.reference)
}
void Rel::set_allocated_write(::substrait::WriteRel* PROTOBUF_NULLABLE write) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (write) {
    ::google::protobuf::Arena* submessage_arena = write->GetArena();
    if (message_arena != submessage_arena) {
      write = ::google::protobuf::internal::GetOwnedMessage(message_arena, write, submessage_arena);
    }
    set_has_write();
    _impl_.rel_type_.write_ = write;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.write)
}
void Rel::set_allocated_ddl(::substrait::DdlRel* PROTOBUF_NULLABLE ddl) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (ddl) {
    ::google::protobuf::Arena* submessage_arena = ddl->GetArena();
    if (message_arena != submessage_arena) {
      ddl = ::google::protobuf::internal::GetOwnedMessage(message_arena, ddl, submessage_arena);
    }
    set_has_ddl();
    _impl_.rel_type_.ddl_ = ddl;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.ddl)
}
void Rel::set_allocated_hash_join(::substrait::HashJoinRel* PROTOBUF_NULLABLE hash_join) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (hash_join) {
    ::google::protobuf::Arena* submessage_arena = hash_join->GetArena();
    if (message_arena != submessage_arena) {
      hash_join = ::google::protobuf::internal::GetOwnedMessage(message_arena, hash_join, submessage_arena);
    }
    set_has_hash_join();
    _impl_.rel_type_.hash_join_ = hash_join;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.hash_join)
}
void Rel::set_allocated_merge_join(::substrait::MergeJoinRel* PROTOBUF_NULLABLE merge_join) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (merge_join) {
    ::google::protobuf::Arena* submessage_arena = merge_join->GetArena();
    if (message_arena != submessage_arena) {
      merge_join = ::google::protobuf::internal::GetOwnedMessage(message_arena, merge_join, submessage_arena);
    }
    set_has_merge_join();
    _impl_.rel_type_.merge_join_ = merge_join;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.merge_join)
}
void Rel::set_allocated_nested_loop_join(::substrait::NestedLoopJoinRel* PROTOBUF_NULLABLE nested_loop_join) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (nested_loop_join) {
    ::google::protobuf::Arena* submessage_arena = nested_loop_join->GetArena();
    if (message_arena != submessage_arena) {
      nested_loop_join = ::google::protobuf::internal::GetOwnedMessage(message_arena, nested_loop_join, submessage_arena);
    }
    set_has_nested_loop_join();
    _impl_.rel_type_.nested_loop_join_ = nested_loop_join;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.nested_loop_join)
}
void Rel::set_allocated_window(::substrait::ConsistentPartitionWindowRel* PROTOBUF_NULLABLE window) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (window) {
    ::google::protobuf::Arena* submessage_arena = window->GetArena();
    if (message_arena != submessage_arena) {
      window = ::google::protobuf::internal::GetOwnedMessage(message_arena, window, submessage_arena);
    }
    set_has_window();
    _impl_.rel_type_.window_ = window;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.window)
}
void Rel::set_allocated_exchange(::substrait::ExchangeRel* PROTOBUF_NULLABLE exchange) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (exchange) {
    ::google::protobuf::Arena* submessage_arena = exchange->GetArena();
    if (message_arena != submessage_arena) {
      exchange = ::google::protobuf::internal::GetOwnedMessage(message_arena, exchange, submessage_arena);
    }
    set_has_exchange();
    _impl_.rel_type_.exchange_ = exchange;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.exchange)
}
void Rel::set_allocated_expand(::substrait::ExpandRel* PROTOBUF_NULLABLE expand) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rel_type();
  if (expand) {
    ::google::protobuf::Arena* submessage_arena = expand->GetArena();
    if (message_arena != submessage_arena) {
      expand = ::google::protobuf::internal::GetOwnedMessage(message_arena, expand, submessage_arena);
    }
    set_has_expand();
    _impl_.rel_type_.expand_ = expand;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Rel.expand)
}
Rel::Rel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Rel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Rel)
}
PROTOBUF_NDEBUG_INLINE Rel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Rel& from_msg)
      : rel_type_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Rel* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (rel_type_case()) {
    case REL_TYPE_NOT_SET:
      break;
      case kRead:
        _impl_.rel_type_.read_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.read_);
        break;
      case kFilter:
        _impl_.rel_type_.filter_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.filter_);
        break;
      case kFetch:
        _impl_.rel_type_.fetch_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.fetch_);
        break;
      case kAggregate:
        _impl_.rel_type_.aggregate_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.aggregate_);
        break;
      case kSort:
        _impl_.rel_type_.sort_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.sort_);
        break;
      case kJoin:
        _impl_.rel_type_.join_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.join_);
        break;
      case kProject:
        _impl_.rel_type_.project_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.project_);
        break;
      case kSet:
        _impl_.rel_type_.set_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.set_);
        break;
      case kExtensionSingle:
        _impl_.rel_type_.extension_single_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.extension_single_);
        break;
      case kExtensionMulti:
        _impl_.rel_type_.extension_multi_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.extension_multi_);
        break;
      case kExtensionLeaf:
        _impl_.rel_type_.extension_leaf_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.extension_leaf_);
        break;
      case kCross:
        _impl_.rel_type_.cross_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.cross_);
        break;
      case kReference:
        _impl_.rel_type_.reference_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.reference_);
        break;
      case kWrite:
        _impl_.rel_type_.write_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.write_);
        break;
      case kDdl:
        _impl_.rel_type_.ddl_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.ddl_);
        break;
      case kHashJoin:
        _impl_.rel_type_.hash_join_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.hash_join_);
        break;
      case kMergeJoin:
        _impl_.rel_type_.merge_join_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.merge_join_);
        break;
      case kNestedLoopJoin:
        _impl_.rel_type_.nested_loop_join_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.nested_loop_join_);
        break;
      case kWindow:
        _impl_.rel_type_.window_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.window_);
        break;
      case kExchange:
        _impl_.rel_type_.exchange_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.exchange_);
        break;
      case kExpand:
        _impl_.rel_type_.expand_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.expand_);
        break;
  }

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

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

void Rel::clear_rel_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Rel)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (rel_type_case()) {
    case kRead: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.read_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.read_);
      }
      break;
    }
    case kFilter: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.filter_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.filter_);
      }
      break;
    }
    case kFetch: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.fetch_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.fetch_);
      }
      break;
    }
    case kAggregate: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.aggregate_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.aggregate_);
      }
      break;
    }
    case kSort: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.sort_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.sort_);
      }
      break;
    }
    case kJoin: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.join_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.join_);
      }
      break;
    }
    case kProject: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.project_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.project_);
      }
      break;
    }
    case kSet: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.set_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.set_);
      }
      break;
    }
    case kExtensionSingle: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.extension_single_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.extension_single_);
      }
      break;
    }
    case kExtensionMulti: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.extension_multi_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.extension_multi_);
      }
      break;
    }
    case kExtensionLeaf: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.extension_leaf_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.extension_leaf_);
      }
      break;
    }
    case kCross: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.cross_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.cross_);
      }
      break;
    }
    case kReference: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.reference_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.reference_);
      }
      break;
    }
    case kWrite: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.write_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.write_);
      }
      break;
    }
    case kDdl: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.ddl_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.ddl_);
      }
      break;
    }
    case kHashJoin: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.hash_join_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.hash_join_);
      }
      break;
    }
    case kMergeJoin: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.merge_join_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.merge_join_);
      }
      break;
    }
    case kNestedLoopJoin: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.nested_loop_join_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.nested_loop_join_);
      }
      break;
    }
    case kWindow: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.window_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.window_);
      }
      break;
    }
    case kExchange: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.exchange_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.exchange_);
      }
      break;
    }
    case kExpand: {
      if (GetArena() == nullptr) {
        delete _impl_.rel_type_.expand_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rel_type_.expand_);
      }
      break;
    }
    case REL_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REL_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Rel_class_data_ =
        Rel::InternalGenerateClassData_(Rel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Rel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Rel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Rel_class_data_.tc_table);
  return Rel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Rel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Rel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Rel_globals_));
  return Rel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Rel::ParseTableT_
    Rel::_table_ =
        Rel::InternalGenerateParseTable_(Rel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Rel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Rel)
  ::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_rel_type();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.rel_type_case()) {
    case kRead: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.rel_type_.read_, this_._impl_.rel_type_.read_->GetCachedSize(), target,
          stream);
      break;
    }
    case kFilter: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.rel_type_.filter_, this_._impl_.rel_type_.filter_->GetCachedSize(), target,
          stream);
      break;
    }
    case kFetch: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.rel_type_.fetch_, this_._impl_.rel_type_.fetch_->GetCachedSize(), target,
          stream);
      break;
    }
    case kAggregate: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          4, *this_._impl_.rel_type_.aggregate_, this_._impl_.rel_type_.aggregate_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSort: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          5, *this_._impl_.rel_type_.sort_, this_._impl_.rel_type_.sort_->GetCachedSize(), target,
          stream);
      break;
    }
    case kJoin: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          6, *this_._impl_.rel_type_.join_, this_._impl_.rel_type_.join_->GetCachedSize(), target,
          stream);
      break;
    }
    case kProject: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          7, *this_._impl_.rel_type_.project_, this_._impl_.rel_type_.project_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSet: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          8, *this_._impl_.rel_type_.set_, this_._impl_.rel_type_.set_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExtensionSingle: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          9, *this_._impl_.rel_type_.extension_single_, this_._impl_.rel_type_.extension_single_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExtensionMulti: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          10, *this_._impl_.rel_type_.extension_multi_, this_._impl_.rel_type_.extension_multi_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExtensionLeaf: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          11, *this_._impl_.rel_type_.extension_leaf_, this_._impl_.rel_type_.extension_leaf_->GetCachedSize(), target,
          stream);
      break;
    }
    case kCross: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          12, *this_._impl_.rel_type_.cross_, this_._impl_.rel_type_.cross_->GetCachedSize(), target,
          stream);
      break;
    }
    case kHashJoin: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          13, *this_._impl_.rel_type_.hash_join_, this_._impl_.rel_type_.hash_join_->GetCachedSize(), target,
          stream);
      break;
    }
    case kMergeJoin: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          14, *this_._impl_.rel_type_.merge_join_, this_._impl_.rel_type_.merge_join_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExchange: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          15, *this_._impl_.rel_type_.exchange_, this_._impl_.rel_type_.exchange_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExpand: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          16, *this_._impl_.rel_type_.expand_, this_._impl_.rel_type_.expand_->GetCachedSize(), target,
          stream);
      break;
    }
    case kWindow: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          17, *this_._impl_.rel_type_.window_, this_._impl_.rel_type_.window_->GetCachedSize(), target,
          stream);
      break;
    }
    case kNestedLoopJoin: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          18, *this_._impl_.rel_type_.nested_loop_join_, this_._impl_.rel_type_.nested_loop_join_->GetCachedSize(), target,
          stream);
      break;
    }
    case kWrite: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          19, *this_._impl_.rel_type_.write_, this_._impl_.rel_type_.write_->GetCachedSize(), target,
          stream);
      break;
    }
    case kDdl: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          20, *this_._impl_.rel_type_.ddl_, this_._impl_.rel_type_.ddl_->GetCachedSize(), target,
          stream);
      break;
    }
    case kReference: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          21, *this_._impl_.rel_type_.reference_, this_._impl_.rel_type_.reference_->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.Rel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Rel::ByteSizeLong(const MessageLite& base) {
  const Rel& this_ = static_cast<const Rel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Rel::ByteSizeLong() const {
  const Rel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Rel)
  ::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_.rel_type_case()) {
    // .substrait.ReadRel read = 1;
    case kRead: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.read_);
      break;
    }
    // .substrait.FilterRel filter = 2;
    case kFilter: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.filter_);
      break;
    }
    // .substrait.FetchRel fetch = 3;
    case kFetch: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.fetch_);
      break;
    }
    // .substrait.AggregateRel aggregate = 4;
    case kAggregate: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.aggregate_);
      break;
    }
    // .substrait.SortRel sort = 5;
    case kSort: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.sort_);
      break;
    }
    // .substrait.JoinRel join = 6;
    case kJoin: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.join_);
      break;
    }
    // .substrait.ProjectRel project = 7;
    case kProject: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.project_);
      break;
    }
    // .substrait.SetRel set = 8;
    case kSet: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.set_);
      break;
    }
    // .substrait.ExtensionSingleRel extension_single = 9;
    case kExtensionSingle: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.extension_single_);
      break;
    }
    // .substrait.ExtensionMultiRel extension_multi = 10;
    case kExtensionMulti: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.extension_multi_);
      break;
    }
    // .substrait.ExtensionLeafRel extension_leaf = 11;
    case kExtensionLeaf: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.extension_leaf_);
      break;
    }
    // .substrait.CrossRel cross = 12;
    case kCross: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.cross_);
      break;
    }
    // .substrait.ReferenceRel reference = 21;
    case kReference: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.reference_);
      break;
    }
    // .substrait.WriteRel write = 19;
    case kWrite: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.write_);
      break;
    }
    // .substrait.DdlRel ddl = 20;
    case kDdl: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.ddl_);
      break;
    }
    // .substrait.HashJoinRel hash_join = 13;
    case kHashJoin: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.hash_join_);
      break;
    }
    // .substrait.MergeJoinRel merge_join = 14;
    case kMergeJoin: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.merge_join_);
      break;
    }
    // .substrait.NestedLoopJoinRel nested_loop_join = 18;
    case kNestedLoopJoin: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.nested_loop_join_);
      break;
    }
    // .substrait.ConsistentPartitionWindowRel window = 17;
    case kWindow: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.window_);
      break;
    }
    // .substrait.ExchangeRel exchange = 15;
    case kExchange: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.exchange_);
      break;
    }
    // .substrait.ExpandRel expand = 16;
    case kExpand: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rel_type_.expand_);
      break;
    }
    case REL_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Rel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Rel*>(&to_msg);
  auto& from = static_cast<const Rel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Rel)
  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_rel_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kRead: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.read_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.read_);
        } else {
          _this->_impl_.rel_type_.read_->MergeFrom(*from._impl_.rel_type_.read_);
        }
        break;
      }
      case kFilter: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.filter_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.filter_);
        } else {
          _this->_impl_.rel_type_.filter_->MergeFrom(*from._impl_.rel_type_.filter_);
        }
        break;
      }
      case kFetch: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.fetch_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.fetch_);
        } else {
          _this->_impl_.rel_type_.fetch_->MergeFrom(*from._impl_.rel_type_.fetch_);
        }
        break;
      }
      case kAggregate: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.aggregate_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.aggregate_);
        } else {
          _this->_impl_.rel_type_.aggregate_->MergeFrom(*from._impl_.rel_type_.aggregate_);
        }
        break;
      }
      case kSort: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.sort_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.sort_);
        } else {
          _this->_impl_.rel_type_.sort_->MergeFrom(*from._impl_.rel_type_.sort_);
        }
        break;
      }
      case kJoin: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.join_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.join_);
        } else {
          _this->_impl_.rel_type_.join_->MergeFrom(*from._impl_.rel_type_.join_);
        }
        break;
      }
      case kProject: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.project_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.project_);
        } else {
          _this->_impl_.rel_type_.project_->MergeFrom(*from._impl_.rel_type_.project_);
        }
        break;
      }
      case kSet: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.set_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.set_);
        } else {
          _this->_impl_.rel_type_.set_->MergeFrom(*from._impl_.rel_type_.set_);
        }
        break;
      }
      case kExtensionSingle: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.extension_single_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.extension_single_);
        } else {
          _this->_impl_.rel_type_.extension_single_->MergeFrom(*from._impl_.rel_type_.extension_single_);
        }
        break;
      }
      case kExtensionMulti: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.extension_multi_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.extension_multi_);
        } else {
          _this->_impl_.rel_type_.extension_multi_->MergeFrom(*from._impl_.rel_type_.extension_multi_);
        }
        break;
      }
      case kExtensionLeaf: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.extension_leaf_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.extension_leaf_);
        } else {
          _this->_impl_.rel_type_.extension_leaf_->MergeFrom(*from._impl_.rel_type_.extension_leaf_);
        }
        break;
      }
      case kCross: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.cross_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.cross_);
        } else {
          _this->_impl_.rel_type_.cross_->MergeFrom(*from._impl_.rel_type_.cross_);
        }
        break;
      }
      case kReference: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.reference_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.reference_);
        } else {
          _this->_impl_.rel_type_.reference_->MergeFrom(*from._impl_.rel_type_.reference_);
        }
        break;
      }
      case kWrite: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.write_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.write_);
        } else {
          _this->_impl_.rel_type_.write_->MergeFrom(*from._impl_.rel_type_.write_);
        }
        break;
      }
      case kDdl: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.ddl_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.ddl_);
        } else {
          _this->_impl_.rel_type_.ddl_->MergeFrom(*from._impl_.rel_type_.ddl_);
        }
        break;
      }
      case kHashJoin: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.hash_join_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.hash_join_);
        } else {
          _this->_impl_.rel_type_.hash_join_->MergeFrom(*from._impl_.rel_type_.hash_join_);
        }
        break;
      }
      case kMergeJoin: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.merge_join_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.merge_join_);
        } else {
          _this->_impl_.rel_type_.merge_join_->MergeFrom(*from._impl_.rel_type_.merge_join_);
        }
        break;
      }
      case kNestedLoopJoin: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.nested_loop_join_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.nested_loop_join_);
        } else {
          _this->_impl_.rel_type_.nested_loop_join_->MergeFrom(*from._impl_.rel_type_.nested_loop_join_);
        }
        break;
      }
      case kWindow: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.window_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.window_);
        } else {
          _this->_impl_.rel_type_.window_->MergeFrom(*from._impl_.rel_type_.window_);
        }
        break;
      }
      case kExchange: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.exchange_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.exchange_);
        } else {
          _this->_impl_.rel_type_.exchange_->MergeFrom(*from._impl_.rel_type_.exchange_);
        }
        break;
      }
      case kExpand: {
        if (oneof_needs_init) {
          _this->_impl_.rel_type_.expand_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rel_type_.expand_);
        } else {
          _this->_impl_.rel_type_.expand_->MergeFrom(*from._impl_.rel_type_.expand_);
        }
        break;
      }
      case REL_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

void NamedObjectWrite::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
NamedObjectWrite::NamedObjectWrite(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NamedObjectWrite_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.NamedObjectWrite)
}
PROTOBUF_NDEBUG_INLINE NamedObjectWrite::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::NamedObjectWrite& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        names_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::NamedObjectWrite,
              PROTOBUF_FIELD_OFFSET(::substrait::NamedObjectWrite, _impl_.names_)>()
          , from.names_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NamedObjectWrite* 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_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:substrait.NamedObjectWrite)
}
PROTOBUF_NDEBUG_INLINE NamedObjectWrite::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::NamedObjectWrite,
            PROTOBUF_FIELD_OFFSET(::substrait::NamedObjectWrite, _impl_.names_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NamedObjectWrite_class_data_ =
        NamedObjectWrite::InternalGenerateClassData_(NamedObjectWrite_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NamedObjectWrite::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NamedObjectWrite_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NamedObjectWrite_class_data_.tc_table);
  return NamedObjectWrite_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NamedObjectWrite::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NamedObjectWrite_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&NamedObjectWrite_globals_));
  return NamedObjectWrite_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const NamedObjectWrite::ParseTableT_
    NamedObjectWrite::_table_ =
        NamedObjectWrite::InternalGenerateParseTable_(NamedObjectWrite_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void NamedObjectWrite::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.NamedObjectWrite)
  ::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_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NamedObjectWrite::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NamedObjectWrite& this_ = static_cast<const NamedObjectWrite&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NamedObjectWrite::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NamedObjectWrite& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.NamedObjectWrite)
  ::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.NamedObjectWrite.names");
      target = stream->WriteString(1, s, target);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.NamedObjectWrite)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NamedObjectWrite::ByteSizeLong(const MessageLite& base) {
  const NamedObjectWrite& this_ = static_cast<const NamedObjectWrite&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NamedObjectWrite::ByteSizeLong() const {
  const NamedObjectWrite& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.NamedObjectWrite)
  ::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.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NamedObjectWrite::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<NamedObjectWrite*>(&to_msg);
  auto& from = static_cast<const NamedObjectWrite&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.NamedObjectWrite)
  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_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void NamedObjectWrite::InternalSwap(NamedObjectWrite* 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_.advanced_extension_, other->_impl_.advanced_extension_);
}

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

void ExtensionObject::clear_detail() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.detail_ != nullptr) _impl_.detail_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
ExtensionObject::ExtensionObject(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExtensionObject_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ExtensionObject)
}
PROTOBUF_NDEBUG_INLINE ExtensionObject::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::ExtensionObject& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExtensionObject* 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_.detail_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detail_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExtensionObject_class_data_ =
        ExtensionObject::InternalGenerateClassData_(ExtensionObject_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtensionObject::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExtensionObject_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExtensionObject_class_data_.tc_table);
  return ExtensionObject_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtensionObject::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExtensionObject_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExtensionObject_globals_));
  return ExtensionObject_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExtensionObject::ParseTableT_
    ExtensionObject::_table_ =
        ExtensionObject::InternalGenerateParseTable_(ExtensionObject_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExtensionObject::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ExtensionObject)
  ::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_.detail_ != nullptr);
    _impl_.detail_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any detail = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.detail_, this_._impl_.detail_->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.ExtensionObject)
  return target;
}

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

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

   {
    // .google.protobuf.Any detail = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.detail_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(from._impl_.detail_ != nullptr);
    if (_this->_impl_.detail_ == nullptr) {
      _this->_impl_.detail_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detail_);
    } else {
      _this->_impl_.detail_->MergeFrom(*from._impl_.detail_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

void DdlRel::set_allocated_named_object(::substrait::NamedObjectWrite* PROTOBUF_NULLABLE named_object) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_write_type();
  if (named_object) {
    ::google::protobuf::Arena* submessage_arena = named_object->GetArena();
    if (message_arena != submessage_arena) {
      named_object = ::google::protobuf::internal::GetOwnedMessage(message_arena, named_object, submessage_arena);
    }
    set_has_named_object();
    _impl_.write_type_.named_object_ = named_object;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.DdlRel.named_object)
}
void DdlRel::set_allocated_extension_object(::substrait::ExtensionObject* PROTOBUF_NULLABLE extension_object) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_write_type();
  if (extension_object) {
    ::google::protobuf::Arena* submessage_arena = extension_object->GetArena();
    if (message_arena != submessage_arena) {
      extension_object = ::google::protobuf::internal::GetOwnedMessage(message_arena, extension_object, submessage_arena);
    }
    set_has_extension_object();
    _impl_.write_type_.extension_object_ = extension_object;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.DdlRel.extension_object)
}
void DdlRel::clear_table_schema() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.table_schema_ != nullptr) _impl_.table_schema_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
DdlRel::DdlRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, DdlRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.DdlRel)
}
PROTOBUF_NDEBUG_INLINE DdlRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::DdlRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        write_type_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  DdlRel* 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_.table_schema_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.table_schema_)
                : nullptr;
  _impl_.table_defaults_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.table_defaults_)
                : nullptr;
  _impl_.view_definition_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.view_definition_)
                : nullptr;
  _impl_.common_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, object_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, object_),
           offsetof(Impl_, op_) -
               offsetof(Impl_, object_) +
               sizeof(Impl_::op_));
  switch (write_type_case()) {
    case WRITE_TYPE_NOT_SET:
      break;
      case kNamedObject:
        _impl_.write_type_.named_object_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.write_type_.named_object_);
        break;
      case kExtensionObject:
        _impl_.write_type_.extension_object_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.write_type_.extension_object_);
        break;
  }

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

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

void DdlRel::clear_write_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.DdlRel)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (write_type_case()) {
    case kNamedObject: {
      if (GetArena() == nullptr) {
        delete _impl_.write_type_.named_object_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.write_type_.named_object_);
      }
      break;
    }
    case kExtensionObject: {
      if (GetArena() == nullptr) {
        delete _impl_.write_type_.extension_object_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.write_type_.extension_object_);
      }
      break;
    }
    case WRITE_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = WRITE_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull DdlRel_class_data_ =
        DdlRel::InternalGenerateClassData_(DdlRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DdlRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&DdlRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(DdlRel_class_data_.tc_table);
  return DdlRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DdlRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&DdlRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&DdlRel_globals_));
  return DdlRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const DdlRel::ParseTableT_
    DdlRel::_table_ =
        DdlRel::InternalGenerateParseTable_(DdlRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void DdlRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.DdlRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.table_schema_ != nullptr);
      _impl_.table_schema_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.table_defaults_ != nullptr);
      _impl_.table_defaults_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.view_definition_ != nullptr);
      _impl_.view_definition_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000030U)) {
    ::memset(&_impl_.object_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.op_) -
        reinterpret_cast<char*>(&_impl_.object_)) + sizeof(_impl_.op_));
  }
  clear_write_type();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.write_type_case()) {
    case kNamedObject: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.write_type_.named_object_, this_._impl_.write_type_.named_object_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExtensionObject: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.write_type_.extension_object_, this_._impl_.write_type_.extension_object_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.NamedStruct table_schema = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.table_schema_, this_._impl_.table_schema_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Expression.Literal.Struct table_defaults = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.table_defaults_, this_._impl_.table_defaults_->GetCachedSize(), target,
        stream);
  }

  // .substrait.DdlRel.DdlObject object = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_object() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          5, this_._internal_object(), target);
    }
  }

  // .substrait.DdlRel.DdlOp op = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_op() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          6, this_._internal_op(), target);
    }
  }

  // .substrait.Rel view_definition = 7;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.view_definition_, this_._impl_.view_definition_->GetCachedSize(), target,
        stream);
  }

  // .substrait.RelCommon common = 8;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        8, *this_._impl_.common_, this_._impl_.common_->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.DdlRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t DdlRel::ByteSizeLong(const MessageLite& base) {
  const DdlRel& this_ = static_cast<const DdlRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t DdlRel::ByteSizeLong() const {
  const DdlRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.DdlRel)
  ::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, 0x0000003fU)) {
    // .substrait.NamedStruct table_schema = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.table_schema_);
    }
    // .substrait.Expression.Literal.Struct table_defaults = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.table_defaults_);
    }
    // .substrait.Rel view_definition = 7;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.view_definition_);
    }
    // .substrait.RelCommon common = 8;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.DdlRel.DdlObject object = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_object() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_object());
      }
    }
    // .substrait.DdlRel.DdlOp op = 6;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_op() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_op());
      }
    }
  }
  switch (this_.write_type_case()) {
    // .substrait.NamedObjectWrite named_object = 1;
    case kNamedObject: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.write_type_.named_object_);
      break;
    }
    // .substrait.ExtensionObject extension_object = 2;
    case kExtensionObject: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.write_type_.extension_object_);
      break;
    }
    case WRITE_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void DdlRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<DdlRel*>(&to_msg);
  auto& from = static_cast<const DdlRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.DdlRel)
  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, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.table_schema_ != nullptr);
      if (_this->_impl_.table_schema_ == nullptr) {
        _this->_impl_.table_schema_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.table_schema_);
      } else {
        _this->_impl_.table_schema_->MergeFrom(*from._impl_.table_schema_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.table_defaults_ != nullptr);
      if (_this->_impl_.table_defaults_ == nullptr) {
        _this->_impl_.table_defaults_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.table_defaults_);
      } else {
        _this->_impl_.table_defaults_->MergeFrom(*from._impl_.table_defaults_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.view_definition_ != nullptr);
      if (_this->_impl_.view_definition_ == nullptr) {
        _this->_impl_.view_definition_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.view_definition_);
      } else {
        _this->_impl_.view_definition_->MergeFrom(*from._impl_.view_definition_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_object() != 0) {
        _this->_impl_.object_ = from._impl_.object_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_op() != 0) {
        _this->_impl_.op_ = from._impl_.op_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= 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_write_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kNamedObject: {
        if (oneof_needs_init) {
          _this->_impl_.write_type_.named_object_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.write_type_.named_object_);
        } else {
          _this->_impl_.write_type_.named_object_->MergeFrom(*from._impl_.write_type_.named_object_);
        }
        break;
      }
      case kExtensionObject: {
        if (oneof_needs_init) {
          _this->_impl_.write_type_.extension_object_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.write_type_.extension_object_);
        } else {
          _this->_impl_.write_type_.extension_object_->MergeFrom(*from._impl_.write_type_.extension_object_);
        }
        break;
      }
      case WRITE_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void DdlRel::InternalSwap(DdlRel* 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(DdlRel, _impl_.op_)
      + sizeof(DdlRel::_impl_.op_)
      - PROTOBUF_FIELD_OFFSET(DdlRel, _impl_.table_schema_)>(
          reinterpret_cast<char*>(&_impl_.table_schema_),
          reinterpret_cast<char*>(&other->_impl_.table_schema_));
  swap(_impl_.write_type_, other->_impl_.write_type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

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

void WriteRel::set_allocated_named_table(::substrait::NamedObjectWrite* PROTOBUF_NULLABLE named_table) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_write_type();
  if (named_table) {
    ::google::protobuf::Arena* submessage_arena = named_table->GetArena();
    if (message_arena != submessage_arena) {
      named_table = ::google::protobuf::internal::GetOwnedMessage(message_arena, named_table, submessage_arena);
    }
    set_has_named_table();
    _impl_.write_type_.named_table_ = named_table;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.WriteRel.named_table)
}
void WriteRel::set_allocated_extension_table(::substrait::ExtensionObject* PROTOBUF_NULLABLE extension_table) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_write_type();
  if (extension_table) {
    ::google::protobuf::Arena* submessage_arena = extension_table->GetArena();
    if (message_arena != submessage_arena) {
      extension_table = ::google::protobuf::internal::GetOwnedMessage(message_arena, extension_table, submessage_arena);
    }
    set_has_extension_table();
    _impl_.write_type_.extension_table_ = extension_table;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.WriteRel.extension_table)
}
void WriteRel::clear_table_schema() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.table_schema_ != nullptr) _impl_.table_schema_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
WriteRel::WriteRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, WriteRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.WriteRel)
}
PROTOBUF_NDEBUG_INLINE WriteRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::WriteRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        write_type_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  WriteRel* 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_.table_schema_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.table_schema_)
                : nullptr;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;
  _impl_.common_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, op_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, op_),
           offsetof(Impl_, output_) -
               offsetof(Impl_, op_) +
               sizeof(Impl_::output_));
  switch (write_type_case()) {
    case WRITE_TYPE_NOT_SET:
      break;
      case kNamedTable:
        _impl_.write_type_.named_table_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.write_type_.named_table_);
        break;
      case kExtensionTable:
        _impl_.write_type_.extension_table_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.write_type_.extension_table_);
        break;
  }

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

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

void WriteRel::clear_write_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.WriteRel)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (write_type_case()) {
    case kNamedTable: {
      if (GetArena() == nullptr) {
        delete _impl_.write_type_.named_table_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.write_type_.named_table_);
      }
      break;
    }
    case kExtensionTable: {
      if (GetArena() == nullptr) {
        delete _impl_.write_type_.extension_table_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.write_type_.extension_table_);
      }
      break;
    }
    case WRITE_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = WRITE_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull WriteRel_class_data_ =
        WriteRel::InternalGenerateClassData_(WriteRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
WriteRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&WriteRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(WriteRel_class_data_.tc_table);
  return WriteRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
WriteRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&WriteRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&WriteRel_globals_));
  return WriteRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const WriteRel::ParseTableT_
    WriteRel::_table_ =
        WriteRel::InternalGenerateParseTable_(WriteRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void WriteRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.WriteRel)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.table_schema_ != nullptr);
      _impl_.table_schema_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000018U)) {
    ::memset(&_impl_.op_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.output_) -
        reinterpret_cast<char*>(&_impl_.op_)) + sizeof(_impl_.output_));
  }
  clear_write_type();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.write_type_case()) {
    case kNamedTable: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.write_type_.named_table_, this_._impl_.write_type_.named_table_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExtensionTable: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.write_type_.extension_table_, this_._impl_.write_type_.extension_table_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.NamedStruct table_schema = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.table_schema_, this_._impl_.table_schema_->GetCachedSize(), target,
        stream);
  }

  // .substrait.WriteRel.WriteOp op = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_op() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          4, this_._internal_op(), target);
    }
  }

  // .substrait.Rel input = 5;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.input_, this_._impl_.input_->GetCachedSize(), target,
        stream);
  }

  // .substrait.WriteRel.OutputMode output = 6;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_output() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          6, this_._internal_output(), target);
    }
  }

  // .substrait.RelCommon common = 7;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.common_, this_._impl_.common_->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.WriteRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t WriteRel::ByteSizeLong(const MessageLite& base) {
  const WriteRel& this_ = static_cast<const WriteRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t WriteRel::ByteSizeLong() const {
  const WriteRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.WriteRel)
  ::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, 0x0000001fU)) {
    // .substrait.NamedStruct table_schema = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.table_schema_);
    }
    // .substrait.Rel input = 5;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
    // .substrait.RelCommon common = 7;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.WriteRel.WriteOp op = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_op() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_op());
      }
    }
    // .substrait.WriteRel.OutputMode output = 6;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_output() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_output());
      }
    }
  }
  switch (this_.write_type_case()) {
    // .substrait.NamedObjectWrite named_table = 1;
    case kNamedTable: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.write_type_.named_table_);
      break;
    }
    // .substrait.ExtensionObject extension_table = 2;
    case kExtensionTable: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.write_type_.extension_table_);
      break;
    }
    case WRITE_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void WriteRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<WriteRel*>(&to_msg);
  auto& from = static_cast<const WriteRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.WriteRel)
  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, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.table_schema_ != nullptr);
      if (_this->_impl_.table_schema_ == nullptr) {
        _this->_impl_.table_schema_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.table_schema_);
      } else {
        _this->_impl_.table_schema_->MergeFrom(*from._impl_.table_schema_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_op() != 0) {
        _this->_impl_.op_ = from._impl_.op_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_output() != 0) {
        _this->_impl_.output_ = from._impl_.output_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= 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_write_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kNamedTable: {
        if (oneof_needs_init) {
          _this->_impl_.write_type_.named_table_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.write_type_.named_table_);
        } else {
          _this->_impl_.write_type_.named_table_->MergeFrom(*from._impl_.write_type_.named_table_);
        }
        break;
      }
      case kExtensionTable: {
        if (oneof_needs_init) {
          _this->_impl_.write_type_.extension_table_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.write_type_.extension_table_);
        } else {
          _this->_impl_.write_type_.extension_table_->MergeFrom(*from._impl_.write_type_.extension_table_);
        }
        break;
      }
      case WRITE_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void WriteRel::InternalSwap(WriteRel* 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(WriteRel, _impl_.output_)
      + sizeof(WriteRel::_impl_.output_)
      - PROTOBUF_FIELD_OFFSET(WriteRel, _impl_.table_schema_)>(
          reinterpret_cast<char*>(&_impl_.table_schema_),
          reinterpret_cast<char*>(&other->_impl_.table_schema_));
  swap(_impl_.write_type_, other->_impl_.write_type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

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

ComparisonJoinKey_ComparisonType::ComparisonJoinKey_ComparisonType(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ComparisonJoinKey_ComparisonType_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ComparisonJoinKey.ComparisonType)
}
ComparisonJoinKey_ComparisonType::ComparisonJoinKey_ComparisonType(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ComparisonJoinKey_ComparisonType& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ComparisonJoinKey_ComparisonType_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 ComparisonJoinKey_ComparisonType::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : inner_type_{},
        _cached_size_{0},
        _oneof_case_{} {}

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

void ComparisonJoinKey_ComparisonType::clear_inner_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.ComparisonJoinKey.ComparisonType)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (inner_type_case()) {
    case kSimple: {
      // No need to clear
      break;
    }
    case kCustomFunctionReference: {
      // No need to clear
      break;
    }
    case INNER_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = INNER_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ComparisonJoinKey_ComparisonType_class_data_ =
        ComparisonJoinKey_ComparisonType::InternalGenerateClassData_(ComparisonJoinKey_ComparisonType_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ComparisonJoinKey_ComparisonType::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ComparisonJoinKey_ComparisonType_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ComparisonJoinKey_ComparisonType_class_data_.tc_table);
  return ComparisonJoinKey_ComparisonType_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ComparisonJoinKey_ComparisonType::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ComparisonJoinKey_ComparisonType_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ComparisonJoinKey_ComparisonType_globals_));
  return ComparisonJoinKey_ComparisonType_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ComparisonJoinKey_ComparisonType::ParseTableT_
    ComparisonJoinKey_ComparisonType::_table_ =
        ComparisonJoinKey_ComparisonType::InternalGenerateParseTable_(ComparisonJoinKey_ComparisonType_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ComparisonJoinKey_ComparisonType::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ComparisonJoinKey.ComparisonType)
  ::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_inner_type();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.inner_type_case()) {
    case kSimple: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          1, this_._internal_simple(), target);
      break;
    }
    case kCustomFunctionReference: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_custom_function_reference(), 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.ComparisonJoinKey.ComparisonType)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ComparisonJoinKey_ComparisonType::ByteSizeLong(const MessageLite& base) {
  const ComparisonJoinKey_ComparisonType& this_ = static_cast<const ComparisonJoinKey_ComparisonType&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ComparisonJoinKey_ComparisonType::ByteSizeLong() const {
  const ComparisonJoinKey_ComparisonType& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ComparisonJoinKey.ComparisonType)
  ::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_.inner_type_case()) {
    // .substrait.ComparisonJoinKey.SimpleComparisonType simple = 1;
    case kSimple: {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_simple());
      break;
    }
    // uint32 custom_function_reference = 2;
    case kCustomFunctionReference: {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_custom_function_reference());
      break;
    }
    case INNER_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ComparisonJoinKey_ComparisonType::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ComparisonJoinKey_ComparisonType*>(&to_msg);
  auto& from = static_cast<const ComparisonJoinKey_ComparisonType&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ComparisonJoinKey.ComparisonType)
  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_inner_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kSimple: {
        _this->_impl_.inner_type_.simple_ = from._impl_.inner_type_.simple_;
        break;
      }
      case kCustomFunctionReference: {
        _this->_impl_.inner_type_.custom_function_reference_ = from._impl_.inner_type_.custom_function_reference_;
        break;
      }
      case INNER_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ComparisonJoinKey* 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_.left_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_)
                : nullptr;
  _impl_.right_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_)
                : nullptr;
  _impl_.comparison_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.comparison_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ComparisonJoinKey_class_data_ =
        ComparisonJoinKey::InternalGenerateClassData_(ComparisonJoinKey_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ComparisonJoinKey::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ComparisonJoinKey_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ComparisonJoinKey_class_data_.tc_table);
  return ComparisonJoinKey_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ComparisonJoinKey::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ComparisonJoinKey_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ComparisonJoinKey_globals_));
  return ComparisonJoinKey_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ComparisonJoinKey::ParseTableT_
    ComparisonJoinKey::_table_ =
        ComparisonJoinKey::InternalGenerateParseTable_(ComparisonJoinKey_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ComparisonJoinKey::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ComparisonJoinKey)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.left_ != nullptr);
      _impl_.left_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.right_ != nullptr);
      _impl_.right_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.comparison_ != nullptr);
      _impl_.comparison_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  // .substrait.ComparisonJoinKey.ComparisonType comparison = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.comparison_, this_._impl_.comparison_->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.ComparisonJoinKey)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ComparisonJoinKey::ByteSizeLong(const MessageLite& base) {
  const ComparisonJoinKey& this_ = static_cast<const ComparisonJoinKey&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ComparisonJoinKey::ByteSizeLong() const {
  const ComparisonJoinKey& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ComparisonJoinKey)
  ::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.Expression.FieldReference left = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.left_);
    }
    // .substrait.Expression.FieldReference right = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.right_);
    }
    // .substrait.ComparisonJoinKey.ComparisonType comparison = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.comparison_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ComparisonJoinKey::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ComparisonJoinKey*>(&to_msg);
  auto& from = static_cast<const ComparisonJoinKey&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ComparisonJoinKey)
  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_.left_ != nullptr);
      if (_this->_impl_.left_ == nullptr) {
        _this->_impl_.left_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_);
      } else {
        _this->_impl_.left_->MergeFrom(*from._impl_.left_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.right_ != nullptr);
      if (_this->_impl_.right_ == nullptr) {
        _this->_impl_.right_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_);
      } else {
        _this->_impl_.right_->MergeFrom(*from._impl_.right_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.comparison_ != nullptr);
      if (_this->_impl_.comparison_ == nullptr) {
        _this->_impl_.comparison_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.comparison_);
      } else {
        _this->_impl_.comparison_->MergeFrom(*from._impl_.comparison_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ComparisonJoinKey::InternalSwap(ComparisonJoinKey* 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(ComparisonJoinKey, _impl_.comparison_)
      + sizeof(ComparisonJoinKey::_impl_.comparison_)
      - PROTOBUF_FIELD_OFFSET(ComparisonJoinKey, _impl_.left_)>(
          reinterpret_cast<char*>(&_impl_.left_),
          reinterpret_cast<char*>(&other->_impl_.left_));
}

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

void HashJoinRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
HashJoinRel::HashJoinRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, HashJoinRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.HashJoinRel)
}
PROTOBUF_NDEBUG_INLINE HashJoinRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::HashJoinRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        left_keys_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::HashJoinRel,
              PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.left_keys_)>()
          , from.left_keys_
        }
        ,
        right_keys_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::HashJoinRel,
              PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.right_keys_)>()
          , from.right_keys_
        }
        ,
        keys_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::HashJoinRel,
              PROTOBUF_FIELD_OFFSET(::substrait::HashJoinRel, _impl_.keys_)>()
          , from.keys_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  HashJoinRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.left_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_)
                : nullptr;
  _impl_.right_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_)
                : nullptr;
  _impl_.post_join_filter_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.post_join_filter_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000080U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;
  _impl_.type_ = from._impl_.type_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull HashJoinRel_class_data_ =
        HashJoinRel::InternalGenerateClassData_(HashJoinRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HashJoinRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&HashJoinRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(HashJoinRel_class_data_.tc_table);
  return HashJoinRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HashJoinRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&HashJoinRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&HashJoinRel_globals_));
  return HashJoinRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const HashJoinRel::ParseTableT_
    HashJoinRel::_table_ =
        HashJoinRel::InternalGenerateParseTable_(HashJoinRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void HashJoinRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.HashJoinRel)
  ::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, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.left_keys_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.right_keys_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.keys_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.left_ != nullptr);
      _impl_.left_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(_impl_.right_ != nullptr);
      _impl_.right_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(_impl_.post_join_filter_ != nullptr);
      _impl_.post_join_filter_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_.type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Rel left = 2;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.left_, this_._impl_.left_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Rel right = 3;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.right_, this_._impl_.right_->GetCachedSize(), target,
        stream);
  }

  // repeated .substrait.Expression.FieldReference left_keys = 4 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_left_keys_size());
         i < n; i++) {
      const auto& repfield = this_._internal_left_keys().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .substrait.Expression.FieldReference right_keys = 5 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_right_keys_size());
         i < n; i++) {
      const auto& repfield = this_._internal_right_keys().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              5, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.Expression post_join_filter = 6;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.post_join_filter_, this_._impl_.post_join_filter_->GetCachedSize(), target,
        stream);
  }

  // .substrait.HashJoinRel.JoinType type = 7;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          7, this_._internal_type(), target);
    }
  }

  // repeated .substrait.ComparisonJoinKey keys = 8;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_keys_size());
         i < n; i++) {
      const auto& repfield = this_._internal_keys().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              8, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.HashJoinRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HashJoinRel::ByteSizeLong(const MessageLite& base) {
  const HashJoinRel& this_ = static_cast<const HashJoinRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HashJoinRel::ByteSizeLong() const {
  const HashJoinRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.HashJoinRel)
  ::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, 0x000000ffU)) {
    // repeated .substrait.Expression.FieldReference left_keys = 4 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_left_keys_size();
      for (const auto& msg : this_._internal_left_keys()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.Expression.FieldReference right_keys = 5 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_right_keys_size();
      for (const auto& msg : this_._internal_right_keys()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.ComparisonJoinKey keys = 8;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_keys_size();
      for (const auto& msg : this_._internal_keys()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel left = 2;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.left_);
    }
    // .substrait.Rel right = 3;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.right_);
    }
    // .substrait.Expression post_join_filter = 6;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.post_join_filter_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
   {
    // .substrait.HashJoinRel.JoinType type = 7;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (this_._internal_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void HashJoinRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<HashJoinRel*>(&to_msg);
  auto& from = static_cast<const HashJoinRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.HashJoinRel)
  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, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_left_keys()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_left_keys());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_right_keys()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_right_keys());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_keys()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_keys());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.left_ != nullptr);
      if (_this->_impl_.left_ == nullptr) {
        _this->_impl_.left_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_);
      } else {
        _this->_impl_.left_->MergeFrom(*from._impl_.left_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.right_ != nullptr);
      if (_this->_impl_.right_ == nullptr) {
        _this->_impl_.right_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_);
      } else {
        _this->_impl_.right_->MergeFrom(*from._impl_.right_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.post_join_filter_ != nullptr);
      if (_this->_impl_.post_join_filter_ == nullptr) {
        _this->_impl_.post_join_filter_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.post_join_filter_);
      } else {
        _this->_impl_.post_join_filter_->MergeFrom(*from._impl_.post_join_filter_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    if (from._internal_type() != 0) {
      _this->_impl_.type_ = from._impl_.type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void HashJoinRel::InternalSwap(HashJoinRel* 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_.left_keys_.InternalSwap(&other->_impl_.left_keys_);
  _impl_.right_keys_.InternalSwap(&other->_impl_.right_keys_);
  _impl_.keys_.InternalSwap(&other->_impl_.keys_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.type_)
      + sizeof(HashJoinRel::_impl_.type_)
      - PROTOBUF_FIELD_OFFSET(HashJoinRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void MergeJoinRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
MergeJoinRel::MergeJoinRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MergeJoinRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.MergeJoinRel)
}
PROTOBUF_NDEBUG_INLINE MergeJoinRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::MergeJoinRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        left_keys_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::MergeJoinRel,
              PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.left_keys_)>()
          , from.left_keys_
        }
        ,
        right_keys_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::MergeJoinRel,
              PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.right_keys_)>()
          , from.right_keys_
        }
        ,
        keys_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::MergeJoinRel,
              PROTOBUF_FIELD_OFFSET(::substrait::MergeJoinRel, _impl_.keys_)>()
          , from.keys_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MergeJoinRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.left_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_)
                : nullptr;
  _impl_.right_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_)
                : nullptr;
  _impl_.post_join_filter_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.post_join_filter_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000080U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;
  _impl_.type_ = from._impl_.type_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MergeJoinRel_class_data_ =
        MergeJoinRel::InternalGenerateClassData_(MergeJoinRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MergeJoinRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MergeJoinRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MergeJoinRel_class_data_.tc_table);
  return MergeJoinRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MergeJoinRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MergeJoinRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MergeJoinRel_globals_));
  return MergeJoinRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MergeJoinRel::ParseTableT_
    MergeJoinRel::_table_ =
        MergeJoinRel::InternalGenerateParseTable_(MergeJoinRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MergeJoinRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.MergeJoinRel)
  ::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, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.left_keys_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.right_keys_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.keys_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.left_ != nullptr);
      _impl_.left_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(_impl_.right_ != nullptr);
      _impl_.right_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(_impl_.post_join_filter_ != nullptr);
      _impl_.post_join_filter_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_.type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Rel left = 2;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.left_, this_._impl_.left_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Rel right = 3;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.right_, this_._impl_.right_->GetCachedSize(), target,
        stream);
  }

  // repeated .substrait.Expression.FieldReference left_keys = 4 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_left_keys_size());
         i < n; i++) {
      const auto& repfield = this_._internal_left_keys().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .substrait.Expression.FieldReference right_keys = 5 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_right_keys_size());
         i < n; i++) {
      const auto& repfield = this_._internal_right_keys().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              5, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.Expression post_join_filter = 6;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.post_join_filter_, this_._impl_.post_join_filter_->GetCachedSize(), target,
        stream);
  }

  // .substrait.MergeJoinRel.JoinType type = 7;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          7, this_._internal_type(), target);
    }
  }

  // repeated .substrait.ComparisonJoinKey keys = 8;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_keys_size());
         i < n; i++) {
      const auto& repfield = this_._internal_keys().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              8, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.MergeJoinRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t MergeJoinRel::ByteSizeLong(const MessageLite& base) {
  const MergeJoinRel& this_ = static_cast<const MergeJoinRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t MergeJoinRel::ByteSizeLong() const {
  const MergeJoinRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.MergeJoinRel)
  ::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, 0x000000ffU)) {
    // repeated .substrait.Expression.FieldReference left_keys = 4 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_left_keys_size();
      for (const auto& msg : this_._internal_left_keys()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.Expression.FieldReference right_keys = 5 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_right_keys_size();
      for (const auto& msg : this_._internal_right_keys()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.ComparisonJoinKey keys = 8;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_keys_size();
      for (const auto& msg : this_._internal_keys()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel left = 2;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.left_);
    }
    // .substrait.Rel right = 3;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.right_);
    }
    // .substrait.Expression post_join_filter = 6;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.post_join_filter_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
  }
   {
    // .substrait.MergeJoinRel.JoinType type = 7;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (this_._internal_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void MergeJoinRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<MergeJoinRel*>(&to_msg);
  auto& from = static_cast<const MergeJoinRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.MergeJoinRel)
  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, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_left_keys()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_left_keys());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_right_keys()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_right_keys());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_keys()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_keys());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.left_ != nullptr);
      if (_this->_impl_.left_ == nullptr) {
        _this->_impl_.left_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_);
      } else {
        _this->_impl_.left_->MergeFrom(*from._impl_.left_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.right_ != nullptr);
      if (_this->_impl_.right_ == nullptr) {
        _this->_impl_.right_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_);
      } else {
        _this->_impl_.right_->MergeFrom(*from._impl_.right_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.post_join_filter_ != nullptr);
      if (_this->_impl_.post_join_filter_ == nullptr) {
        _this->_impl_.post_join_filter_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.post_join_filter_);
      } else {
        _this->_impl_.post_join_filter_->MergeFrom(*from._impl_.post_join_filter_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
  }
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    if (from._internal_type() != 0) {
      _this->_impl_.type_ = from._impl_.type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void MergeJoinRel::InternalSwap(MergeJoinRel* 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_.left_keys_.InternalSwap(&other->_impl_.left_keys_);
  _impl_.right_keys_.InternalSwap(&other->_impl_.right_keys_);
  _impl_.keys_.InternalSwap(&other->_impl_.keys_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.type_)
      + sizeof(MergeJoinRel::_impl_.type_)
      - PROTOBUF_FIELD_OFFSET(MergeJoinRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void NestedLoopJoinRel::clear_advanced_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.advanced_extension_ != nullptr) _impl_.advanced_extension_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
NestedLoopJoinRel::NestedLoopJoinRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NestedLoopJoinRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.NestedLoopJoinRel)
}
PROTOBUF_NDEBUG_INLINE NestedLoopJoinRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::NestedLoopJoinRel& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NestedLoopJoinRel* 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_.common_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_)
                : nullptr;
  _impl_.left_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_)
                : nullptr;
  _impl_.right_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_)
                : nullptr;
  _impl_.expression_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.expression_)
                : nullptr;
  _impl_.advanced_extension_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_)
                : nullptr;
  _impl_.type_ = from._impl_.type_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NestedLoopJoinRel_class_data_ =
        NestedLoopJoinRel::InternalGenerateClassData_(NestedLoopJoinRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NestedLoopJoinRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NestedLoopJoinRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NestedLoopJoinRel_class_data_.tc_table);
  return NestedLoopJoinRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NestedLoopJoinRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NestedLoopJoinRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&NestedLoopJoinRel_globals_));
  return NestedLoopJoinRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const NestedLoopJoinRel::ParseTableT_
    NestedLoopJoinRel::_table_ =
        NestedLoopJoinRel::InternalGenerateParseTable_(NestedLoopJoinRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void NestedLoopJoinRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.NestedLoopJoinRel)
  ::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, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.common_ != nullptr);
      _impl_.common_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.left_ != nullptr);
      _impl_.left_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.right_ != nullptr);
      _impl_.right_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.expression_ != nullptr);
      _impl_.expression_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.advanced_extension_ != nullptr);
      _impl_.advanced_extension_->Clear();
    }
  }
  _impl_.type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  // .substrait.Rel right = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.right_, this_._impl_.right_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Expression expression = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.expression_, this_._impl_.expression_->GetCachedSize(), target,
        stream);
  }

  // .substrait.NestedLoopJoinRel.JoinType type = 5;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          5, this_._internal_type(), target);
    }
  }

  // .substrait.extensions.AdvancedExtension advanced_extension = 10;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.advanced_extension_, this_._impl_.advanced_extension_->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.NestedLoopJoinRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NestedLoopJoinRel::ByteSizeLong(const MessageLite& base) {
  const NestedLoopJoinRel& this_ = static_cast<const NestedLoopJoinRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NestedLoopJoinRel::ByteSizeLong() const {
  const NestedLoopJoinRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.NestedLoopJoinRel)
  ::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, 0x0000003fU)) {
    // .substrait.RelCommon common = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.common_);
    }
    // .substrait.Rel left = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.left_);
    }
    // .substrait.Rel right = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.right_);
    }
    // .substrait.Expression expression = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.expression_);
    }
    // .substrait.extensions.AdvancedExtension advanced_extension = 10;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.advanced_extension_);
    }
    // .substrait.NestedLoopJoinRel.JoinType type = 5;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NestedLoopJoinRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<NestedLoopJoinRel*>(&to_msg);
  auto& from = static_cast<const NestedLoopJoinRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.NestedLoopJoinRel)
  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, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.common_ != nullptr);
      if (_this->_impl_.common_ == nullptr) {
        _this->_impl_.common_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.common_);
      } else {
        _this->_impl_.common_->MergeFrom(*from._impl_.common_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.left_ != nullptr);
      if (_this->_impl_.left_ == nullptr) {
        _this->_impl_.left_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_);
      } else {
        _this->_impl_.left_->MergeFrom(*from._impl_.left_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.right_ != nullptr);
      if (_this->_impl_.right_ == nullptr) {
        _this->_impl_.right_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_);
      } else {
        _this->_impl_.right_->MergeFrom(*from._impl_.right_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.expression_ != nullptr);
      if (_this->_impl_.expression_ == nullptr) {
        _this->_impl_.expression_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.expression_);
      } else {
        _this->_impl_.expression_->MergeFrom(*from._impl_.expression_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.advanced_extension_ != nullptr);
      if (_this->_impl_.advanced_extension_ == nullptr) {
        _this->_impl_.advanced_extension_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.advanced_extension_);
      } else {
        _this->_impl_.advanced_extension_->MergeFrom(*from._impl_.advanced_extension_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void NestedLoopJoinRel::InternalSwap(NestedLoopJoinRel* 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(NestedLoopJoinRel, _impl_.type_)
      + sizeof(NestedLoopJoinRel::_impl_.type_)
      - PROTOBUF_FIELD_OFFSET(NestedLoopJoinRel, _impl_.common_)>(
          reinterpret_cast<char*>(&_impl_.common_),
          reinterpret_cast<char*>(&other->_impl_.common_));
}

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

void FunctionArgument::set_allocated_type(::substrait::Type* PROTOBUF_NULLABLE type) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_arg_type();
  if (type) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(type)->GetArena();
    if (message_arena != submessage_arena) {
      type = ::google::protobuf::internal::GetOwnedMessage(message_arena, type, submessage_arena);
    }
    set_has_type();
    _impl_.arg_type_.type_ = type;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.FunctionArgument.type)
}
void FunctionArgument::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (arg_type_case() == kType) {
    if (GetArena() == nullptr) {
      delete _impl_.arg_type_.type_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.arg_type_.type_);
    }
    clear_has_arg_type();
  }
}
void FunctionArgument::set_allocated_value(::substrait::Expression* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_arg_type();
  if (value) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    set_has_value();
    _impl_.arg_type_.value_ = value;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.FunctionArgument.value)
}
FunctionArgument::FunctionArgument(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FunctionArgument_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.FunctionArgument)
}
PROTOBUF_NDEBUG_INLINE FunctionArgument::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::FunctionArgument& from_msg)
      : arg_type_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FunctionArgument* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (arg_type_case()) {
    case ARG_TYPE_NOT_SET:
      break;
      case kEnum:
        new (&_impl_.arg_type_.enum__) decltype(_impl_.arg_type_.enum__){arena, from._impl_.arg_type_.enum__};
        break;
      case kType:
        _impl_.arg_type_.type_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.arg_type_.type_);
        break;
      case kValue:
        _impl_.arg_type_.value_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.arg_type_.value_);
        break;
  }

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

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

void FunctionArgument::clear_arg_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.FunctionArgument)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (arg_type_case()) {
    case kEnum: {
      _impl_.arg_type_.enum__.Destroy();
      break;
    }
    case kType: {
      if (GetArena() == nullptr) {
        delete _impl_.arg_type_.type_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.arg_type_.type_);
      }
      break;
    }
    case kValue: {
      if (GetArena() == nullptr) {
        delete _impl_.arg_type_.value_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.arg_type_.value_);
      }
      break;
    }
    case ARG_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = ARG_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FunctionArgument_class_data_ =
        FunctionArgument::InternalGenerateClassData_(FunctionArgument_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FunctionArgument::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FunctionArgument_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FunctionArgument_class_data_.tc_table);
  return FunctionArgument_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FunctionArgument::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FunctionArgument_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&FunctionArgument_globals_));
  return FunctionArgument_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FunctionArgument::ParseTableT_
    FunctionArgument::_table_ =
        FunctionArgument::InternalGenerateParseTable_(FunctionArgument_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FunctionArgument::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.FunctionArgument)
  ::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_arg_type();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.arg_type_case()) {
    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.FunctionArgument.enum");
      target = stream->WriteStringMaybeAliased(1, _s, target);
      break;
    }
    case kType: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.arg_type_.type_, this_._impl_.arg_type_.type_->GetCachedSize(), target,
          stream);
      break;
    }
    case kValue: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.arg_type_.value_, this_._impl_.arg_type_.value_->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.FunctionArgument)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FunctionArgument::ByteSizeLong(const MessageLite& base) {
  const FunctionArgument& this_ = static_cast<const FunctionArgument&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FunctionArgument::ByteSizeLong() const {
  const FunctionArgument& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.FunctionArgument)
  ::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_.arg_type_case()) {
    // string enum = 1;
    case kEnum: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_enum_());
      break;
    }
    // .substrait.Type type = 2;
    case kType: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.arg_type_.type_);
      break;
    }
    // .substrait.Expression value = 3;
    case kValue: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.arg_type_.value_);
      break;
    }
    case ARG_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void FunctionArgument::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FunctionArgument*>(&to_msg);
  auto& from = static_cast<const FunctionArgument&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.FunctionArgument)
  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_arg_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kEnum: {
        if (oneof_needs_init) {
          _this->_impl_.arg_type_.enum__.InitDefault();
        }
        _this->_impl_.arg_type_.enum__.Set(from._internal_enum_(), arena);
        break;
      }
      case kType: {
        if (oneof_needs_init) {
          _this->_impl_.arg_type_.type_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.arg_type_.type_);
        } else {
          _this->_impl_.arg_type_.type_->MergeFrom(*from._impl_.arg_type_.type_);
        }
        break;
      }
      case kValue: {
        if (oneof_needs_init) {
          _this->_impl_.arg_type_.value_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.arg_type_.value_);
        } else {
          _this->_impl_.arg_type_.value_->MergeFrom(*from._impl_.arg_type_.value_);
        }
        break;
      }
      case ARG_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FunctionOption* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FunctionOption_class_data_ =
        FunctionOption::InternalGenerateClassData_(FunctionOption_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FunctionOption::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FunctionOption_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FunctionOption_class_data_.tc_table);
  return FunctionOption_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FunctionOption::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FunctionOption_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&FunctionOption_globals_));
  return FunctionOption_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FunctionOption::ParseTableT_
    FunctionOption::_table_ =
        FunctionOption::InternalGenerateParseTable_(FunctionOption_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FunctionOption::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.FunctionOption)
  ::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_.preference_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string name = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_name().empty()) {
      const ::std::string& _s = this_._internal_name();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.FunctionOption.name");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // repeated string preference = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_preference_size(); i < n; ++i) {
      const auto& s = this_._internal_preference().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.FunctionOption.preference");
      target = stream->WriteString(2, s, 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.FunctionOption)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FunctionOption::ByteSizeLong(const MessageLite& base) {
  const FunctionOption& this_ = static_cast<const FunctionOption&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FunctionOption::ByteSizeLong() const {
  const FunctionOption& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.FunctionOption)
  ::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 preference = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_preference().size());
      for (int i = 0, n = this_._internal_preference().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_preference().Get(i));
      }
    }
    // string name = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_name().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_name());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void FunctionOption::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FunctionOption*>(&to_msg);
  auto& from = static_cast<const FunctionOption&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.FunctionOption)
  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_preference()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_preference());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_name().empty()) {
        _this->_internal_set_name(from._internal_name());
      } else {
        if (_this->_impl_.name_.IsDefault()) {
          _this->_internal_set_name("");
        }
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void FunctionOption::InternalSwap(FunctionOption* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.preference_.InternalSwap(&other->_impl_.preference_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
}

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

Expression_Enum_Empty::Expression_Enum_Empty(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, Expression_Enum_Empty_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Enum.Empty)
}
Expression_Enum_Empty::Expression_Enum_Empty(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression_Enum_Empty& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, Expression_Enum_Empty_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Enum_Empty* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.Enum.Empty)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Enum_Empty_class_data_ =
        Expression_Enum_Empty::InternalGenerateClassData_(Expression_Enum_Empty_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Enum_Empty::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Enum_Empty_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Enum_Empty_class_data_.tc_table);
  return Expression_Enum_Empty_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Enum_Empty::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Enum_Empty_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Enum_Empty_globals_));
  return Expression_Enum_Empty_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Enum_Empty::ParseTableT_
    Expression_Enum_Empty::_table_ =
        Expression_Enum_Empty::InternalGenerateParseTable_(Expression_Enum_Empty_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata Expression_Enum_Empty::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void Expression_Enum::set_allocated_unspecified(::substrait::Expression_Enum_Empty* PROTOBUF_NULLABLE unspecified) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_enum_kind();
  if (unspecified) {
    ::google::protobuf::Arena* submessage_arena = unspecified->GetArena();
    if (message_arena != submessage_arena) {
      unspecified = ::google::protobuf::internal::GetOwnedMessage(message_arena, unspecified, submessage_arena);
    }
    set_has_unspecified();
    _impl_.enum_kind_.unspecified_ = unspecified;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Enum.unspecified)
}
Expression_Enum::Expression_Enum(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Enum_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Enum)
}
PROTOBUF_NDEBUG_INLINE Expression_Enum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_Enum& from_msg)
      : enum_kind_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Enum* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (enum_kind_case()) {
    case ENUM_KIND_NOT_SET:
      break;
      case kSpecified:
        new (&_impl_.enum_kind_.specified_) decltype(_impl_.enum_kind_.specified_){arena, from._impl_.enum_kind_.specified_};
        break;
      case kUnspecified:
        _impl_.enum_kind_.unspecified_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.enum_kind_.unspecified_);
        break;
  }

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

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

void Expression_Enum::clear_enum_kind() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.Enum)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (enum_kind_case()) {
    case kSpecified: {
      _impl_.enum_kind_.specified_.Destroy();
      break;
    }
    case kUnspecified: {
      if (GetArena() == nullptr) {
        delete _impl_.enum_kind_.unspecified_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.enum_kind_.unspecified_);
      }
      break;
    }
    case ENUM_KIND_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = ENUM_KIND_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Enum_class_data_ =
        Expression_Enum::InternalGenerateClassData_(Expression_Enum_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Enum::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Enum_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Enum_class_data_.tc_table);
  return Expression_Enum_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Enum::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Enum_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Enum_globals_));
  return Expression_Enum_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Enum::ParseTableT_
    Expression_Enum::_table_ =
        Expression_Enum::InternalGenerateParseTable_(Expression_Enum_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Enum::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Enum)
  ::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_enum_kind();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.enum_kind_case()) {
    case kSpecified: {
      const ::std::string& _s = this_._internal_specified();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.Expression.Enum.specified");
      target = stream->WriteStringMaybeAliased(1, _s, target);
      break;
    }
    case kUnspecified: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.enum_kind_.unspecified_, this_._impl_.enum_kind_.unspecified_->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.Expression.Enum)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Enum::ByteSizeLong(const MessageLite& base) {
  const Expression_Enum& this_ = static_cast<const Expression_Enum&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Enum::ByteSizeLong() const {
  const Expression_Enum& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Enum)
  ::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_.enum_kind_case()) {
    // string specified = 1;
    case kSpecified: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_specified());
      break;
    }
    // .substrait.Expression.Enum.Empty unspecified = 2;
    case kUnspecified: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.enum_kind_.unspecified_);
      break;
    }
    case ENUM_KIND_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Enum::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Enum*>(&to_msg);
  auto& from = static_cast<const Expression_Enum&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Enum)
  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_enum_kind();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kSpecified: {
        if (oneof_needs_init) {
          _this->_impl_.enum_kind_.specified_.InitDefault();
        }
        _this->_impl_.enum_kind_.specified_.Set(from._internal_specified(), arena);
        break;
      }
      case kUnspecified: {
        if (oneof_needs_init) {
          _this->_impl_.enum_kind_.unspecified_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.enum_kind_.unspecified_);
        } else {
          _this->_impl_.enum_kind_.unspecified_->MergeFrom(*from._impl_.enum_kind_.unspecified_);
        }
        break;
      }
      case ENUM_KIND_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Literal_VarChar* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.length_ = from._impl_.length_;

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.Literal.VarChar)
}
PROTOBUF_NDEBUG_INLINE Expression_Literal_VarChar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        value_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Literal_VarChar_class_data_ =
        Expression_Literal_VarChar::InternalGenerateClassData_(Expression_Literal_VarChar_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_VarChar::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_VarChar_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Literal_VarChar_class_data_.tc_table);
  return Expression_Literal_VarChar_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_VarChar::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_VarChar_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Literal_VarChar_globals_));
  return Expression_Literal_VarChar_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Literal_VarChar::ParseTableT_
    Expression_Literal_VarChar::_table_ =
        Expression_Literal_VarChar::InternalGenerateParseTable_(Expression_Literal_VarChar_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Literal_VarChar::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Literal.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 (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.value_.ClearNonDefaultToEmpty();
  }
  _impl_.length_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string value = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_value().empty()) {
      const ::std::string& _s = this_._internal_value();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.Expression.Literal.VarChar.value");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // uint32 length = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_length(), 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.Expression.Literal.VarChar)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Literal_VarChar::ByteSizeLong(const MessageLite& base) {
  const Expression_Literal_VarChar& this_ = static_cast<const Expression_Literal_VarChar&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Literal_VarChar::ByteSizeLong() const {
  const Expression_Literal_VarChar& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Literal.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, 0x00000003U)) {
    // string value = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_value().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_value());
      }
    }
    // uint32 length = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_length());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Literal_VarChar::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Literal_VarChar*>(&to_msg);
  auto& from = static_cast<const Expression_Literal_VarChar&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Literal.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, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_value().empty()) {
        _this->_internal_set_value(from._internal_value());
      } else {
        if (_this->_impl_.value_.IsDefault()) {
          _this->_internal_set_value("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_length() != 0) {
        _this->_impl_.length_ = from._impl_.length_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Literal_VarChar::InternalSwap(Expression_Literal_VarChar* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.value_, &other->_impl_.value_, arena);
  swap(_impl_.length_, other->_impl_.length_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Literal_Decimal* 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_, precision_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, precision_),
           offsetof(Impl_, scale_) -
               offsetof(Impl_, precision_) +
               sizeof(Impl_::scale_));

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.Literal.Decimal)
}
PROTOBUF_NDEBUG_INLINE Expression_Literal_Decimal::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        value_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Literal_Decimal_class_data_ =
        Expression_Literal_Decimal::InternalGenerateClassData_(Expression_Literal_Decimal_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_Decimal::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_Decimal_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Literal_Decimal_class_data_.tc_table);
  return Expression_Literal_Decimal_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_Decimal::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_Decimal_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Literal_Decimal_globals_));
  return Expression_Literal_Decimal_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Literal_Decimal::ParseTableT_
    Expression_Literal_Decimal::_table_ =
        Expression_Literal_Decimal::InternalGenerateParseTable_(Expression_Literal_Decimal_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Literal_Decimal::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Literal.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 (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.value_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    ::memset(&_impl_.precision_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.scale_) -
        reinterpret_cast<char*>(&_impl_.precision_)) + sizeof(_impl_.scale_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bytes value = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_value().empty()) {
      const ::std::string& _s = this_._internal_value();
      target = stream->WriteBytesMaybeAliased(1, _s, 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);
    }
  }

  // int32 scale = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_scale() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
              stream, this_._internal_scale(), 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.Expression.Literal.Decimal)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Literal_Decimal::ByteSizeLong(const MessageLite& base) {
  const Expression_Literal_Decimal& this_ = static_cast<const Expression_Literal_Decimal&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Literal_Decimal::ByteSizeLong() const {
  const Expression_Literal_Decimal& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Literal.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, 0x00000007U)) {
    // bytes value = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_value().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_value());
      }
    }
    // int32 precision = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_precision() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_precision());
      }
    }
    // int32 scale = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_scale() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_scale());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Literal_Decimal::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Literal_Decimal*>(&to_msg);
  auto& from = static_cast<const Expression_Literal_Decimal&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Literal.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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_value().empty()) {
        _this->_internal_set_value(from._internal_value());
      } else {
        if (_this->_impl_.value_.IsDefault()) {
          _this->_internal_set_value("");
        }
      }
    }
    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_scale() != 0) {
        _this->_impl_.scale_ = from._impl_.scale_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Literal_Decimal::InternalSwap(Expression_Literal_Decimal* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.value_, &other->_impl_.value_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Expression_Literal_Decimal, _impl_.scale_)
      + sizeof(Expression_Literal_Decimal::_impl_.scale_)
      - PROTOBUF_FIELD_OFFSET(Expression_Literal_Decimal, _impl_.precision_)>(
          reinterpret_cast<char*>(&_impl_.precision_),
          reinterpret_cast<char*>(&other->_impl_.precision_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Literal_Map_KeyValue* 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;

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

inline void Expression_Literal_Map_KeyValue::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, key_),
           0,
           offsetof(Impl_, value_) -
               offsetof(Impl_, key_) +
               sizeof(Impl_::value_));
}
Expression_Literal_Map_KeyValue::~Expression_Literal_Map_KeyValue() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Literal.Map.KeyValue)
  SharedDtor(*this);
}
inline void Expression_Literal_Map_KeyValue::SharedDtor(MessageLite& self) {
  Expression_Literal_Map_KeyValue& this_ = static_cast<Expression_Literal_Map_KeyValue&>(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 Expression_Literal_Map_KeyValue_class_data_ =
        Expression_Literal_Map_KeyValue::InternalGenerateClassData_(Expression_Literal_Map_KeyValue_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_Map_KeyValue::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_Map_KeyValue_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Literal_Map_KeyValue_class_data_.tc_table);
  return Expression_Literal_Map_KeyValue_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_Map_KeyValue::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_Map_KeyValue_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Literal_Map_KeyValue_globals_));
  return Expression_Literal_Map_KeyValue_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Literal_Map_KeyValue::ParseTableT_
    Expression_Literal_Map_KeyValue::_table_ =
        Expression_Literal_Map_KeyValue::InternalGenerateParseTable_(Expression_Literal_Map_KeyValue_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Literal_Map_KeyValue::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Literal.Map.KeyValue)
  ::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();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.Expression.Literal 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.Expression.Literal value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.value_, this_._impl_.value_->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.Expression.Literal.Map.KeyValue)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Literal_Map_KeyValue::ByteSizeLong(const MessageLite& base) {
  const Expression_Literal_Map_KeyValue& this_ = static_cast<const Expression_Literal_Map_KeyValue&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Literal_Map_KeyValue::ByteSizeLong() const {
  const Expression_Literal_Map_KeyValue& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Literal.Map.KeyValue)
  ::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)) {
    // .substrait.Expression.Literal key = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.key_);
    }
    // .substrait.Expression.Literal value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.value_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Literal_Map_KeyValue::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Literal_Map_KeyValue*>(&to_msg);
  auto& from = static_cast<const Expression_Literal_Map_KeyValue&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Literal.Map.KeyValue)
  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)) {
      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_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Literal_Map_KeyValue::InternalSwap(Expression_Literal_Map_KeyValue* 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(Expression_Literal_Map_KeyValue, _impl_.value_)
      + sizeof(Expression_Literal_Map_KeyValue::_impl_.value_)
      - PROTOBUF_FIELD_OFFSET(Expression_Literal_Map_KeyValue, _impl_.key_)>(
          reinterpret_cast<char*>(&_impl_.key_),
          reinterpret_cast<char*>(&other->_impl_.key_));
}

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

Expression_Literal_Map::Expression_Literal_Map(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Literal_Map_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Literal.Map)
}
PROTOBUF_NDEBUG_INLINE Expression_Literal_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::Expression_Literal_Map& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        key_values_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_Literal_Map,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Map, _impl_.key_values_)>()
          , from.key_values_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Literal_Map* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void Expression_Literal_Map::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_Literal_Map::~Expression_Literal_Map() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Literal.Map)
  SharedDtor(*this);
}
inline void Expression_Literal_Map::SharedDtor(MessageLite& self) {
  Expression_Literal_Map& this_ = static_cast<Expression_Literal_Map&>(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 Expression_Literal_Map_class_data_ =
        Expression_Literal_Map::InternalGenerateClassData_(Expression_Literal_Map_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_Map::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_Map_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Literal_Map_class_data_.tc_table);
  return Expression_Literal_Map_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_Map::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_Map_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Literal_Map_globals_));
  return Expression_Literal_Map_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Literal_Map::ParseTableT_
    Expression_Literal_Map::_table_ =
        Expression_Literal_Map::InternalGenerateParseTable_(Expression_Literal_Map_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Literal_Map::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Literal.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 (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.key_values_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression.Literal.Map.KeyValue key_values = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_key_values_size());
         i < n; i++) {
      const auto& repfield = this_._internal_key_values().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.Expression.Literal.Map)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Literal_Map::ByteSizeLong(const MessageLite& base) {
  const Expression_Literal_Map& this_ = static_cast<const Expression_Literal_Map&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Literal_Map::ByteSizeLong() const {
  const Expression_Literal_Map& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Literal.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_);
   {
    // repeated .substrait.Expression.Literal.Map.KeyValue key_values = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_key_values_size();
      for (const auto& msg : this_._internal_key_values()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Literal_Map::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Literal_Map*>(&to_msg);
  auto& from = static_cast<const Expression_Literal_Map&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Literal.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 (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_key_values()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_key_values());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Literal_Map::InternalSwap(Expression_Literal_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]);
  _impl_.key_values_.InternalSwap(&other->_impl_.key_values_);
}

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

Expression_Literal_IntervalYearToMonth::Expression_Literal_IntervalYearToMonth(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Literal_IntervalYearToMonth_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Literal.IntervalYearToMonth)
}
Expression_Literal_IntervalYearToMonth::Expression_Literal_IntervalYearToMonth(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Expression_Literal_IntervalYearToMonth& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Literal_IntervalYearToMonth_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 Expression_Literal_IntervalYearToMonth::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Expression_Literal_IntervalYearToMonth::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, years_),
           0,
           offsetof(Impl_, months_) -
               offsetof(Impl_, years_) +
               sizeof(Impl_::months_));
}
Expression_Literal_IntervalYearToMonth::~Expression_Literal_IntervalYearToMonth() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Literal.IntervalYearToMonth)
  SharedDtor(*this);
}
inline void Expression_Literal_IntervalYearToMonth::SharedDtor(MessageLite& self) {
  Expression_Literal_IntervalYearToMonth& this_ = static_cast<Expression_Literal_IntervalYearToMonth&>(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 Expression_Literal_IntervalYearToMonth_class_data_ =
        Expression_Literal_IntervalYearToMonth::InternalGenerateClassData_(Expression_Literal_IntervalYearToMonth_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_IntervalYearToMonth::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_IntervalYearToMonth_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Literal_IntervalYearToMonth_class_data_.tc_table);
  return Expression_Literal_IntervalYearToMonth_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_IntervalYearToMonth::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_IntervalYearToMonth_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Literal_IntervalYearToMonth_globals_));
  return Expression_Literal_IntervalYearToMonth_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Literal_IntervalYearToMonth::ParseTableT_
    Expression_Literal_IntervalYearToMonth::_table_ =
        Expression_Literal_IntervalYearToMonth::InternalGenerateParseTable_(Expression_Literal_IntervalYearToMonth_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Literal_IntervalYearToMonth::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Literal.IntervalYearToMonth)
  ::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_.years_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.months_) -
        reinterpret_cast<char*>(&_impl_.years_)) + sizeof(_impl_.months_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // int32 months = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_months() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
              stream, this_._internal_months(), 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.Expression.Literal.IntervalYearToMonth)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Literal_IntervalYearToMonth::ByteSizeLong(const MessageLite& base) {
  const Expression_Literal_IntervalYearToMonth& this_ = static_cast<const Expression_Literal_IntervalYearToMonth&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Literal_IntervalYearToMonth::ByteSizeLong() const {
  const Expression_Literal_IntervalYearToMonth& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Literal.IntervalYearToMonth)
  ::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)) {
    // int32 years = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_years() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_years());
      }
    }
    // int32 months = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_months() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_months());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Literal_IntervalYearToMonth::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Literal_IntervalYearToMonth*>(&to_msg);
  auto& from = static_cast<const Expression_Literal_IntervalYearToMonth&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Literal.IntervalYearToMonth)
  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_years() != 0) {
        _this->_impl_.years_ = from._impl_.years_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_months() != 0) {
        _this->_impl_.months_ = from._impl_.months_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Literal_IntervalYearToMonth::InternalSwap(Expression_Literal_IntervalYearToMonth* 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(Expression_Literal_IntervalYearToMonth, _impl_.months_)
      + sizeof(Expression_Literal_IntervalYearToMonth::_impl_.months_)
      - PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalYearToMonth, _impl_.years_)>(
          reinterpret_cast<char*>(&_impl_.years_),
          reinterpret_cast<char*>(&other->_impl_.years_));
}

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

Expression_Literal_IntervalDayToSecond::Expression_Literal_IntervalDayToSecond(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Literal_IntervalDayToSecond_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Literal.IntervalDayToSecond)
}
Expression_Literal_IntervalDayToSecond::Expression_Literal_IntervalDayToSecond(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Expression_Literal_IntervalDayToSecond& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Literal_IntervalDayToSecond_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 Expression_Literal_IntervalDayToSecond::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Expression_Literal_IntervalDayToSecond::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, days_),
           0,
           offsetof(Impl_, microseconds_) -
               offsetof(Impl_, days_) +
               sizeof(Impl_::microseconds_));
}
Expression_Literal_IntervalDayToSecond::~Expression_Literal_IntervalDayToSecond() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Literal.IntervalDayToSecond)
  SharedDtor(*this);
}
inline void Expression_Literal_IntervalDayToSecond::SharedDtor(MessageLite& self) {
  Expression_Literal_IntervalDayToSecond& this_ = static_cast<Expression_Literal_IntervalDayToSecond&>(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 Expression_Literal_IntervalDayToSecond_class_data_ =
        Expression_Literal_IntervalDayToSecond::InternalGenerateClassData_(Expression_Literal_IntervalDayToSecond_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_IntervalDayToSecond::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_IntervalDayToSecond_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Literal_IntervalDayToSecond_class_data_.tc_table);
  return Expression_Literal_IntervalDayToSecond_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_IntervalDayToSecond::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_IntervalDayToSecond_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Literal_IntervalDayToSecond_globals_));
  return Expression_Literal_IntervalDayToSecond_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Literal_IntervalDayToSecond::ParseTableT_
    Expression_Literal_IntervalDayToSecond::_table_ =
        Expression_Literal_IntervalDayToSecond::InternalGenerateParseTable_(Expression_Literal_IntervalDayToSecond_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Literal_IntervalDayToSecond::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Literal.IntervalDayToSecond)
  ::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_.days_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.microseconds_) -
        reinterpret_cast<char*>(&_impl_.days_)) + sizeof(_impl_.microseconds_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  // int32 microseconds = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_microseconds() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
              stream, this_._internal_microseconds(), 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.Expression.Literal.IntervalDayToSecond)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Literal_IntervalDayToSecond::ByteSizeLong(const MessageLite& base) {
  const Expression_Literal_IntervalDayToSecond& this_ = static_cast<const Expression_Literal_IntervalDayToSecond&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Literal_IntervalDayToSecond::ByteSizeLong() const {
  const Expression_Literal_IntervalDayToSecond& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Literal.IntervalDayToSecond)
  ::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 days = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_days() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_days());
      }
    }
    // int32 seconds = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_seconds() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_seconds());
      }
    }
    // int32 microseconds = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_microseconds() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_microseconds());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Literal_IntervalDayToSecond::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Literal_IntervalDayToSecond*>(&to_msg);
  auto& from = static_cast<const Expression_Literal_IntervalDayToSecond&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Literal.IntervalDayToSecond)
  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_days() != 0) {
        _this->_impl_.days_ = from._impl_.days_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_seconds() != 0) {
        _this->_impl_.seconds_ = from._impl_.seconds_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_microseconds() != 0) {
        _this->_impl_.microseconds_ = from._impl_.microseconds_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Literal_IntervalDayToSecond::InternalSwap(Expression_Literal_IntervalDayToSecond* 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(Expression_Literal_IntervalDayToSecond, _impl_.microseconds_)
      + sizeof(Expression_Literal_IntervalDayToSecond::_impl_.microseconds_)
      - PROTOBUF_FIELD_OFFSET(Expression_Literal_IntervalDayToSecond, _impl_.days_)>(
          reinterpret_cast<char*>(&_impl_.days_),
          reinterpret_cast<char*>(&other->_impl_.days_));
}

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

Expression_Literal_Struct::Expression_Literal_Struct(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Literal_Struct_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Literal.Struct)
}
PROTOBUF_NDEBUG_INLINE Expression_Literal_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::Expression_Literal_Struct& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        fields_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_Literal_Struct,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_Struct, _impl_.fields_)>()
          , from.fields_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Literal_Struct* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void Expression_Literal_Struct::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_Literal_Struct::~Expression_Literal_Struct() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Literal.Struct)
  SharedDtor(*this);
}
inline void Expression_Literal_Struct::SharedDtor(MessageLite& self) {
  Expression_Literal_Struct& this_ = static_cast<Expression_Literal_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 Expression_Literal_Struct_class_data_ =
        Expression_Literal_Struct::InternalGenerateClassData_(Expression_Literal_Struct_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_Struct::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_Struct_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Literal_Struct_class_data_.tc_table);
  return Expression_Literal_Struct_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_Struct::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_Struct_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Literal_Struct_globals_));
  return Expression_Literal_Struct_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Literal_Struct::ParseTableT_
    Expression_Literal_Struct::_table_ =
        Expression_Literal_Struct::InternalGenerateParseTable_(Expression_Literal_Struct_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Literal_Struct::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Literal.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_.fields_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression.Literal fields = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_fields_size());
         i < n; i++) {
      const auto& repfield = this_._internal_fields().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.Expression.Literal.Struct)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Literal_Struct::ByteSizeLong(const MessageLite& base) {
  const Expression_Literal_Struct& this_ = static_cast<const Expression_Literal_Struct&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Literal_Struct::ByteSizeLong() const {
  const Expression_Literal_Struct& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Literal.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_);
   {
    // repeated .substrait.Expression.Literal fields = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_fields_size();
      for (const auto& msg : this_._internal_fields()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Literal_Struct::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Literal_Struct*>(&to_msg);
  auto& from = static_cast<const Expression_Literal_Struct&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Literal.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 (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_fields()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_fields());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Literal_Struct::InternalSwap(Expression_Literal_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_.fields_.InternalSwap(&other->_impl_.fields_);
}

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

Expression_Literal_List::Expression_Literal_List(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Literal_List_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Literal.List)
}
PROTOBUF_NDEBUG_INLINE Expression_Literal_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::Expression_Literal_List& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        values_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_Literal_List,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_List, _impl_.values_)>()
          , from.values_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Literal_List* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void Expression_Literal_List::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_Literal_List::~Expression_Literal_List() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Literal.List)
  SharedDtor(*this);
}
inline void Expression_Literal_List::SharedDtor(MessageLite& self) {
  Expression_Literal_List& this_ = static_cast<Expression_Literal_List&>(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 Expression_Literal_List_class_data_ =
        Expression_Literal_List::InternalGenerateClassData_(Expression_Literal_List_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_List::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_List_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Literal_List_class_data_.tc_table);
  return Expression_Literal_List_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_List::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_List_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Literal_List_globals_));
  return Expression_Literal_List_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Literal_List::ParseTableT_
    Expression_Literal_List::_table_ =
        Expression_Literal_List::InternalGenerateParseTable_(Expression_Literal_List_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Literal_List::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Literal.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)) {
    _impl_.values_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression.Literal values = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_values_size());
         i < n; i++) {
      const auto& repfield = this_._internal_values().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.Expression.Literal.List)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Literal_List::ByteSizeLong(const MessageLite& base) {
  const Expression_Literal_List& this_ = static_cast<const Expression_Literal_List&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Literal_List::ByteSizeLong() const {
  const Expression_Literal_List& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Literal.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_);
   {
    // repeated .substrait.Expression.Literal values = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_values_size();
      for (const auto& msg : this_._internal_values()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Literal_List::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Literal_List*>(&to_msg);
  auto& from = static_cast<const Expression_Literal_List&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Literal.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 (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_values()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_values());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Literal_List::InternalSwap(Expression_Literal_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]);
  _impl_.values_.InternalSwap(&other->_impl_.values_);
}

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

void Expression_Literal_UserDefined::clear_type_parameters() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_parameters_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
void Expression_Literal_UserDefined::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.value_ != nullptr) _impl_.value_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
Expression_Literal_UserDefined::Expression_Literal_UserDefined(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Literal_UserDefined_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Literal.UserDefined)
}
PROTOBUF_NDEBUG_INLINE Expression_Literal_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::Expression_Literal_UserDefined& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        type_parameters_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_Literal_UserDefined,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_UserDefined, _impl_.type_parameters_)>()
          , from.type_parameters_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Literal_UserDefined* 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_.value_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.value_)
                : nullptr;
  _impl_.type_reference_ = from._impl_.type_reference_;

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.Literal.UserDefined)
}
PROTOBUF_NDEBUG_INLINE Expression_Literal_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::Expression_Literal_UserDefined,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_Literal_UserDefined, _impl_.type_parameters_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Literal_UserDefined_class_data_ =
        Expression_Literal_UserDefined::InternalGenerateClassData_(Expression_Literal_UserDefined_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_UserDefined::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_UserDefined_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Literal_UserDefined_class_data_.tc_table);
  return Expression_Literal_UserDefined_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal_UserDefined::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_UserDefined_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Literal_UserDefined_globals_));
  return Expression_Literal_UserDefined_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Literal_UserDefined::ParseTableT_
    Expression_Literal_UserDefined::_table_ =
        Expression_Literal_UserDefined::InternalGenerateParseTable_(Expression_Literal_UserDefined_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Literal_UserDefined::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Literal.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 (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.type_parameters_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.value_ != nullptr);
      _impl_.value_->Clear();
    }
  }
  _impl_.type_reference_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Expression_Literal_UserDefined::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression_Literal_UserDefined& this_ = static_cast<const Expression_Literal_UserDefined&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression_Literal_UserDefined::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression_Literal_UserDefined& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression.Literal.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, 0x00000004U)) {
    if (this_._internal_type_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type_reference(), target);
    }
  }

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

  // repeated .substrait.Type.Parameter type_parameters = 3;
  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(
              3, 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.Expression.Literal.UserDefined)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Literal_UserDefined::ByteSizeLong(const MessageLite& base) {
  const Expression_Literal_UserDefined& this_ = static_cast<const Expression_Literal_UserDefined&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Literal_UserDefined::ByteSizeLong() const {
  const Expression_Literal_UserDefined& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Literal.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, 0x00000007U)) {
    // repeated .substrait.Type.Parameter type_parameters = 3;
    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);
      }
    }
    // .google.protobuf.Any value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.value_);
    }
    // uint32 type_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_type_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type_reference());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Literal_UserDefined::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Literal_UserDefined*>(&to_msg);
  auto& from = static_cast<const Expression_Literal_UserDefined&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Literal.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, 0x00000007U)) {
    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)) {
      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_reference() != 0) {
        _this->_impl_.type_reference_ = from._impl_.type_reference_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Literal_UserDefined::InternalSwap(Expression_Literal_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(Expression_Literal_UserDefined, _impl_.type_reference_)
      + sizeof(Expression_Literal_UserDefined::_impl_.type_reference_)
      - PROTOBUF_FIELD_OFFSET(Expression_Literal_UserDefined, _impl_.value_)>(
          reinterpret_cast<char*>(&_impl_.value_),
          reinterpret_cast<char*>(&other->_impl_.value_));
}

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

void Expression_Literal::set_allocated_interval_year_to_month(::substrait::Expression_Literal_IntervalYearToMonth* PROTOBUF_NULLABLE interval_year_to_month) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  if (interval_year_to_month) {
    ::google::protobuf::Arena* submessage_arena = interval_year_to_month->GetArena();
    if (message_arena != submessage_arena) {
      interval_year_to_month = ::google::protobuf::internal::GetOwnedMessage(message_arena, interval_year_to_month, submessage_arena);
    }
    set_has_interval_year_to_month();
    _impl_.literal_type_.interval_year_to_month_ = interval_year_to_month;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.interval_year_to_month)
}
void Expression_Literal::set_allocated_interval_day_to_second(::substrait::Expression_Literal_IntervalDayToSecond* PROTOBUF_NULLABLE interval_day_to_second) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  if (interval_day_to_second) {
    ::google::protobuf::Arena* submessage_arena = interval_day_to_second->GetArena();
    if (message_arena != submessage_arena) {
      interval_day_to_second = ::google::protobuf::internal::GetOwnedMessage(message_arena, interval_day_to_second, submessage_arena);
    }
    set_has_interval_day_to_second();
    _impl_.literal_type_.interval_day_to_second_ = interval_day_to_second;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.interval_day_to_second)
}
void Expression_Literal::set_allocated_var_char(::substrait::Expression_Literal_VarChar* PROTOBUF_NULLABLE var_char) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  if (var_char) {
    ::google::protobuf::Arena* submessage_arena = var_char->GetArena();
    if (message_arena != submessage_arena) {
      var_char = ::google::protobuf::internal::GetOwnedMessage(message_arena, var_char, submessage_arena);
    }
    set_has_var_char();
    _impl_.literal_type_.var_char_ = var_char;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.var_char)
}
void Expression_Literal::set_allocated_decimal(::substrait::Expression_Literal_Decimal* PROTOBUF_NULLABLE decimal) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  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_.literal_type_.decimal_ = decimal;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.decimal)
}
void Expression_Literal::set_allocated_struct_(::substrait::Expression_Literal_Struct* PROTOBUF_NULLABLE struct_) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  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_.literal_type_.struct__ = struct_;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.struct)
}
void Expression_Literal::set_allocated_map(::substrait::Expression_Literal_Map* PROTOBUF_NULLABLE map) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  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_.literal_type_.map_ = map;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.map)
}
void Expression_Literal::set_allocated_null(::substrait::Type* PROTOBUF_NULLABLE null) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  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_.literal_type_.null_ = null;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.null)
}
void Expression_Literal::clear_null() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (literal_type_case() == kNull) {
    if (GetArena() == nullptr) {
      delete _impl_.literal_type_.null_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.null_);
    }
    clear_has_literal_type();
  }
}
void Expression_Literal::set_allocated_list(::substrait::Expression_Literal_List* PROTOBUF_NULLABLE list) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  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_.literal_type_.list_ = list;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.list)
}
void Expression_Literal::set_allocated_empty_list(::substrait::Type_List* PROTOBUF_NULLABLE empty_list) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  if (empty_list) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(empty_list)->GetArena();
    if (message_arena != submessage_arena) {
      empty_list = ::google::protobuf::internal::GetOwnedMessage(message_arena, empty_list, submessage_arena);
    }
    set_has_empty_list();
    _impl_.literal_type_.empty_list_ = empty_list;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.empty_list)
}
void Expression_Literal::clear_empty_list() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (literal_type_case() == kEmptyList) {
    if (GetArena() == nullptr) {
      delete _impl_.literal_type_.empty_list_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.empty_list_);
    }
    clear_has_literal_type();
  }
}
void Expression_Literal::set_allocated_empty_map(::substrait::Type_Map* PROTOBUF_NULLABLE empty_map) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  if (empty_map) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(empty_map)->GetArena();
    if (message_arena != submessage_arena) {
      empty_map = ::google::protobuf::internal::GetOwnedMessage(message_arena, empty_map, submessage_arena);
    }
    set_has_empty_map();
    _impl_.literal_type_.empty_map_ = empty_map;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.empty_map)
}
void Expression_Literal::clear_empty_map() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (literal_type_case() == kEmptyMap) {
    if (GetArena() == nullptr) {
      delete _impl_.literal_type_.empty_map_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.empty_map_);
    }
    clear_has_literal_type();
  }
}
void Expression_Literal::set_allocated_user_defined(::substrait::Expression_Literal_UserDefined* PROTOBUF_NULLABLE user_defined) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_literal_type();
  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_.literal_type_.user_defined_ = user_defined;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Literal.user_defined)
}
Expression_Literal::Expression_Literal(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Literal_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Literal)
}
PROTOBUF_NDEBUG_INLINE Expression_Literal::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_Literal& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        literal_type_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Literal* 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_, nullable_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, nullable_),
           offsetof(Impl_, type_variation_reference_) -
               offsetof(Impl_, nullable_) +
               sizeof(Impl_::type_variation_reference_));
  switch (literal_type_case()) {
    case LITERAL_TYPE_NOT_SET:
      break;
      case kBoolean:
        _impl_.literal_type_.boolean_ = from._impl_.literal_type_.boolean_;
        break;
      case kI8:
        _impl_.literal_type_.i8_ = from._impl_.literal_type_.i8_;
        break;
      case kI16:
        _impl_.literal_type_.i16_ = from._impl_.literal_type_.i16_;
        break;
      case kI32:
        _impl_.literal_type_.i32_ = from._impl_.literal_type_.i32_;
        break;
      case kI64:
        _impl_.literal_type_.i64_ = from._impl_.literal_type_.i64_;
        break;
      case kFp32:
        _impl_.literal_type_.fp32_ = from._impl_.literal_type_.fp32_;
        break;
      case kFp64:
        _impl_.literal_type_.fp64_ = from._impl_.literal_type_.fp64_;
        break;
      case kString:
        new (&_impl_.literal_type_.string_) decltype(_impl_.literal_type_.string_){arena, from._impl_.literal_type_.string_};
        break;
      case kBinary:
        new (&_impl_.literal_type_.binary_) decltype(_impl_.literal_type_.binary_){arena, from._impl_.literal_type_.binary_};
        break;
      case kTimestamp:
        _impl_.literal_type_.timestamp_ = from._impl_.literal_type_.timestamp_;
        break;
      case kDate:
        _impl_.literal_type_.date_ = from._impl_.literal_type_.date_;
        break;
      case kTime:
        _impl_.literal_type_.time_ = from._impl_.literal_type_.time_;
        break;
      case kIntervalYearToMonth:
        _impl_.literal_type_.interval_year_to_month_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.interval_year_to_month_);
        break;
      case kIntervalDayToSecond:
        _impl_.literal_type_.interval_day_to_second_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.interval_day_to_second_);
        break;
      case kFixedChar:
        new (&_impl_.literal_type_.fixed_char_) decltype(_impl_.literal_type_.fixed_char_){arena, from._impl_.literal_type_.fixed_char_};
        break;
      case kVarChar:
        _impl_.literal_type_.var_char_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.var_char_);
        break;
      case kFixedBinary:
        new (&_impl_.literal_type_.fixed_binary_) decltype(_impl_.literal_type_.fixed_binary_){arena, from._impl_.literal_type_.fixed_binary_};
        break;
      case kDecimal:
        _impl_.literal_type_.decimal_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.decimal_);
        break;
      case kPrecisionTimestamp:
        _impl_.literal_type_.precision_timestamp_ = from._impl_.literal_type_.precision_timestamp_;
        break;
      case kPrecisionTimestampTz:
        _impl_.literal_type_.precision_timestamp_tz_ = from._impl_.literal_type_.precision_timestamp_tz_;
        break;
      case kStruct:
        _impl_.literal_type_.struct__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.struct__);
        break;
      case kMap:
        _impl_.literal_type_.map_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.map_);
        break;
      case kTimestampTz:
        _impl_.literal_type_.timestamp_tz_ = from._impl_.literal_type_.timestamp_tz_;
        break;
      case kUuid:
        new (&_impl_.literal_type_.uuid_) decltype(_impl_.literal_type_.uuid_){arena, from._impl_.literal_type_.uuid_};
        break;
      case kNull:
        _impl_.literal_type_.null_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.null_);
        break;
      case kList:
        _impl_.literal_type_.list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.list_);
        break;
      case kEmptyList:
        _impl_.literal_type_.empty_list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.empty_list_);
        break;
      case kEmptyMap:
        _impl_.literal_type_.empty_map_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.empty_map_);
        break;
      case kUserDefined:
        _impl_.literal_type_.user_defined_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.user_defined_);
        break;
  }

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

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

void Expression_Literal::clear_literal_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.Literal)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (literal_type_case()) {
    case kBoolean: {
      // No need to clear
      break;
    }
    case kI8: {
      // No need to clear
      break;
    }
    case kI16: {
      // No need to clear
      break;
    }
    case kI32: {
      // No need to clear
      break;
    }
    case kI64: {
      // No need to clear
      break;
    }
    case kFp32: {
      // No need to clear
      break;
    }
    case kFp64: {
      // No need to clear
      break;
    }
    case kString: {
      _impl_.literal_type_.string_.Destroy();
      break;
    }
    case kBinary: {
      _impl_.literal_type_.binary_.Destroy();
      break;
    }
    case kTimestamp: {
      // No need to clear
      break;
    }
    case kDate: {
      // No need to clear
      break;
    }
    case kTime: {
      // No need to clear
      break;
    }
    case kIntervalYearToMonth: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.interval_year_to_month_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.interval_year_to_month_);
      }
      break;
    }
    case kIntervalDayToSecond: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.interval_day_to_second_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.interval_day_to_second_);
      }
      break;
    }
    case kFixedChar: {
      _impl_.literal_type_.fixed_char_.Destroy();
      break;
    }
    case kVarChar: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.var_char_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.var_char_);
      }
      break;
    }
    case kFixedBinary: {
      _impl_.literal_type_.fixed_binary_.Destroy();
      break;
    }
    case kDecimal: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.decimal_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.decimal_);
      }
      break;
    }
    case kPrecisionTimestamp: {
      // No need to clear
      break;
    }
    case kPrecisionTimestampTz: {
      // No need to clear
      break;
    }
    case kStruct: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.struct__;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.struct__);
      }
      break;
    }
    case kMap: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.map_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.map_);
      }
      break;
    }
    case kTimestampTz: {
      // No need to clear
      break;
    }
    case kUuid: {
      _impl_.literal_type_.uuid_.Destroy();
      break;
    }
    case kNull: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.null_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.null_);
      }
      break;
    }
    case kList: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.list_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.list_);
      }
      break;
    }
    case kEmptyList: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.empty_list_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.empty_list_);
      }
      break;
    }
    case kEmptyMap: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.empty_map_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.empty_map_);
      }
      break;
    }
    case kUserDefined: {
      if (GetArena() == nullptr) {
        delete _impl_.literal_type_.user_defined_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.literal_type_.user_defined_);
      }
      break;
    }
    case LITERAL_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = LITERAL_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Literal_class_data_ =
        Expression_Literal::InternalGenerateClassData_(Expression_Literal_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Literal_class_data_.tc_table);
  return Expression_Literal_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Literal::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Literal_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Literal_globals_));
  return Expression_Literal_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Literal::ParseTableT_
    Expression_Literal::_table_ =
        Expression_Literal::InternalGenerateParseTable_(Expression_Literal_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Literal::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Literal)
  ::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_.nullable_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.type_variation_reference_) -
        reinterpret_cast<char*>(&_impl_.nullable_)) + sizeof(_impl_.type_variation_reference_));
  }
  clear_literal_type();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.literal_type_case()) {
    case kBoolean: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_boolean(), target);
      break;
    }
    case kI8: {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
              stream, this_._internal_i8(), target);
      break;
    }
    case kI16: {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
              stream, this_._internal_i16(), target);
      break;
    }
    case kI32: {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
              stream, this_._internal_i32(), target);
      break;
    }
    case kI64: {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<7>(
              stream, this_._internal_i64(), target);
      break;
    }
    case kFp32: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFloatToArray(
          10, this_._internal_fp32(), target);
      break;
    }
    case kFp64: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteDoubleToArray(
          11, this_._internal_fp64(), 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.Expression.Literal.string");
      target = stream->WriteStringMaybeAliased(12, _s, target);
      break;
    }
    case kBinary: {
      const ::std::string& _s = this_._internal_binary();
      target = stream->WriteBytesMaybeAliased(13, _s, target);
      break;
    }
    case kTimestamp: {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<14>(
              stream, this_._internal_timestamp(), target);
      break;
    }
    case kDate: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt32ToArray(
          16, this_._internal_date(), target);
      break;
    }
    case kTime: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt64ToArray(
          17, this_._internal_time(), target);
      break;
    }
    case kIntervalYearToMonth: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          19, *this_._impl_.literal_type_.interval_year_to_month_, this_._impl_.literal_type_.interval_year_to_month_->GetCachedSize(), target,
          stream);
      break;
    }
    case kIntervalDayToSecond: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          20, *this_._impl_.literal_type_.interval_day_to_second_, this_._impl_.literal_type_.interval_day_to_second_->GetCachedSize(), target,
          stream);
      break;
    }
    case kFixedChar: {
      const ::std::string& _s = this_._internal_fixed_char();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.Expression.Literal.fixed_char");
      target = stream->WriteStringMaybeAliased(21, _s, target);
      break;
    }
    case kVarChar: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          22, *this_._impl_.literal_type_.var_char_, this_._impl_.literal_type_.var_char_->GetCachedSize(), target,
          stream);
      break;
    }
    case kFixedBinary: {
      const ::std::string& _s = this_._internal_fixed_binary();
      target = stream->WriteBytesMaybeAliased(23, _s, target);
      break;
    }
    case kDecimal: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          24, *this_._impl_.literal_type_.decimal_, this_._impl_.literal_type_.decimal_->GetCachedSize(), target,
          stream);
      break;
    }
    case kStruct: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          25, *this_._impl_.literal_type_.struct__, this_._impl_.literal_type_.struct__->GetCachedSize(), target,
          stream);
      break;
    }
    case kMap: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          26, *this_._impl_.literal_type_.map_, this_._impl_.literal_type_.map_->GetCachedSize(), target,
          stream);
      break;
    }
    case kTimestampTz: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt64ToArray(
          27, this_._internal_timestamp_tz(), target);
      break;
    }
    case kUuid: {
      const ::std::string& _s = this_._internal_uuid();
      target = stream->WriteBytesMaybeAliased(28, _s, target);
      break;
    }
    case kNull: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          29, *this_._impl_.literal_type_.null_, this_._impl_.literal_type_.null_->GetCachedSize(), target,
          stream);
      break;
    }
    case kList: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          30, *this_._impl_.literal_type_.list_, this_._impl_.literal_type_.list_->GetCachedSize(), target,
          stream);
      break;
    }
    case kEmptyList: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          31, *this_._impl_.literal_type_.empty_list_, this_._impl_.literal_type_.empty_list_->GetCachedSize(), target,
          stream);
      break;
    }
    case kEmptyMap: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          32, *this_._impl_.literal_type_.empty_map_, this_._impl_.literal_type_.empty_map_->GetCachedSize(), target,
          stream);
      break;
    }
    case kUserDefined: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          33, *this_._impl_.literal_type_.user_defined_, this_._impl_.literal_type_.user_defined_->GetCachedSize(), target,
          stream);
      break;
    }
    case kPrecisionTimestamp: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          34, this_._internal_precision_timestamp(), target);
      break;
    }
    case kPrecisionTimestampTz: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          35, this_._internal_precision_timestamp_tz(), target);
      break;
    }
    default:
      break;
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  // bool nullable = 50;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_nullable() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          50, this_._internal_nullable(), target);
    }
  }

  // uint32 type_variation_reference = 51;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type_variation_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          51, this_._internal_type_variation_reference(), 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.Expression.Literal)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Literal::ByteSizeLong(const MessageLite& base) {
  const Expression_Literal& this_ = static_cast<const Expression_Literal&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Literal::ByteSizeLong() const {
  const Expression_Literal& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Literal)
  ::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)) {
    // bool nullable = 50;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_nullable() != 0) {
        total_size += 3;
      }
    }
    // uint32 type_variation_reference = 51;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type_variation_reference() != 0) {
        total_size += 2 + ::_pbi::WireFormatLite::UInt32Size(
                                        this_._internal_type_variation_reference());
      }
    }
  }
  switch (this_.literal_type_case()) {
    // bool boolean = 1;
    case kBoolean: {
      total_size += 2;
      break;
    }
    // int32 i8 = 2;
    case kI8: {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_i8());
      break;
    }
    // int32 i16 = 3;
    case kI16: {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_i16());
      break;
    }
    // int32 i32 = 5;
    case kI32: {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_i32());
      break;
    }
    // int64 i64 = 7;
    case kI64: {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_i64());
      break;
    }
    // float fp32 = 10;
    case kFp32: {
      total_size += 5;
      break;
    }
    // double fp64 = 11;
    case kFp64: {
      total_size += 9;
      break;
    }
    // string string = 12;
    case kString: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_string());
      break;
    }
    // bytes binary = 13;
    case kBinary: {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_binary());
      break;
    }
    // int64 timestamp = 14 [deprecated = true];
    case kTimestamp: {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_timestamp());
      break;
    }
    // int32 date = 16;
    case kDate: {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_date());
      break;
    }
    // int64 time = 17;
    case kTime: {
      total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
                                      this_._internal_time());
      break;
    }
    // .substrait.Expression.Literal.IntervalYearToMonth interval_year_to_month = 19;
    case kIntervalYearToMonth: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.interval_year_to_month_);
      break;
    }
    // .substrait.Expression.Literal.IntervalDayToSecond interval_day_to_second = 20;
    case kIntervalDayToSecond: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.interval_day_to_second_);
      break;
    }
    // string fixed_char = 21;
    case kFixedChar: {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_fixed_char());
      break;
    }
    // .substrait.Expression.Literal.VarChar var_char = 22;
    case kVarChar: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.var_char_);
      break;
    }
    // bytes fixed_binary = 23;
    case kFixedBinary: {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_fixed_binary());
      break;
    }
    // .substrait.Expression.Literal.Decimal decimal = 24;
    case kDecimal: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.decimal_);
      break;
    }
    // uint64 precision_timestamp = 34;
    case kPrecisionTimestamp: {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_precision_timestamp());
      break;
    }
    // uint64 precision_timestamp_tz = 35;
    case kPrecisionTimestampTz: {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_precision_timestamp_tz());
      break;
    }
    // .substrait.Expression.Literal.Struct struct = 25;
    case kStruct: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.struct__);
      break;
    }
    // .substrait.Expression.Literal.Map map = 26;
    case kMap: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.map_);
      break;
    }
    // int64 timestamp_tz = 27 [deprecated = true];
    case kTimestampTz: {
      total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
                                      this_._internal_timestamp_tz());
      break;
    }
    // bytes uuid = 28;
    case kUuid: {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_uuid());
      break;
    }
    // .substrait.Type null = 29;
    case kNull: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.null_);
      break;
    }
    // .substrait.Expression.Literal.List list = 30;
    case kList: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.list_);
      break;
    }
    // .substrait.Type.List empty_list = 31;
    case kEmptyList: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.empty_list_);
      break;
    }
    // .substrait.Type.Map empty_map = 32;
    case kEmptyMap: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.empty_map_);
      break;
    }
    // .substrait.Expression.Literal.UserDefined user_defined = 33;
    case kUserDefined: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.literal_type_.user_defined_);
      break;
    }
    case LITERAL_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Literal::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Literal*>(&to_msg);
  auto& from = static_cast<const Expression_Literal&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Literal)
  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_nullable() != 0) {
        _this->_impl_.nullable_ = from._impl_.nullable_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= 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_literal_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kBoolean: {
        _this->_impl_.literal_type_.boolean_ = from._impl_.literal_type_.boolean_;
        break;
      }
      case kI8: {
        _this->_impl_.literal_type_.i8_ = from._impl_.literal_type_.i8_;
        break;
      }
      case kI16: {
        _this->_impl_.literal_type_.i16_ = from._impl_.literal_type_.i16_;
        break;
      }
      case kI32: {
        _this->_impl_.literal_type_.i32_ = from._impl_.literal_type_.i32_;
        break;
      }
      case kI64: {
        _this->_impl_.literal_type_.i64_ = from._impl_.literal_type_.i64_;
        break;
      }
      case kFp32: {
        _this->_impl_.literal_type_.fp32_ = from._impl_.literal_type_.fp32_;
        break;
      }
      case kFp64: {
        _this->_impl_.literal_type_.fp64_ = from._impl_.literal_type_.fp64_;
        break;
      }
      case kString: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.string_.InitDefault();
        }
        _this->_impl_.literal_type_.string_.Set(from._internal_string(), arena);
        break;
      }
      case kBinary: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.binary_.InitDefault();
        }
        _this->_impl_.literal_type_.binary_.Set(from._internal_binary(), arena);
        break;
      }
      case kTimestamp: {
        _this->_impl_.literal_type_.timestamp_ = from._impl_.literal_type_.timestamp_;
        break;
      }
      case kDate: {
        _this->_impl_.literal_type_.date_ = from._impl_.literal_type_.date_;
        break;
      }
      case kTime: {
        _this->_impl_.literal_type_.time_ = from._impl_.literal_type_.time_;
        break;
      }
      case kIntervalYearToMonth: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.interval_year_to_month_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.interval_year_to_month_);
        } else {
          _this->_impl_.literal_type_.interval_year_to_month_->MergeFrom(*from._impl_.literal_type_.interval_year_to_month_);
        }
        break;
      }
      case kIntervalDayToSecond: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.interval_day_to_second_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.interval_day_to_second_);
        } else {
          _this->_impl_.literal_type_.interval_day_to_second_->MergeFrom(*from._impl_.literal_type_.interval_day_to_second_);
        }
        break;
      }
      case kFixedChar: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.fixed_char_.InitDefault();
        }
        _this->_impl_.literal_type_.fixed_char_.Set(from._internal_fixed_char(), arena);
        break;
      }
      case kVarChar: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.var_char_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.var_char_);
        } else {
          _this->_impl_.literal_type_.var_char_->MergeFrom(*from._impl_.literal_type_.var_char_);
        }
        break;
      }
      case kFixedBinary: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.fixed_binary_.InitDefault();
        }
        _this->_impl_.literal_type_.fixed_binary_.Set(from._internal_fixed_binary(), arena);
        break;
      }
      case kDecimal: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.decimal_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.decimal_);
        } else {
          _this->_impl_.literal_type_.decimal_->MergeFrom(*from._impl_.literal_type_.decimal_);
        }
        break;
      }
      case kPrecisionTimestamp: {
        _this->_impl_.literal_type_.precision_timestamp_ = from._impl_.literal_type_.precision_timestamp_;
        break;
      }
      case kPrecisionTimestampTz: {
        _this->_impl_.literal_type_.precision_timestamp_tz_ = from._impl_.literal_type_.precision_timestamp_tz_;
        break;
      }
      case kStruct: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.struct__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.struct__);
        } else {
          _this->_impl_.literal_type_.struct__->MergeFrom(*from._impl_.literal_type_.struct__);
        }
        break;
      }
      case kMap: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.map_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.map_);
        } else {
          _this->_impl_.literal_type_.map_->MergeFrom(*from._impl_.literal_type_.map_);
        }
        break;
      }
      case kTimestampTz: {
        _this->_impl_.literal_type_.timestamp_tz_ = from._impl_.literal_type_.timestamp_tz_;
        break;
      }
      case kUuid: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.uuid_.InitDefault();
        }
        _this->_impl_.literal_type_.uuid_.Set(from._internal_uuid(), arena);
        break;
      }
      case kNull: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.null_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.null_);
        } else {
          _this->_impl_.literal_type_.null_->MergeFrom(*from._impl_.literal_type_.null_);
        }
        break;
      }
      case kList: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.list_);
        } else {
          _this->_impl_.literal_type_.list_->MergeFrom(*from._impl_.literal_type_.list_);
        }
        break;
      }
      case kEmptyList: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.empty_list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.empty_list_);
        } else {
          _this->_impl_.literal_type_.empty_list_->MergeFrom(*from._impl_.literal_type_.empty_list_);
        }
        break;
      }
      case kEmptyMap: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.empty_map_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.empty_map_);
        } else {
          _this->_impl_.literal_type_.empty_map_->MergeFrom(*from._impl_.literal_type_.empty_map_);
        }
        break;
      }
      case kUserDefined: {
        if (oneof_needs_init) {
          _this->_impl_.literal_type_.user_defined_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.literal_type_.user_defined_);
        } else {
          _this->_impl_.literal_type_.user_defined_->MergeFrom(*from._impl_.literal_type_.user_defined_);
        }
        break;
      }
      case LITERAL_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Literal::InternalSwap(Expression_Literal* 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(Expression_Literal, _impl_.type_variation_reference_)
      + sizeof(Expression_Literal::_impl_.type_variation_reference_)
      - PROTOBUF_FIELD_OFFSET(Expression_Literal, _impl_.nullable_)>(
          reinterpret_cast<char*>(&_impl_.nullable_),
          reinterpret_cast<char*>(&other->_impl_.nullable_));
  swap(_impl_.literal_type_, other->_impl_.literal_type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Nested_Map_KeyValue* 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;

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

inline void Expression_Nested_Map_KeyValue::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, key_),
           0,
           offsetof(Impl_, value_) -
               offsetof(Impl_, key_) +
               sizeof(Impl_::value_));
}
Expression_Nested_Map_KeyValue::~Expression_Nested_Map_KeyValue() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Nested.Map.KeyValue)
  SharedDtor(*this);
}
inline void Expression_Nested_Map_KeyValue::SharedDtor(MessageLite& self) {
  Expression_Nested_Map_KeyValue& this_ = static_cast<Expression_Nested_Map_KeyValue&>(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 Expression_Nested_Map_KeyValue_class_data_ =
        Expression_Nested_Map_KeyValue::InternalGenerateClassData_(Expression_Nested_Map_KeyValue_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Nested_Map_KeyValue::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Nested_Map_KeyValue_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Nested_Map_KeyValue_class_data_.tc_table);
  return Expression_Nested_Map_KeyValue_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Nested_Map_KeyValue::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Nested_Map_KeyValue_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Nested_Map_KeyValue_globals_));
  return Expression_Nested_Map_KeyValue_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Nested_Map_KeyValue::ParseTableT_
    Expression_Nested_Map_KeyValue::_table_ =
        Expression_Nested_Map_KeyValue::InternalGenerateParseTable_(Expression_Nested_Map_KeyValue_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Nested_Map_KeyValue::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Nested.Map.KeyValue)
  ::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();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.Expression 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.Expression value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.value_, this_._impl_.value_->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.Expression.Nested.Map.KeyValue)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Nested_Map_KeyValue::ByteSizeLong(const MessageLite& base) {
  const Expression_Nested_Map_KeyValue& this_ = static_cast<const Expression_Nested_Map_KeyValue&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Nested_Map_KeyValue::ByteSizeLong() const {
  const Expression_Nested_Map_KeyValue& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Nested.Map.KeyValue)
  ::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)) {
    // .substrait.Expression key = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.key_);
    }
    // .substrait.Expression value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.value_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Nested_Map_KeyValue::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Nested_Map_KeyValue*>(&to_msg);
  auto& from = static_cast<const Expression_Nested_Map_KeyValue&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Nested.Map.KeyValue)
  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)) {
      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_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Nested_Map_KeyValue::InternalSwap(Expression_Nested_Map_KeyValue* 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(Expression_Nested_Map_KeyValue, _impl_.value_)
      + sizeof(Expression_Nested_Map_KeyValue::_impl_.value_)
      - PROTOBUF_FIELD_OFFSET(Expression_Nested_Map_KeyValue, _impl_.key_)>(
          reinterpret_cast<char*>(&_impl_.key_),
          reinterpret_cast<char*>(&other->_impl_.key_));
}

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

Expression_Nested_Map::Expression_Nested_Map(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Nested_Map_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Nested.Map)
}
PROTOBUF_NDEBUG_INLINE Expression_Nested_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::Expression_Nested_Map& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        key_values_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_Nested_Map,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_Map, _impl_.key_values_)>()
          , from.key_values_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Nested_Map* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void Expression_Nested_Map::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_Nested_Map::~Expression_Nested_Map() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Nested.Map)
  SharedDtor(*this);
}
inline void Expression_Nested_Map::SharedDtor(MessageLite& self) {
  Expression_Nested_Map& this_ = static_cast<Expression_Nested_Map&>(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 Expression_Nested_Map_class_data_ =
        Expression_Nested_Map::InternalGenerateClassData_(Expression_Nested_Map_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Nested_Map::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Nested_Map_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Nested_Map_class_data_.tc_table);
  return Expression_Nested_Map_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Nested_Map::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Nested_Map_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Nested_Map_globals_));
  return Expression_Nested_Map_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Nested_Map::ParseTableT_
    Expression_Nested_Map::_table_ =
        Expression_Nested_Map::InternalGenerateParseTable_(Expression_Nested_Map_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Nested_Map::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Nested.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 (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.key_values_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression.Nested.Map.KeyValue key_values = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_key_values_size());
         i < n; i++) {
      const auto& repfield = this_._internal_key_values().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.Expression.Nested.Map)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Nested_Map::ByteSizeLong(const MessageLite& base) {
  const Expression_Nested_Map& this_ = static_cast<const Expression_Nested_Map&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Nested_Map::ByteSizeLong() const {
  const Expression_Nested_Map& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Nested.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_);
   {
    // repeated .substrait.Expression.Nested.Map.KeyValue key_values = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_key_values_size();
      for (const auto& msg : this_._internal_key_values()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Nested_Map::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Nested_Map*>(&to_msg);
  auto& from = static_cast<const Expression_Nested_Map&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Nested.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 (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_key_values()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_key_values());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Nested_Map::InternalSwap(Expression_Nested_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]);
  _impl_.key_values_.InternalSwap(&other->_impl_.key_values_);
}

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

Expression_Nested_Struct::Expression_Nested_Struct(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Nested_Struct_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Nested.Struct)
}
PROTOBUF_NDEBUG_INLINE Expression_Nested_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::Expression_Nested_Struct& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        fields_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_Nested_Struct,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_Struct, _impl_.fields_)>()
          , from.fields_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Nested_Struct* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void Expression_Nested_Struct::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_Nested_Struct::~Expression_Nested_Struct() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Nested.Struct)
  SharedDtor(*this);
}
inline void Expression_Nested_Struct::SharedDtor(MessageLite& self) {
  Expression_Nested_Struct& this_ = static_cast<Expression_Nested_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 Expression_Nested_Struct_class_data_ =
        Expression_Nested_Struct::InternalGenerateClassData_(Expression_Nested_Struct_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Nested_Struct::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Nested_Struct_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Nested_Struct_class_data_.tc_table);
  return Expression_Nested_Struct_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Nested_Struct::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Nested_Struct_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Nested_Struct_globals_));
  return Expression_Nested_Struct_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Nested_Struct::ParseTableT_
    Expression_Nested_Struct::_table_ =
        Expression_Nested_Struct::InternalGenerateParseTable_(Expression_Nested_Struct_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Nested_Struct::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Nested.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_.fields_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression fields = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_fields_size());
         i < n; i++) {
      const auto& repfield = this_._internal_fields().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.Expression.Nested.Struct)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Nested_Struct::ByteSizeLong(const MessageLite& base) {
  const Expression_Nested_Struct& this_ = static_cast<const Expression_Nested_Struct&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Nested_Struct::ByteSizeLong() const {
  const Expression_Nested_Struct& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Nested.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_);
   {
    // repeated .substrait.Expression fields = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_fields_size();
      for (const auto& msg : this_._internal_fields()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Nested_Struct::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Nested_Struct*>(&to_msg);
  auto& from = static_cast<const Expression_Nested_Struct&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Nested.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 (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_fields()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_fields());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Nested_Struct::InternalSwap(Expression_Nested_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_.fields_.InternalSwap(&other->_impl_.fields_);
}

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

Expression_Nested_List::Expression_Nested_List(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Nested_List_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Nested.List)
}
PROTOBUF_NDEBUG_INLINE Expression_Nested_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::Expression_Nested_List& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        values_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_Nested_List,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_Nested_List, _impl_.values_)>()
          , from.values_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Nested_List* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void Expression_Nested_List::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_Nested_List::~Expression_Nested_List() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Nested.List)
  SharedDtor(*this);
}
inline void Expression_Nested_List::SharedDtor(MessageLite& self) {
  Expression_Nested_List& this_ = static_cast<Expression_Nested_List&>(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 Expression_Nested_List_class_data_ =
        Expression_Nested_List::InternalGenerateClassData_(Expression_Nested_List_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Nested_List::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Nested_List_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Nested_List_class_data_.tc_table);
  return Expression_Nested_List_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Nested_List::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Nested_List_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Nested_List_globals_));
  return Expression_Nested_List_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Nested_List::ParseTableT_
    Expression_Nested_List::_table_ =
        Expression_Nested_List::InternalGenerateParseTable_(Expression_Nested_List_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Nested_List::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Nested.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)) {
    _impl_.values_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression values = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_values_size());
         i < n; i++) {
      const auto& repfield = this_._internal_values().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.Expression.Nested.List)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Nested_List::ByteSizeLong(const MessageLite& base) {
  const Expression_Nested_List& this_ = static_cast<const Expression_Nested_List&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Nested_List::ByteSizeLong() const {
  const Expression_Nested_List& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Nested.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_);
   {
    // repeated .substrait.Expression values = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_values_size();
      for (const auto& msg : this_._internal_values()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Nested_List::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Nested_List*>(&to_msg);
  auto& from = static_cast<const Expression_Nested_List&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Nested.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 (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_values()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_values());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Nested_List::InternalSwap(Expression_Nested_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]);
  _impl_.values_.InternalSwap(&other->_impl_.values_);
}

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

void Expression_Nested::set_allocated_struct_(::substrait::Expression_Nested_Struct* PROTOBUF_NULLABLE struct_) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_nested_type();
  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_.nested_type_.struct__ = struct_;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Nested.struct)
}
void Expression_Nested::set_allocated_list(::substrait::Expression_Nested_List* PROTOBUF_NULLABLE list) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_nested_type();
  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_.nested_type_.list_ = list;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Nested.list)
}
void Expression_Nested::set_allocated_map(::substrait::Expression_Nested_Map* PROTOBUF_NULLABLE map) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_nested_type();
  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_.nested_type_.map_ = map;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Nested.map)
}
Expression_Nested::Expression_Nested(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Nested_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Nested)
}
PROTOBUF_NDEBUG_INLINE Expression_Nested::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_Nested& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        nested_type_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Nested* 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_, nullable_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, nullable_),
           offsetof(Impl_, type_variation_reference_) -
               offsetof(Impl_, nullable_) +
               sizeof(Impl_::type_variation_reference_));
  switch (nested_type_case()) {
    case NESTED_TYPE_NOT_SET:
      break;
      case kStruct:
        _impl_.nested_type_.struct__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.nested_type_.struct__);
        break;
      case kList:
        _impl_.nested_type_.list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.nested_type_.list_);
        break;
      case kMap:
        _impl_.nested_type_.map_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.nested_type_.map_);
        break;
  }

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

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

void Expression_Nested::clear_nested_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.Nested)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (nested_type_case()) {
    case kStruct: {
      if (GetArena() == nullptr) {
        delete _impl_.nested_type_.struct__;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.nested_type_.struct__);
      }
      break;
    }
    case kList: {
      if (GetArena() == nullptr) {
        delete _impl_.nested_type_.list_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.nested_type_.list_);
      }
      break;
    }
    case kMap: {
      if (GetArena() == nullptr) {
        delete _impl_.nested_type_.map_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.nested_type_.map_);
      }
      break;
    }
    case NESTED_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = NESTED_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Nested_class_data_ =
        Expression_Nested::InternalGenerateClassData_(Expression_Nested_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Nested::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Nested_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Nested_class_data_.tc_table);
  return Expression_Nested_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Nested::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Nested_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Nested_globals_));
  return Expression_Nested_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Nested::ParseTableT_
    Expression_Nested::_table_ =
        Expression_Nested::InternalGenerateParseTable_(Expression_Nested_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Nested::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Nested)
  ::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_.nullable_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.type_variation_reference_) -
        reinterpret_cast<char*>(&_impl_.nullable_)) + sizeof(_impl_.type_variation_reference_));
  }
  clear_nested_type();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool nullable = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_nullable() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_nullable(), 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);
    }
  }

  switch (this_.nested_type_case()) {
    case kStruct: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.nested_type_.struct__, this_._impl_.nested_type_.struct__->GetCachedSize(), target,
          stream);
      break;
    }
    case kList: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          4, *this_._impl_.nested_type_.list_, this_._impl_.nested_type_.list_->GetCachedSize(), target,
          stream);
      break;
    }
    case kMap: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          5, *this_._impl_.nested_type_.map_, this_._impl_.nested_type_.map_->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.Expression.Nested)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Nested::ByteSizeLong(const MessageLite& base) {
  const Expression_Nested& this_ = static_cast<const Expression_Nested&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Nested::ByteSizeLong() const {
  const Expression_Nested& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Nested)
  ::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)) {
    // bool nullable = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_nullable() != 0) {
        total_size += 2;
      }
    }
    // 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());
      }
    }
  }
  switch (this_.nested_type_case()) {
    // .substrait.Expression.Nested.Struct struct = 3;
    case kStruct: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.nested_type_.struct__);
      break;
    }
    // .substrait.Expression.Nested.List list = 4;
    case kList: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.nested_type_.list_);
      break;
    }
    // .substrait.Expression.Nested.Map map = 5;
    case kMap: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.nested_type_.map_);
      break;
    }
    case NESTED_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Nested::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Nested*>(&to_msg);
  auto& from = static_cast<const Expression_Nested&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Nested)
  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_nullable() != 0) {
        _this->_impl_.nullable_ = from._impl_.nullable_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type_variation_reference() != 0) {
        _this->_impl_.type_variation_reference_ = from._impl_.type_variation_reference_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= 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_nested_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kStruct: {
        if (oneof_needs_init) {
          _this->_impl_.nested_type_.struct__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.nested_type_.struct__);
        } else {
          _this->_impl_.nested_type_.struct__->MergeFrom(*from._impl_.nested_type_.struct__);
        }
        break;
      }
      case kList: {
        if (oneof_needs_init) {
          _this->_impl_.nested_type_.list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.nested_type_.list_);
        } else {
          _this->_impl_.nested_type_.list_->MergeFrom(*from._impl_.nested_type_.list_);
        }
        break;
      }
      case kMap: {
        if (oneof_needs_init) {
          _this->_impl_.nested_type_.map_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.nested_type_.map_);
        } else {
          _this->_impl_.nested_type_.map_->MergeFrom(*from._impl_.nested_type_.map_);
        }
        break;
      }
      case NESTED_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Nested::InternalSwap(Expression_Nested* 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(Expression_Nested, _impl_.type_variation_reference_)
      + sizeof(Expression_Nested::_impl_.type_variation_reference_)
      - PROTOBUF_FIELD_OFFSET(Expression_Nested, _impl_.nullable_)>(
          reinterpret_cast<char*>(&_impl_.nullable_),
          reinterpret_cast<char*>(&other->_impl_.nullable_));
  swap(_impl_.nested_type_, other->_impl_.nested_type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

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

void Expression_ScalarFunction::clear_output_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.output_type_ != nullptr) _impl_.output_type_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
Expression_ScalarFunction::Expression_ScalarFunction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_ScalarFunction_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.ScalarFunction)
}
PROTOBUF_NDEBUG_INLINE Expression_ScalarFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_ScalarFunction& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        args_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_ScalarFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.args_)>()
          , from.args_
        }
        ,
        arguments_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_ScalarFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.arguments_)>()
          , from.arguments_
        }
        ,
        options_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_ScalarFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_ScalarFunction, _impl_.options_)>()
          , from.options_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_ScalarFunction* 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_.output_type_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.output_type_)
                : nullptr;
  _impl_.function_reference_ = from._impl_.function_reference_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_ScalarFunction_class_data_ =
        Expression_ScalarFunction::InternalGenerateClassData_(Expression_ScalarFunction_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_ScalarFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_ScalarFunction_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_ScalarFunction_class_data_.tc_table);
  return Expression_ScalarFunction_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_ScalarFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_ScalarFunction_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_ScalarFunction_globals_));
  return Expression_ScalarFunction_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_ScalarFunction::ParseTableT_
    Expression_ScalarFunction::_table_ =
        Expression_ScalarFunction::InternalGenerateParseTable_(Expression_ScalarFunction_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_ScalarFunction::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.ScalarFunction)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.args_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.arguments_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.options_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.output_type_ != nullptr);
      _impl_.output_type_->Clear();
    }
  }
  _impl_.function_reference_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // repeated .substrait.Expression args = 2 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_args_size());
         i < n; i++) {
      const auto& repfield = this_._internal_args().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.Type output_type = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.output_type_, this_._impl_.output_type_->GetCachedSize(), target,
        stream);
  }

  // repeated .substrait.FunctionArgument arguments = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_arguments_size());
         i < n; i++) {
      const auto& repfield = this_._internal_arguments().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .substrait.FunctionOption options = 5;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_options_size());
         i < n; i++) {
      const auto& repfield = this_._internal_options().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              5, 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.Expression.ScalarFunction)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_ScalarFunction::ByteSizeLong(const MessageLite& base) {
  const Expression_ScalarFunction& this_ = static_cast<const Expression_ScalarFunction&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_ScalarFunction::ByteSizeLong() const {
  const Expression_ScalarFunction& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.ScalarFunction)
  ::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, 0x0000001fU)) {
    // repeated .substrait.Expression args = 2 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_args_size();
      for (const auto& msg : this_._internal_args()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.FunctionArgument arguments = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_arguments_size();
      for (const auto& msg : this_._internal_arguments()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.FunctionOption options = 5;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_options_size();
      for (const auto& msg : this_._internal_options()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.Type output_type = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.output_type_);
    }
    // uint32 function_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_function_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_function_reference());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_ScalarFunction::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_ScalarFunction*>(&to_msg);
  auto& from = static_cast<const Expression_ScalarFunction&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.ScalarFunction)
  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, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_args()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_args());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_arguments()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_arguments());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_options()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_options());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.output_type_ != nullptr);
      if (_this->_impl_.output_type_ == nullptr) {
        _this->_impl_.output_type_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.output_type_);
      } else {
        _this->_impl_.output_type_->MergeFrom(*from._impl_.output_type_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_function_reference() != 0) {
        _this->_impl_.function_reference_ = from._impl_.function_reference_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_ScalarFunction::InternalSwap(Expression_ScalarFunction* 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_.args_.InternalSwap(&other->_impl_.args_);
  _impl_.arguments_.InternalSwap(&other->_impl_.arguments_);
  _impl_.options_.InternalSwap(&other->_impl_.options_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.function_reference_)
      + sizeof(Expression_ScalarFunction::_impl_.function_reference_)
      - PROTOBUF_FIELD_OFFSET(Expression_ScalarFunction, _impl_.output_type_)>(
          reinterpret_cast<char*>(&_impl_.output_type_),
          reinterpret_cast<char*>(&other->_impl_.output_type_));
}

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

Expression_WindowFunction_Bound_Preceding::Expression_WindowFunction_Bound_Preceding(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_WindowFunction_Bound_Preceding_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.WindowFunction.Bound.Preceding)
}
Expression_WindowFunction_Bound_Preceding::Expression_WindowFunction_Bound_Preceding(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Expression_WindowFunction_Bound_Preceding& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_WindowFunction_Bound_Preceding_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 Expression_WindowFunction_Bound_Preceding::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Expression_WindowFunction_Bound_Preceding::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.offset_ = {};
}
Expression_WindowFunction_Bound_Preceding::~Expression_WindowFunction_Bound_Preceding() {
  // @@protoc_insertion_point(destructor:substrait.Expression.WindowFunction.Bound.Preceding)
  SharedDtor(*this);
}
inline void Expression_WindowFunction_Bound_Preceding::SharedDtor(MessageLite& self) {
  Expression_WindowFunction_Bound_Preceding& this_ = static_cast<Expression_WindowFunction_Bound_Preceding&>(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 Expression_WindowFunction_Bound_Preceding_class_data_ =
        Expression_WindowFunction_Bound_Preceding::InternalGenerateClassData_(Expression_WindowFunction_Bound_Preceding_globals_._default);

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

  _impl_.offset_ = ::int64_t{0};
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // int64 offset = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_offset() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<1>(
              stream, this_._internal_offset(), 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.Expression.WindowFunction.Bound.Preceding)
  return target;
}

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

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

   {
    // int64 offset = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_offset() != 0) {
        total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
            this_._internal_offset());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_offset() != 0) {
      _this->_impl_.offset_ = from._impl_.offset_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_WindowFunction_Bound_Preceding::CopyFrom(const Expression_WindowFunction_Bound_Preceding& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.WindowFunction.Bound.Preceding)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


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

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

Expression_WindowFunction_Bound_Following::Expression_WindowFunction_Bound_Following(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_WindowFunction_Bound_Following_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.WindowFunction.Bound.Following)
}
Expression_WindowFunction_Bound_Following::Expression_WindowFunction_Bound_Following(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Expression_WindowFunction_Bound_Following& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_WindowFunction_Bound_Following_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 Expression_WindowFunction_Bound_Following::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Expression_WindowFunction_Bound_Following::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.offset_ = {};
}
Expression_WindowFunction_Bound_Following::~Expression_WindowFunction_Bound_Following() {
  // @@protoc_insertion_point(destructor:substrait.Expression.WindowFunction.Bound.Following)
  SharedDtor(*this);
}
inline void Expression_WindowFunction_Bound_Following::SharedDtor(MessageLite& self) {
  Expression_WindowFunction_Bound_Following& this_ = static_cast<Expression_WindowFunction_Bound_Following&>(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 Expression_WindowFunction_Bound_Following_class_data_ =
        Expression_WindowFunction_Bound_Following::InternalGenerateClassData_(Expression_WindowFunction_Bound_Following_globals_._default);

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

  _impl_.offset_ = ::int64_t{0};
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // int64 offset = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_offset() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<1>(
              stream, this_._internal_offset(), 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.Expression.WindowFunction.Bound.Following)
  return target;
}

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

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

   {
    // int64 offset = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_offset() != 0) {
        total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
            this_._internal_offset());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_offset() != 0) {
      _this->_impl_.offset_ = from._impl_.offset_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_WindowFunction_Bound_Following::CopyFrom(const Expression_WindowFunction_Bound_Following& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.WindowFunction.Bound.Following)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


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

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

Expression_WindowFunction_Bound_CurrentRow::Expression_WindowFunction_Bound_CurrentRow(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, Expression_WindowFunction_Bound_CurrentRow_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.WindowFunction.Bound.CurrentRow)
}
Expression_WindowFunction_Bound_CurrentRow::Expression_WindowFunction_Bound_CurrentRow(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression_WindowFunction_Bound_CurrentRow& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, Expression_WindowFunction_Bound_CurrentRow_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_WindowFunction_Bound_CurrentRow* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.WindowFunction.Bound.CurrentRow)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_WindowFunction_Bound_CurrentRow_class_data_ =
        Expression_WindowFunction_Bound_CurrentRow::InternalGenerateClassData_(Expression_WindowFunction_Bound_CurrentRow_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_WindowFunction_Bound_CurrentRow::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_WindowFunction_Bound_CurrentRow_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_WindowFunction_Bound_CurrentRow_class_data_.tc_table);
  return Expression_WindowFunction_Bound_CurrentRow_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_WindowFunction_Bound_CurrentRow::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_WindowFunction_Bound_CurrentRow_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_WindowFunction_Bound_CurrentRow_globals_));
  return Expression_WindowFunction_Bound_CurrentRow_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_WindowFunction_Bound_CurrentRow::ParseTableT_
    Expression_WindowFunction_Bound_CurrentRow::_table_ =
        Expression_WindowFunction_Bound_CurrentRow::InternalGenerateParseTable_(Expression_WindowFunction_Bound_CurrentRow_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata Expression_WindowFunction_Bound_CurrentRow::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Expression_WindowFunction_Bound_Unbounded::Expression_WindowFunction_Bound_Unbounded(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, Expression_WindowFunction_Bound_Unbounded_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.WindowFunction.Bound.Unbounded)
}
Expression_WindowFunction_Bound_Unbounded::Expression_WindowFunction_Bound_Unbounded(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression_WindowFunction_Bound_Unbounded& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, Expression_WindowFunction_Bound_Unbounded_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_WindowFunction_Bound_Unbounded* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.WindowFunction.Bound.Unbounded)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_WindowFunction_Bound_Unbounded_class_data_ =
        Expression_WindowFunction_Bound_Unbounded::InternalGenerateClassData_(Expression_WindowFunction_Bound_Unbounded_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_WindowFunction_Bound_Unbounded::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_WindowFunction_Bound_Unbounded_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_WindowFunction_Bound_Unbounded_class_data_.tc_table);
  return Expression_WindowFunction_Bound_Unbounded_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_WindowFunction_Bound_Unbounded::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_WindowFunction_Bound_Unbounded_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_WindowFunction_Bound_Unbounded_globals_));
  return Expression_WindowFunction_Bound_Unbounded_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_WindowFunction_Bound_Unbounded::ParseTableT_
    Expression_WindowFunction_Bound_Unbounded::_table_ =
        Expression_WindowFunction_Bound_Unbounded::InternalGenerateParseTable_(Expression_WindowFunction_Bound_Unbounded_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata Expression_WindowFunction_Bound_Unbounded::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void Expression_WindowFunction_Bound::set_allocated_preceding(::substrait::Expression_WindowFunction_Bound_Preceding* PROTOBUF_NULLABLE preceding) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (preceding) {
    ::google::protobuf::Arena* submessage_arena = preceding->GetArena();
    if (message_arena != submessage_arena) {
      preceding = ::google::protobuf::internal::GetOwnedMessage(message_arena, preceding, submessage_arena);
    }
    set_has_preceding();
    _impl_.kind_.preceding_ = preceding;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.WindowFunction.Bound.preceding)
}
void Expression_WindowFunction_Bound::set_allocated_following(::substrait::Expression_WindowFunction_Bound_Following* PROTOBUF_NULLABLE following) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (following) {
    ::google::protobuf::Arena* submessage_arena = following->GetArena();
    if (message_arena != submessage_arena) {
      following = ::google::protobuf::internal::GetOwnedMessage(message_arena, following, submessage_arena);
    }
    set_has_following();
    _impl_.kind_.following_ = following;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.WindowFunction.Bound.following)
}
void Expression_WindowFunction_Bound::set_allocated_current_row(::substrait::Expression_WindowFunction_Bound_CurrentRow* PROTOBUF_NULLABLE current_row) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (current_row) {
    ::google::protobuf::Arena* submessage_arena = current_row->GetArena();
    if (message_arena != submessage_arena) {
      current_row = ::google::protobuf::internal::GetOwnedMessage(message_arena, current_row, submessage_arena);
    }
    set_has_current_row();
    _impl_.kind_.current_row_ = current_row;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.WindowFunction.Bound.current_row)
}
void Expression_WindowFunction_Bound::set_allocated_unbounded(::substrait::Expression_WindowFunction_Bound_Unbounded* PROTOBUF_NULLABLE unbounded) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (unbounded) {
    ::google::protobuf::Arena* submessage_arena = unbounded->GetArena();
    if (message_arena != submessage_arena) {
      unbounded = ::google::protobuf::internal::GetOwnedMessage(message_arena, unbounded, submessage_arena);
    }
    set_has_unbounded();
    _impl_.kind_.unbounded_ = unbounded;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.WindowFunction.Bound.unbounded)
}
Expression_WindowFunction_Bound::Expression_WindowFunction_Bound(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_WindowFunction_Bound_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.WindowFunction.Bound)
}
PROTOBUF_NDEBUG_INLINE Expression_WindowFunction_Bound::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_WindowFunction_Bound& from_msg)
      : kind_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_WindowFunction_Bound* 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 kPreceding:
        _impl_.kind_.preceding_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.preceding_);
        break;
      case kFollowing:
        _impl_.kind_.following_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.following_);
        break;
      case kCurrentRow:
        _impl_.kind_.current_row_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.current_row_);
        break;
      case kUnbounded:
        _impl_.kind_.unbounded_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.unbounded_);
        break;
  }

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.WindowFunction.Bound)
}
PROTOBUF_NDEBUG_INLINE Expression_WindowFunction_Bound::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 Expression_WindowFunction_Bound::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_WindowFunction_Bound::~Expression_WindowFunction_Bound() {
  // @@protoc_insertion_point(destructor:substrait.Expression.WindowFunction.Bound)
  SharedDtor(*this);
}
inline void Expression_WindowFunction_Bound::SharedDtor(MessageLite& self) {
  Expression_WindowFunction_Bound& this_ = static_cast<Expression_WindowFunction_Bound&>(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 Expression_WindowFunction_Bound::clear_kind() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.WindowFunction.Bound)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (kind_case()) {
    case kPreceding: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.preceding_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.preceding_);
      }
      break;
    }
    case kFollowing: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.following_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.following_);
      }
      break;
    }
    case kCurrentRow: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.current_row_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.current_row_);
      }
      break;
    }
    case kUnbounded: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.unbounded_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.unbounded_);
      }
      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 Expression_WindowFunction_Bound_class_data_ =
        Expression_WindowFunction_Bound::InternalGenerateClassData_(Expression_WindowFunction_Bound_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_WindowFunction_Bound::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_WindowFunction_Bound_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_WindowFunction_Bound_class_data_.tc_table);
  return Expression_WindowFunction_Bound_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_WindowFunction_Bound::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_WindowFunction_Bound_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_WindowFunction_Bound_globals_));
  return Expression_WindowFunction_Bound_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_WindowFunction_Bound::ParseTableT_
    Expression_WindowFunction_Bound::_table_ =
        Expression_WindowFunction_Bound::InternalGenerateParseTable_(Expression_WindowFunction_Bound_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_WindowFunction_Bound::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.WindowFunction.Bound)
  ::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 Expression_WindowFunction_Bound::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression_WindowFunction_Bound& this_ = static_cast<const Expression_WindowFunction_Bound&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression_WindowFunction_Bound::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression_WindowFunction_Bound& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression.WindowFunction.Bound)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  switch (this_.kind_case()) {
    case kPreceding: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.kind_.preceding_, this_._impl_.kind_.preceding_->GetCachedSize(), target,
          stream);
      break;
    }
    case kFollowing: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.kind_.following_, this_._impl_.kind_.following_->GetCachedSize(), target,
          stream);
      break;
    }
    case kCurrentRow: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.kind_.current_row_, this_._impl_.kind_.current_row_->GetCachedSize(), target,
          stream);
      break;
    }
    case kUnbounded: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          4, *this_._impl_.kind_.unbounded_, this_._impl_.kind_.unbounded_->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.Expression.WindowFunction.Bound)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_WindowFunction_Bound::ByteSizeLong(const MessageLite& base) {
  const Expression_WindowFunction_Bound& this_ = static_cast<const Expression_WindowFunction_Bound&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_WindowFunction_Bound::ByteSizeLong() const {
  const Expression_WindowFunction_Bound& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.WindowFunction.Bound)
  ::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.Expression.WindowFunction.Bound.Preceding preceding = 1;
    case kPreceding: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.preceding_);
      break;
    }
    // .substrait.Expression.WindowFunction.Bound.Following following = 2;
    case kFollowing: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.following_);
      break;
    }
    // .substrait.Expression.WindowFunction.Bound.CurrentRow current_row = 3;
    case kCurrentRow: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.current_row_);
      break;
    }
    // .substrait.Expression.WindowFunction.Bound.Unbounded unbounded = 4;
    case kUnbounded: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.unbounded_);
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_WindowFunction_Bound::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_WindowFunction_Bound*>(&to_msg);
  auto& from = static_cast<const Expression_WindowFunction_Bound&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.WindowFunction.Bound)
  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 kPreceding: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.preceding_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.preceding_);
        } else {
          _this->_impl_.kind_.preceding_->MergeFrom(*from._impl_.kind_.preceding_);
        }
        break;
      }
      case kFollowing: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.following_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.following_);
        } else {
          _this->_impl_.kind_.following_->MergeFrom(*from._impl_.kind_.following_);
        }
        break;
      }
      case kCurrentRow: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.current_row_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.current_row_);
        } else {
          _this->_impl_.kind_.current_row_->MergeFrom(*from._impl_.kind_.current_row_);
        }
        break;
      }
      case kUnbounded: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.unbounded_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.unbounded_);
        } else {
          _this->_impl_.kind_.unbounded_->MergeFrom(*from._impl_.kind_.unbounded_);
        }
        break;
      }
      case KIND_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_WindowFunction_Bound::InternalSwap(Expression_WindowFunction_Bound* 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 Expression_WindowFunction_Bound::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void Expression_WindowFunction::clear_output_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.output_type_ != nullptr) _impl_.output_type_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
Expression_WindowFunction::Expression_WindowFunction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_WindowFunction_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.WindowFunction)
}
PROTOBUF_NDEBUG_INLINE Expression_WindowFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_WindowFunction& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        partitions_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_WindowFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.partitions_)>()
          , from.partitions_
        }
        ,
        sorts_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_WindowFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.sorts_)>()
          , from.sorts_
        }
        ,
        args_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_WindowFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.args_)>()
          , from.args_
        }
        ,
        arguments_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_WindowFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.arguments_)>()
          , from.arguments_
        }
        ,
        options_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_WindowFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.options_)>()
          , from.options_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_WindowFunction* 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_.upper_bound_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.upper_bound_)
                : nullptr;
  _impl_.lower_bound_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lower_bound_)
                : nullptr;
  _impl_.output_type_ = (CheckHasBit(cached_has_bits, 0x00000080U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.output_type_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, function_reference_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, function_reference_),
           offsetof(Impl_, bounds_type_) -
               offsetof(Impl_, function_reference_) +
               sizeof(Impl_::bounds_type_));

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.WindowFunction)
}
PROTOBUF_NDEBUG_INLINE Expression_WindowFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        partitions_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_WindowFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.partitions_)>()
         }
        ,
        sorts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_WindowFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.sorts_)>()
         }
        ,
        args_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_WindowFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.args_)>()
         }
        ,
        arguments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_WindowFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.arguments_)>()
         }
        ,
        options_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_WindowFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_WindowFunction, _impl_.options_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_WindowFunction_class_data_ =
        Expression_WindowFunction::InternalGenerateClassData_(Expression_WindowFunction_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_WindowFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_WindowFunction_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_WindowFunction_class_data_.tc_table);
  return Expression_WindowFunction_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_WindowFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_WindowFunction_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_WindowFunction_globals_));
  return Expression_WindowFunction_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_WindowFunction::ParseTableT_
    Expression_WindowFunction::_table_ =
        Expression_WindowFunction::InternalGenerateParseTable_(Expression_WindowFunction_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_WindowFunction::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.WindowFunction)
  ::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, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.partitions_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.sorts_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.args_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.arguments_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.options_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(_impl_.upper_bound_ != nullptr);
      _impl_.upper_bound_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(_impl_.lower_bound_ != nullptr);
      _impl_.lower_bound_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(_impl_.output_type_ != nullptr);
      _impl_.output_type_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000f00U)) {
    ::memset(&_impl_.function_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.bounds_type_) -
        reinterpret_cast<char*>(&_impl_.function_reference_)) + sizeof(_impl_.bounds_type_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // repeated .substrait.Expression partitions = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_partitions_size());
         i < n; i++) {
      const auto& repfield = this_._internal_partitions().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .substrait.SortField sorts = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_sorts_size());
         i < n; i++) {
      const auto& repfield = this_._internal_sorts().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.Expression.WindowFunction.Bound upper_bound = 4;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.upper_bound_, this_._impl_.upper_bound_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Expression.WindowFunction.Bound lower_bound = 5;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.lower_bound_, this_._impl_.lower_bound_->GetCachedSize(), target,
        stream);
  }

  // .substrait.AggregationPhase phase = 6;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    if (this_._internal_phase() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          6, this_._internal_phase(), target);
    }
  }

  // .substrait.Type output_type = 7;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.output_type_, this_._impl_.output_type_->GetCachedSize(), target,
        stream);
  }

  // repeated .substrait.Expression args = 8 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_args_size());
         i < n; i++) {
      const auto& repfield = this_._internal_args().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              8, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .substrait.FunctionArgument arguments = 9;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_arguments_size());
         i < n; i++) {
      const auto& repfield = this_._internal_arguments().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              9, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.AggregateFunction.AggregationInvocation invocation = 10;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    if (this_._internal_invocation() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          10, this_._internal_invocation(), target);
    }
  }

  // repeated .substrait.FunctionOption options = 11;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_options_size());
         i < n; i++) {
      const auto& repfield = this_._internal_options().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              11, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.Expression.WindowFunction.BoundsType bounds_type = 12;
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    if (this_._internal_bounds_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          12, this_._internal_bounds_type(), 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.Expression.WindowFunction)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_WindowFunction::ByteSizeLong(const MessageLite& base) {
  const Expression_WindowFunction& this_ = static_cast<const Expression_WindowFunction&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_WindowFunction::ByteSizeLong() const {
  const Expression_WindowFunction& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.WindowFunction)
  ::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, 0x000000ffU)) {
    // repeated .substrait.Expression partitions = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_partitions_size();
      for (const auto& msg : this_._internal_partitions()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.SortField sorts = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_sorts_size();
      for (const auto& msg : this_._internal_sorts()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.Expression args = 8 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_args_size();
      for (const auto& msg : this_._internal_args()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.FunctionArgument arguments = 9;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1UL * this_._internal_arguments_size();
      for (const auto& msg : this_._internal_arguments()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.FunctionOption options = 11;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1UL * this_._internal_options_size();
      for (const auto& msg : this_._internal_options()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.Expression.WindowFunction.Bound upper_bound = 4;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.upper_bound_);
    }
    // .substrait.Expression.WindowFunction.Bound lower_bound = 5;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.lower_bound_);
    }
    // .substrait.Type output_type = 7;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.output_type_);
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000f00U)) {
    // uint32 function_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (this_._internal_function_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_function_reference());
      }
    }
    // .substrait.AggregationPhase phase = 6;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      if (this_._internal_phase() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_phase());
      }
    }
    // .substrait.AggregateFunction.AggregationInvocation invocation = 10;
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      if (this_._internal_invocation() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_invocation());
      }
    }
    // .substrait.Expression.WindowFunction.BoundsType bounds_type = 12;
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      if (this_._internal_bounds_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_bounds_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_WindowFunction::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_WindowFunction*>(&to_msg);
  auto& from = static_cast<const Expression_WindowFunction&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.WindowFunction)
  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, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_partitions()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_partitions());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_sorts()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_sorts());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_args()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_args());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_arguments()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_arguments());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_mutable_options()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_options());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.upper_bound_ != nullptr);
      if (_this->_impl_.upper_bound_ == nullptr) {
        _this->_impl_.upper_bound_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.upper_bound_);
      } else {
        _this->_impl_.upper_bound_->MergeFrom(*from._impl_.upper_bound_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.lower_bound_ != nullptr);
      if (_this->_impl_.lower_bound_ == nullptr) {
        _this->_impl_.lower_bound_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lower_bound_);
      } else {
        _this->_impl_.lower_bound_->MergeFrom(*from._impl_.lower_bound_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(from._impl_.output_type_ != nullptr);
      if (_this->_impl_.output_type_ == nullptr) {
        _this->_impl_.output_type_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.output_type_);
      } else {
        _this->_impl_.output_type_->MergeFrom(*from._impl_.output_type_);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000f00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (from._internal_function_reference() != 0) {
        _this->_impl_.function_reference_ = from._impl_.function_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      if (from._internal_phase() != 0) {
        _this->_impl_.phase_ = from._impl_.phase_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      if (from._internal_invocation() != 0) {
        _this->_impl_.invocation_ = from._impl_.invocation_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      if (from._internal_bounds_type() != 0) {
        _this->_impl_.bounds_type_ = from._impl_.bounds_type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_WindowFunction::InternalSwap(Expression_WindowFunction* 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_.partitions_.InternalSwap(&other->_impl_.partitions_);
  _impl_.sorts_.InternalSwap(&other->_impl_.sorts_);
  _impl_.args_.InternalSwap(&other->_impl_.args_);
  _impl_.arguments_.InternalSwap(&other->_impl_.arguments_);
  _impl_.options_.InternalSwap(&other->_impl_.options_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.bounds_type_)
      + sizeof(Expression_WindowFunction::_impl_.bounds_type_)
      - PROTOBUF_FIELD_OFFSET(Expression_WindowFunction, _impl_.upper_bound_)>(
          reinterpret_cast<char*>(&_impl_.upper_bound_),
          reinterpret_cast<char*>(&other->_impl_.upper_bound_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_IfThen_IfClause* 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_.if__ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.if__)
                : nullptr;
  _impl_.then_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.then_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_IfThen_IfClause_class_data_ =
        Expression_IfThen_IfClause::InternalGenerateClassData_(Expression_IfThen_IfClause_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_IfThen_IfClause::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_IfThen_IfClause_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_IfThen_IfClause_class_data_.tc_table);
  return Expression_IfThen_IfClause_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_IfThen_IfClause::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_IfThen_IfClause_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_IfThen_IfClause_globals_));
  return Expression_IfThen_IfClause_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_IfThen_IfClause::ParseTableT_
    Expression_IfThen_IfClause::_table_ =
        Expression_IfThen_IfClause::InternalGenerateParseTable_(Expression_IfThen_IfClause_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_IfThen_IfClause::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.IfThen.IfClause)
  ::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_.if__ != nullptr);
      _impl_.if__->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.then_ != nullptr);
      _impl_.then_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Expression then = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.then_, this_._impl_.then_->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.Expression.IfThen.IfClause)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_IfThen_IfClause::ByteSizeLong(const MessageLite& base) {
  const Expression_IfThen_IfClause& this_ = static_cast<const Expression_IfThen_IfClause&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_IfThen_IfClause::ByteSizeLong() const {
  const Expression_IfThen_IfClause& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.IfThen.IfClause)
  ::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)) {
    // .substrait.Expression if = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.if__);
    }
    // .substrait.Expression then = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.then_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_IfThen_IfClause::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_IfThen_IfClause*>(&to_msg);
  auto& from = static_cast<const Expression_IfThen_IfClause&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.IfThen.IfClause)
  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)) {
      ABSL_DCHECK(from._impl_.if__ != nullptr);
      if (_this->_impl_.if__ == nullptr) {
        _this->_impl_.if__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.if__);
      } else {
        _this->_impl_.if__->MergeFrom(*from._impl_.if__);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.then_ != nullptr);
      if (_this->_impl_.then_ == nullptr) {
        _this->_impl_.then_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.then_);
      } else {
        _this->_impl_.then_->MergeFrom(*from._impl_.then_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_IfThen_IfClause::InternalSwap(Expression_IfThen_IfClause* 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(Expression_IfThen_IfClause, _impl_.then_)
      + sizeof(Expression_IfThen_IfClause::_impl_.then_)
      - PROTOBUF_FIELD_OFFSET(Expression_IfThen_IfClause, _impl_.if__)>(
          reinterpret_cast<char*>(&_impl_.if__),
          reinterpret_cast<char*>(&other->_impl_.if__));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_IfThen* 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_.else__ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.else__)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_IfThen_class_data_ =
        Expression_IfThen::InternalGenerateClassData_(Expression_IfThen_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_IfThen::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_IfThen_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_IfThen_class_data_.tc_table);
  return Expression_IfThen_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_IfThen::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_IfThen_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_IfThen_globals_));
  return Expression_IfThen_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_IfThen::ParseTableT_
    Expression_IfThen::_table_ =
        Expression_IfThen::InternalGenerateParseTable_(Expression_IfThen_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_IfThen::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.IfThen)
  ::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_.ifs_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.else__ != nullptr);
      _impl_.else__->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Expression else = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.else__, this_._impl_.else__->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.Expression.IfThen)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_IfThen::ByteSizeLong(const MessageLite& base) {
  const Expression_IfThen& this_ = static_cast<const Expression_IfThen&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_IfThen::ByteSizeLong() const {
  const Expression_IfThen& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.IfThen)
  ::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 .substrait.Expression.IfThen.IfClause ifs = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_ifs_size();
      for (const auto& msg : this_._internal_ifs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.Expression else = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.else__);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_IfThen::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_IfThen*>(&to_msg);
  auto& from = static_cast<const Expression_IfThen&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.IfThen)
  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_ifs()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_ifs());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.else__ != nullptr);
      if (_this->_impl_.else__ == nullptr) {
        _this->_impl_.else__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.else__);
      } else {
        _this->_impl_.else__->MergeFrom(*from._impl_.else__);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_IfThen::InternalSwap(Expression_IfThen* 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_.ifs_.InternalSwap(&other->_impl_.ifs_);
  swap(_impl_.else__, other->_impl_.else__);
}

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

void Expression_Cast::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.type_ != nullptr) _impl_.type_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
Expression_Cast::Expression_Cast(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Cast_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Cast)
}
PROTOBUF_NDEBUG_INLINE Expression_Cast::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_Cast& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Cast* 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;
  _impl_.input_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;
  _impl_.failure_behavior_ = from._impl_.failure_behavior_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Cast_class_data_ =
        Expression_Cast::InternalGenerateClassData_(Expression_Cast_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Cast::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Cast_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Cast_class_data_.tc_table);
  return Expression_Cast_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Cast::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Cast_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Cast_globals_));
  return Expression_Cast_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Cast::ParseTableT_
    Expression_Cast::_table_ =
        Expression_Cast::InternalGenerateParseTable_(Expression_Cast_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Cast::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Cast)
  ::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_.type_ != nullptr);
      _impl_.type_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.input_ != nullptr);
      _impl_.input_->Clear();
    }
  }
  _impl_.failure_behavior_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Expression_Cast::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression_Cast& this_ = static_cast<const Expression_Cast&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression_Cast::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression_Cast& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression.Cast)
  ::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);
  }

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

  // .substrait.Expression.Cast.FailureBehavior failure_behavior = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_failure_behavior() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_failure_behavior(), 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.Expression.Cast)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Cast::ByteSizeLong(const MessageLite& base) {
  const Expression_Cast& this_ = static_cast<const Expression_Cast&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Cast::ByteSizeLong() const {
  const Expression_Cast& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Cast)
  ::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_);
    }
    // .substrait.Expression input = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
    // .substrait.Expression.Cast.FailureBehavior failure_behavior = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_failure_behavior() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_failure_behavior());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Cast::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Cast*>(&to_msg);
  auto& from = static_cast<const Expression_Cast&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Cast)
  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)) {
      ABSL_DCHECK(from._impl_.input_ != nullptr);
      if (_this->_impl_.input_ == nullptr) {
        _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
      } else {
        _this->_impl_.input_->MergeFrom(*from._impl_.input_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_failure_behavior() != 0) {
        _this->_impl_.failure_behavior_ = from._impl_.failure_behavior_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_Cast::InternalSwap(Expression_Cast* 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(Expression_Cast, _impl_.failure_behavior_)
      + sizeof(Expression_Cast::_impl_.failure_behavior_)
      - PROTOBUF_FIELD_OFFSET(Expression_Cast, _impl_.type_)>(
          reinterpret_cast<char*>(&_impl_.type_),
          reinterpret_cast<char*>(&other->_impl_.type_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_SwitchExpression_IfValue* 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_.if__ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.if__)
                : nullptr;
  _impl_.then_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.then_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_SwitchExpression_IfValue_class_data_ =
        Expression_SwitchExpression_IfValue::InternalGenerateClassData_(Expression_SwitchExpression_IfValue_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_SwitchExpression_IfValue::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_SwitchExpression_IfValue_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_SwitchExpression_IfValue_class_data_.tc_table);
  return Expression_SwitchExpression_IfValue_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_SwitchExpression_IfValue::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_SwitchExpression_IfValue_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_SwitchExpression_IfValue_globals_));
  return Expression_SwitchExpression_IfValue_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_SwitchExpression_IfValue::ParseTableT_
    Expression_SwitchExpression_IfValue::_table_ =
        Expression_SwitchExpression_IfValue::InternalGenerateParseTable_(Expression_SwitchExpression_IfValue_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_SwitchExpression_IfValue::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.SwitchExpression.IfValue)
  ::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_.if__ != nullptr);
      _impl_.if__->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.then_ != nullptr);
      _impl_.then_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Expression then = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.then_, this_._impl_.then_->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.Expression.SwitchExpression.IfValue)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_SwitchExpression_IfValue::ByteSizeLong(const MessageLite& base) {
  const Expression_SwitchExpression_IfValue& this_ = static_cast<const Expression_SwitchExpression_IfValue&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_SwitchExpression_IfValue::ByteSizeLong() const {
  const Expression_SwitchExpression_IfValue& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.SwitchExpression.IfValue)
  ::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)) {
    // .substrait.Expression.Literal if = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.if__);
    }
    // .substrait.Expression then = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.then_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_SwitchExpression_IfValue::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_SwitchExpression_IfValue*>(&to_msg);
  auto& from = static_cast<const Expression_SwitchExpression_IfValue&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.SwitchExpression.IfValue)
  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)) {
      ABSL_DCHECK(from._impl_.if__ != nullptr);
      if (_this->_impl_.if__ == nullptr) {
        _this->_impl_.if__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.if__);
      } else {
        _this->_impl_.if__->MergeFrom(*from._impl_.if__);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.then_ != nullptr);
      if (_this->_impl_.then_ == nullptr) {
        _this->_impl_.then_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.then_);
      } else {
        _this->_impl_.then_->MergeFrom(*from._impl_.then_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_SwitchExpression_IfValue::InternalSwap(Expression_SwitchExpression_IfValue* 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(Expression_SwitchExpression_IfValue, _impl_.then_)
      + sizeof(Expression_SwitchExpression_IfValue::_impl_.then_)
      - PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression_IfValue, _impl_.if__)>(
          reinterpret_cast<char*>(&_impl_.if__),
          reinterpret_cast<char*>(&other->_impl_.if__));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_SwitchExpression* 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_.else__ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.else__)
                : nullptr;
  _impl_.match_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.match_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_SwitchExpression_class_data_ =
        Expression_SwitchExpression::InternalGenerateClassData_(Expression_SwitchExpression_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_SwitchExpression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_SwitchExpression_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_SwitchExpression_class_data_.tc_table);
  return Expression_SwitchExpression_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_SwitchExpression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_SwitchExpression_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_SwitchExpression_globals_));
  return Expression_SwitchExpression_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_SwitchExpression::ParseTableT_
    Expression_SwitchExpression::_table_ =
        Expression_SwitchExpression::InternalGenerateParseTable_(Expression_SwitchExpression_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_SwitchExpression::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.SwitchExpression)
  ::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)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.ifs_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.else__ != nullptr);
      _impl_.else__->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.match_ != nullptr);
      _impl_.match_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  // .substrait.Expression match = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.match_, this_._impl_.match_->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.Expression.SwitchExpression)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_SwitchExpression::ByteSizeLong(const MessageLite& base) {
  const Expression_SwitchExpression& this_ = static_cast<const Expression_SwitchExpression&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_SwitchExpression::ByteSizeLong() const {
  const Expression_SwitchExpression& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.SwitchExpression)
  ::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.Expression.SwitchExpression.IfValue ifs = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_ifs_size();
      for (const auto& msg : this_._internal_ifs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.Expression else = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.else__);
    }
    // .substrait.Expression match = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.match_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_SwitchExpression::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_SwitchExpression*>(&to_msg);
  auto& from = static_cast<const Expression_SwitchExpression&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.SwitchExpression)
  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_ifs()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_ifs());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.else__ != nullptr);
      if (_this->_impl_.else__ == nullptr) {
        _this->_impl_.else__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.else__);
      } else {
        _this->_impl_.else__->MergeFrom(*from._impl_.else__);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.match_ != nullptr);
      if (_this->_impl_.match_ == nullptr) {
        _this->_impl_.match_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.match_);
      } else {
        _this->_impl_.match_->MergeFrom(*from._impl_.match_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_SwitchExpression::InternalSwap(Expression_SwitchExpression* 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_.ifs_.InternalSwap(&other->_impl_.ifs_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression, _impl_.match_)
      + sizeof(Expression_SwitchExpression::_impl_.match_)
      - PROTOBUF_FIELD_OFFSET(Expression_SwitchExpression, _impl_.else__)>(
          reinterpret_cast<char*>(&_impl_.else__),
          reinterpret_cast<char*>(&other->_impl_.else__));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_SingularOrList* 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_.value_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.value_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_SingularOrList_class_data_ =
        Expression_SingularOrList::InternalGenerateClassData_(Expression_SingularOrList_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_SingularOrList::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_SingularOrList_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_SingularOrList_class_data_.tc_table);
  return Expression_SingularOrList_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_SingularOrList::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_SingularOrList_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_SingularOrList_globals_));
  return Expression_SingularOrList_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_SingularOrList::ParseTableT_
    Expression_SingularOrList::_table_ =
        Expression_SingularOrList::InternalGenerateParseTable_(Expression_SingularOrList_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_SingularOrList::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.SingularOrList)
  ::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_.options_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.value_ != nullptr);
      _impl_.value_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // repeated .substrait.Expression options = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_options_size());
         i < n; i++) {
      const auto& repfield = this_._internal_options().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, 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.Expression.SingularOrList)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_SingularOrList::ByteSizeLong(const MessageLite& base) {
  const Expression_SingularOrList& this_ = static_cast<const Expression_SingularOrList&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_SingularOrList::ByteSizeLong() const {
  const Expression_SingularOrList& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.SingularOrList)
  ::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 .substrait.Expression options = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_options_size();
      for (const auto& msg : this_._internal_options()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.Expression value = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.value_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_SingularOrList::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_SingularOrList*>(&to_msg);
  auto& from = static_cast<const Expression_SingularOrList&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.SingularOrList)
  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_options()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_options());
    }
    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_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_SingularOrList::InternalSwap(Expression_SingularOrList* 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_.options_.InternalSwap(&other->_impl_.options_);
  swap(_impl_.value_, other->_impl_.value_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MultiOrList_Record* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void Expression_MultiOrList_Record::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_MultiOrList_Record::~Expression_MultiOrList_Record() {
  // @@protoc_insertion_point(destructor:substrait.Expression.MultiOrList.Record)
  SharedDtor(*this);
}
inline void Expression_MultiOrList_Record::SharedDtor(MessageLite& self) {
  Expression_MultiOrList_Record& this_ = static_cast<Expression_MultiOrList_Record&>(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 Expression_MultiOrList_Record_class_data_ =
        Expression_MultiOrList_Record::InternalGenerateClassData_(Expression_MultiOrList_Record_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MultiOrList_Record::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MultiOrList_Record_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MultiOrList_Record_class_data_.tc_table);
  return Expression_MultiOrList_Record_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MultiOrList_Record::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MultiOrList_Record_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MultiOrList_Record_globals_));
  return Expression_MultiOrList_Record_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MultiOrList_Record::ParseTableT_
    Expression_MultiOrList_Record::_table_ =
        Expression_MultiOrList_Record::InternalGenerateParseTable_(Expression_MultiOrList_Record_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MultiOrList_Record::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MultiOrList.Record)
  ::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_.fields_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression fields = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_fields_size());
         i < n; i++) {
      const auto& repfield = this_._internal_fields().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.Expression.MultiOrList.Record)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_MultiOrList_Record::ByteSizeLong(const MessageLite& base) {
  const Expression_MultiOrList_Record& this_ = static_cast<const Expression_MultiOrList_Record&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_MultiOrList_Record::ByteSizeLong() const {
  const Expression_MultiOrList_Record& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.MultiOrList.Record)
  ::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_);
   {
    // repeated .substrait.Expression fields = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_fields_size();
      for (const auto& msg : this_._internal_fields()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_fields()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_fields());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_MultiOrList_Record::InternalSwap(Expression_MultiOrList_Record* 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_.fields_.InternalSwap(&other->_impl_.fields_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MultiOrList* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void Expression_MultiOrList::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_MultiOrList::~Expression_MultiOrList() {
  // @@protoc_insertion_point(destructor:substrait.Expression.MultiOrList)
  SharedDtor(*this);
}
inline void Expression_MultiOrList::SharedDtor(MessageLite& self) {
  Expression_MultiOrList& this_ = static_cast<Expression_MultiOrList&>(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 Expression_MultiOrList_class_data_ =
        Expression_MultiOrList::InternalGenerateClassData_(Expression_MultiOrList_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MultiOrList::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MultiOrList_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MultiOrList_class_data_.tc_table);
  return Expression_MultiOrList_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MultiOrList::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MultiOrList_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MultiOrList_globals_));
  return Expression_MultiOrList_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MultiOrList::ParseTableT_
    Expression_MultiOrList::_table_ =
        Expression_MultiOrList::InternalGenerateParseTable_(Expression_MultiOrList_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MultiOrList::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MultiOrList)
  ::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_.value_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.options_.Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // repeated .substrait.Expression.MultiOrList.Record options = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_options_size());
         i < n; i++) {
      const auto& repfield = this_._internal_options().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, 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.Expression.MultiOrList)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_MultiOrList::ByteSizeLong(const MessageLite& base) {
  const Expression_MultiOrList& this_ = static_cast<const Expression_MultiOrList&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_MultiOrList::ByteSizeLong() const {
  const Expression_MultiOrList& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.MultiOrList)
  ::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 .substrait.Expression value = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_value_size();
      for (const auto& msg : this_._internal_value()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.Expression.MultiOrList.Record options = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_options_size();
      for (const auto& msg : this_._internal_options()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_MultiOrList::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_MultiOrList*>(&to_msg);
  auto& from = static_cast<const Expression_MultiOrList&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.MultiOrList)
  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_value()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_value());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_options()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_options());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_MultiOrList::InternalSwap(Expression_MultiOrList* 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_.value_.InternalSwap(&other->_impl_.value_);
  _impl_.options_.InternalSwap(&other->_impl_.options_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_EmbeddedFunction_PythonPickleFunction* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_EmbeddedFunction_PythonPickleFunction_class_data_ =
        Expression_EmbeddedFunction_PythonPickleFunction::InternalGenerateClassData_(Expression_EmbeddedFunction_PythonPickleFunction_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_EmbeddedFunction_PythonPickleFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_EmbeddedFunction_PythonPickleFunction_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_EmbeddedFunction_PythonPickleFunction_class_data_.tc_table);
  return Expression_EmbeddedFunction_PythonPickleFunction_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_EmbeddedFunction_PythonPickleFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_EmbeddedFunction_PythonPickleFunction_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_EmbeddedFunction_PythonPickleFunction_globals_));
  return Expression_EmbeddedFunction_PythonPickleFunction_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_EmbeddedFunction_PythonPickleFunction::ParseTableT_
    Expression_EmbeddedFunction_PythonPickleFunction::_table_ =
        Expression_EmbeddedFunction_PythonPickleFunction::InternalGenerateParseTable_(Expression_EmbeddedFunction_PythonPickleFunction_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_EmbeddedFunction_PythonPickleFunction::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.EmbeddedFunction.PythonPickleFunction)
  ::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_.prerequisite_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.function_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bytes function = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_function().empty()) {
      const ::std::string& _s = this_._internal_function();
      target = stream->WriteBytesMaybeAliased(1, _s, target);
    }
  }

  // repeated string prerequisite = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_prerequisite_size(); i < n; ++i) {
      const auto& s = this_._internal_prerequisite().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.Expression.EmbeddedFunction.PythonPickleFunction.prerequisite");
      target = stream->WriteString(2, s, 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.Expression.EmbeddedFunction.PythonPickleFunction)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_EmbeddedFunction_PythonPickleFunction::ByteSizeLong(const MessageLite& base) {
  const Expression_EmbeddedFunction_PythonPickleFunction& this_ = static_cast<const Expression_EmbeddedFunction_PythonPickleFunction&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_EmbeddedFunction_PythonPickleFunction::ByteSizeLong() const {
  const Expression_EmbeddedFunction_PythonPickleFunction& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.EmbeddedFunction.PythonPickleFunction)
  ::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 prerequisite = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_prerequisite().size());
      for (int i = 0, n = this_._internal_prerequisite().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_prerequisite().Get(i));
      }
    }
    // bytes function = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_function().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_function());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_EmbeddedFunction_PythonPickleFunction::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_EmbeddedFunction_PythonPickleFunction*>(&to_msg);
  auto& from = static_cast<const Expression_EmbeddedFunction_PythonPickleFunction&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.EmbeddedFunction.PythonPickleFunction)
  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_prerequisite()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_prerequisite());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_function().empty()) {
        _this->_internal_set_function(from._internal_function());
      } else {
        if (_this->_impl_.function_.IsDefault()) {
          _this->_internal_set_function("");
        }
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_EmbeddedFunction_PythonPickleFunction::InternalSwap(Expression_EmbeddedFunction_PythonPickleFunction* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.prerequisite_.InternalSwap(&other->_impl_.prerequisite_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.function_, &other->_impl_.function_, arena);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_EmbeddedFunction_WebAssemblyFunction* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_EmbeddedFunction_WebAssemblyFunction_class_data_ =
        Expression_EmbeddedFunction_WebAssemblyFunction::InternalGenerateClassData_(Expression_EmbeddedFunction_WebAssemblyFunction_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_EmbeddedFunction_WebAssemblyFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_EmbeddedFunction_WebAssemblyFunction_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_EmbeddedFunction_WebAssemblyFunction_class_data_.tc_table);
  return Expression_EmbeddedFunction_WebAssemblyFunction_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_EmbeddedFunction_WebAssemblyFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_EmbeddedFunction_WebAssemblyFunction_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_EmbeddedFunction_WebAssemblyFunction_globals_));
  return Expression_EmbeddedFunction_WebAssemblyFunction_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_EmbeddedFunction_WebAssemblyFunction::ParseTableT_
    Expression_EmbeddedFunction_WebAssemblyFunction::_table_ =
        Expression_EmbeddedFunction_WebAssemblyFunction::InternalGenerateParseTable_(Expression_EmbeddedFunction_WebAssemblyFunction_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_EmbeddedFunction_WebAssemblyFunction::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.EmbeddedFunction.WebAssemblyFunction)
  ::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_.prerequisite_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.script_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bytes script = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_script().empty()) {
      const ::std::string& _s = this_._internal_script();
      target = stream->WriteBytesMaybeAliased(1, _s, target);
    }
  }

  // repeated string prerequisite = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_prerequisite_size(); i < n; ++i) {
      const auto& s = this_._internal_prerequisite().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.Expression.EmbeddedFunction.WebAssemblyFunction.prerequisite");
      target = stream->WriteString(2, s, 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.Expression.EmbeddedFunction.WebAssemblyFunction)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_EmbeddedFunction_WebAssemblyFunction::ByteSizeLong(const MessageLite& base) {
  const Expression_EmbeddedFunction_WebAssemblyFunction& this_ = static_cast<const Expression_EmbeddedFunction_WebAssemblyFunction&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_EmbeddedFunction_WebAssemblyFunction::ByteSizeLong() const {
  const Expression_EmbeddedFunction_WebAssemblyFunction& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.EmbeddedFunction.WebAssemblyFunction)
  ::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 prerequisite = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_prerequisite().size());
      for (int i = 0, n = this_._internal_prerequisite().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_prerequisite().Get(i));
      }
    }
    // bytes script = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_script().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_script());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_EmbeddedFunction_WebAssemblyFunction::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_EmbeddedFunction_WebAssemblyFunction*>(&to_msg);
  auto& from = static_cast<const Expression_EmbeddedFunction_WebAssemblyFunction&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.EmbeddedFunction.WebAssemblyFunction)
  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_prerequisite()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_prerequisite());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_script().empty()) {
        _this->_internal_set_script(from._internal_script());
      } else {
        if (_this->_impl_.script_.IsDefault()) {
          _this->_internal_set_script("");
        }
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_EmbeddedFunction_WebAssemblyFunction::InternalSwap(Expression_EmbeddedFunction_WebAssemblyFunction* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.prerequisite_.InternalSwap(&other->_impl_.prerequisite_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.script_, &other->_impl_.script_, arena);
}

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

void Expression_EmbeddedFunction::clear_output_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.output_type_ != nullptr) _impl_.output_type_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
void Expression_EmbeddedFunction::set_allocated_python_pickle_function(::substrait::Expression_EmbeddedFunction_PythonPickleFunction* PROTOBUF_NULLABLE python_pickle_function) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (python_pickle_function) {
    ::google::protobuf::Arena* submessage_arena = python_pickle_function->GetArena();
    if (message_arena != submessage_arena) {
      python_pickle_function = ::google::protobuf::internal::GetOwnedMessage(message_arena, python_pickle_function, submessage_arena);
    }
    set_has_python_pickle_function();
    _impl_.kind_.python_pickle_function_ = python_pickle_function;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.EmbeddedFunction.python_pickle_function)
}
void Expression_EmbeddedFunction::set_allocated_web_assembly_function(::substrait::Expression_EmbeddedFunction_WebAssemblyFunction* PROTOBUF_NULLABLE web_assembly_function) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_kind();
  if (web_assembly_function) {
    ::google::protobuf::Arena* submessage_arena = web_assembly_function->GetArena();
    if (message_arena != submessage_arena) {
      web_assembly_function = ::google::protobuf::internal::GetOwnedMessage(message_arena, web_assembly_function, submessage_arena);
    }
    set_has_web_assembly_function();
    _impl_.kind_.web_assembly_function_ = web_assembly_function;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.EmbeddedFunction.web_assembly_function)
}
Expression_EmbeddedFunction::Expression_EmbeddedFunction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_EmbeddedFunction_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.EmbeddedFunction)
}
PROTOBUF_NDEBUG_INLINE Expression_EmbeddedFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_EmbeddedFunction& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        arguments_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_EmbeddedFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_EmbeddedFunction, _impl_.arguments_)>()
          , from.arguments_
        }
        ,
        kind_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_EmbeddedFunction* 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_.output_type_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.output_type_)
                : nullptr;
  switch (kind_case()) {
    case KIND_NOT_SET:
      break;
      case kPythonPickleFunction:
        _impl_.kind_.python_pickle_function_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.python_pickle_function_);
        break;
      case kWebAssemblyFunction:
        _impl_.kind_.web_assembly_function_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.web_assembly_function_);
        break;
  }

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

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

void Expression_EmbeddedFunction::clear_kind() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.EmbeddedFunction)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (kind_case()) {
    case kPythonPickleFunction: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.python_pickle_function_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.python_pickle_function_);
      }
      break;
    }
    case kWebAssemblyFunction: {
      if (GetArena() == nullptr) {
        delete _impl_.kind_.web_assembly_function_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.kind_.web_assembly_function_);
      }
      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 Expression_EmbeddedFunction_class_data_ =
        Expression_EmbeddedFunction::InternalGenerateClassData_(Expression_EmbeddedFunction_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_EmbeddedFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_EmbeddedFunction_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_EmbeddedFunction_class_data_.tc_table);
  return Expression_EmbeddedFunction_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_EmbeddedFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_EmbeddedFunction_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_EmbeddedFunction_globals_));
  return Expression_EmbeddedFunction_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_EmbeddedFunction::ParseTableT_
    Expression_EmbeddedFunction::_table_ =
        Expression_EmbeddedFunction::InternalGenerateParseTable_(Expression_EmbeddedFunction_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_EmbeddedFunction::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.EmbeddedFunction)
  ::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_.arguments_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.output_type_ != nullptr);
      _impl_.output_type_->Clear();
    }
  }
  clear_kind();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

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

  switch (this_.kind_case()) {
    case kPythonPickleFunction: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.kind_.python_pickle_function_, this_._impl_.kind_.python_pickle_function_->GetCachedSize(), target,
          stream);
      break;
    }
    case kWebAssemblyFunction: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          4, *this_._impl_.kind_.web_assembly_function_, this_._impl_.kind_.web_assembly_function_->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.Expression.EmbeddedFunction)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_EmbeddedFunction::ByteSizeLong(const MessageLite& base) {
  const Expression_EmbeddedFunction& this_ = static_cast<const Expression_EmbeddedFunction&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_EmbeddedFunction::ByteSizeLong() const {
  const Expression_EmbeddedFunction& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.EmbeddedFunction)
  ::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 .substrait.Expression arguments = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_arguments_size();
      for (const auto& msg : this_._internal_arguments()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.Type output_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.output_type_);
    }
  }
  switch (this_.kind_case()) {
    // .substrait.Expression.EmbeddedFunction.PythonPickleFunction python_pickle_function = 3;
    case kPythonPickleFunction: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.python_pickle_function_);
      break;
    }
    // .substrait.Expression.EmbeddedFunction.WebAssemblyFunction web_assembly_function = 4;
    case kWebAssemblyFunction: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.kind_.web_assembly_function_);
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_EmbeddedFunction::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_EmbeddedFunction*>(&to_msg);
  auto& from = static_cast<const Expression_EmbeddedFunction&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.EmbeddedFunction)
  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_arguments()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_arguments());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.output_type_ != nullptr);
      if (_this->_impl_.output_type_ == nullptr) {
        _this->_impl_.output_type_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.output_type_);
      } else {
        _this->_impl_.output_type_->MergeFrom(*from._impl_.output_type_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= 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 kPythonPickleFunction: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.python_pickle_function_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.python_pickle_function_);
        } else {
          _this->_impl_.kind_.python_pickle_function_->MergeFrom(*from._impl_.kind_.python_pickle_function_);
        }
        break;
      }
      case kWebAssemblyFunction: {
        if (oneof_needs_init) {
          _this->_impl_.kind_.web_assembly_function_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.kind_.web_assembly_function_);
        } else {
          _this->_impl_.kind_.web_assembly_function_->MergeFrom(*from._impl_.kind_.web_assembly_function_);
        }
        break;
      }
      case KIND_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_EmbeddedFunction::InternalSwap(Expression_EmbeddedFunction* 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_.arguments_.InternalSwap(&other->_impl_.arguments_);
  swap(_impl_.output_type_, other->_impl_.output_type_);
  swap(_impl_.kind_, other->_impl_.kind_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_ReferenceSegment_MapKey* 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_.map_key_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.map_key_)
                : nullptr;
  _impl_.child_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_ReferenceSegment_MapKey_class_data_ =
        Expression_ReferenceSegment_MapKey::InternalGenerateClassData_(Expression_ReferenceSegment_MapKey_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_ReferenceSegment_MapKey::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_ReferenceSegment_MapKey_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_ReferenceSegment_MapKey_class_data_.tc_table);
  return Expression_ReferenceSegment_MapKey_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_ReferenceSegment_MapKey::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_ReferenceSegment_MapKey_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_ReferenceSegment_MapKey_globals_));
  return Expression_ReferenceSegment_MapKey_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_ReferenceSegment_MapKey::ParseTableT_
    Expression_ReferenceSegment_MapKey::_table_ =
        Expression_ReferenceSegment_MapKey::InternalGenerateParseTable_(Expression_ReferenceSegment_MapKey_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_ReferenceSegment_MapKey::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.ReferenceSegment.MapKey)
  ::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_.map_key_ != nullptr);
      _impl_.map_key_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.child_ != nullptr);
      _impl_.child_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Expression.ReferenceSegment child = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.child_, this_._impl_.child_->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.Expression.ReferenceSegment.MapKey)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_ReferenceSegment_MapKey::ByteSizeLong(const MessageLite& base) {
  const Expression_ReferenceSegment_MapKey& this_ = static_cast<const Expression_ReferenceSegment_MapKey&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_ReferenceSegment_MapKey::ByteSizeLong() const {
  const Expression_ReferenceSegment_MapKey& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.ReferenceSegment.MapKey)
  ::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)) {
    // .substrait.Expression.Literal map_key = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.map_key_);
    }
    // .substrait.Expression.ReferenceSegment child = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.child_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_ReferenceSegment_MapKey::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_ReferenceSegment_MapKey*>(&to_msg);
  auto& from = static_cast<const Expression_ReferenceSegment_MapKey&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.ReferenceSegment.MapKey)
  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)) {
      ABSL_DCHECK(from._impl_.map_key_ != nullptr);
      if (_this->_impl_.map_key_ == nullptr) {
        _this->_impl_.map_key_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.map_key_);
      } else {
        _this->_impl_.map_key_->MergeFrom(*from._impl_.map_key_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.child_ != nullptr);
      if (_this->_impl_.child_ == nullptr) {
        _this->_impl_.child_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_);
      } else {
        _this->_impl_.child_->MergeFrom(*from._impl_.child_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_ReferenceSegment_MapKey::InternalSwap(Expression_ReferenceSegment_MapKey* 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(Expression_ReferenceSegment_MapKey, _impl_.child_)
      + sizeof(Expression_ReferenceSegment_MapKey::_impl_.child_)
      - PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_MapKey, _impl_.map_key_)>(
          reinterpret_cast<char*>(&_impl_.map_key_),
          reinterpret_cast<char*>(&other->_impl_.map_key_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_ReferenceSegment_StructField* 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_.child_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_)
                : nullptr;
  _impl_.field_ = from._impl_.field_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_ReferenceSegment_StructField_class_data_ =
        Expression_ReferenceSegment_StructField::InternalGenerateClassData_(Expression_ReferenceSegment_StructField_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_ReferenceSegment_StructField::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_ReferenceSegment_StructField_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_ReferenceSegment_StructField_class_data_.tc_table);
  return Expression_ReferenceSegment_StructField_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_ReferenceSegment_StructField::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_ReferenceSegment_StructField_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_ReferenceSegment_StructField_globals_));
  return Expression_ReferenceSegment_StructField_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_ReferenceSegment_StructField::ParseTableT_
    Expression_ReferenceSegment_StructField::_table_ =
        Expression_ReferenceSegment_StructField::InternalGenerateParseTable_(Expression_ReferenceSegment_StructField_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_ReferenceSegment_StructField::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.ReferenceSegment.StructField)
  ::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_.child_ != nullptr);
    _impl_.child_->Clear();
  }
  _impl_.field_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Expression.ReferenceSegment child = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.child_, this_._impl_.child_->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.Expression.ReferenceSegment.StructField)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_ReferenceSegment_StructField::ByteSizeLong(const MessageLite& base) {
  const Expression_ReferenceSegment_StructField& this_ = static_cast<const Expression_ReferenceSegment_StructField&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_ReferenceSegment_StructField::ByteSizeLong() const {
  const Expression_ReferenceSegment_StructField& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.ReferenceSegment.StructField)
  ::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)) {
    // .substrait.Expression.ReferenceSegment child = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.child_);
    }
    // int32 field = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_field() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_field());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_ReferenceSegment_StructField::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_ReferenceSegment_StructField*>(&to_msg);
  auto& from = static_cast<const Expression_ReferenceSegment_StructField&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.ReferenceSegment.StructField)
  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)) {
      ABSL_DCHECK(from._impl_.child_ != nullptr);
      if (_this->_impl_.child_ == nullptr) {
        _this->_impl_.child_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_);
      } else {
        _this->_impl_.child_->MergeFrom(*from._impl_.child_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_field() != 0) {
        _this->_impl_.field_ = from._impl_.field_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_ReferenceSegment_StructField::InternalSwap(Expression_ReferenceSegment_StructField* 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(Expression_ReferenceSegment_StructField, _impl_.field_)
      + sizeof(Expression_ReferenceSegment_StructField::_impl_.field_)
      - PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_StructField, _impl_.child_)>(
          reinterpret_cast<char*>(&_impl_.child_),
          reinterpret_cast<char*>(&other->_impl_.child_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_ReferenceSegment_ListElement* 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_.child_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_)
                : nullptr;
  _impl_.offset_ = from._impl_.offset_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_ReferenceSegment_ListElement_class_data_ =
        Expression_ReferenceSegment_ListElement::InternalGenerateClassData_(Expression_ReferenceSegment_ListElement_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_ReferenceSegment_ListElement::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_ReferenceSegment_ListElement_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_ReferenceSegment_ListElement_class_data_.tc_table);
  return Expression_ReferenceSegment_ListElement_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_ReferenceSegment_ListElement::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_ReferenceSegment_ListElement_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_ReferenceSegment_ListElement_globals_));
  return Expression_ReferenceSegment_ListElement_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_ReferenceSegment_ListElement::ParseTableT_
    Expression_ReferenceSegment_ListElement::_table_ =
        Expression_ReferenceSegment_ListElement::InternalGenerateParseTable_(Expression_ReferenceSegment_ListElement_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_ReferenceSegment_ListElement::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.ReferenceSegment.ListElement)
  ::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_.child_ != nullptr);
    _impl_.child_->Clear();
  }
  _impl_.offset_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Expression.ReferenceSegment child = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.child_, this_._impl_.child_->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.Expression.ReferenceSegment.ListElement)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_ReferenceSegment_ListElement::ByteSizeLong(const MessageLite& base) {
  const Expression_ReferenceSegment_ListElement& this_ = static_cast<const Expression_ReferenceSegment_ListElement&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_ReferenceSegment_ListElement::ByteSizeLong() const {
  const Expression_ReferenceSegment_ListElement& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.ReferenceSegment.ListElement)
  ::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)) {
    // .substrait.Expression.ReferenceSegment child = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.child_);
    }
    // int32 offset = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_offset() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_offset());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_ReferenceSegment_ListElement::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_ReferenceSegment_ListElement*>(&to_msg);
  auto& from = static_cast<const Expression_ReferenceSegment_ListElement&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.ReferenceSegment.ListElement)
  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)) {
      ABSL_DCHECK(from._impl_.child_ != nullptr);
      if (_this->_impl_.child_ == nullptr) {
        _this->_impl_.child_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_);
      } else {
        _this->_impl_.child_->MergeFrom(*from._impl_.child_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_offset() != 0) {
        _this->_impl_.offset_ = from._impl_.offset_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_ReferenceSegment_ListElement::InternalSwap(Expression_ReferenceSegment_ListElement* 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(Expression_ReferenceSegment_ListElement, _impl_.offset_)
      + sizeof(Expression_ReferenceSegment_ListElement::_impl_.offset_)
      - PROTOBUF_FIELD_OFFSET(Expression_ReferenceSegment_ListElement, _impl_.child_)>(
          reinterpret_cast<char*>(&_impl_.child_),
          reinterpret_cast<char*>(&other->_impl_.child_));
}

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

void Expression_ReferenceSegment::set_allocated_map_key(::substrait::Expression_ReferenceSegment_MapKey* PROTOBUF_NULLABLE map_key) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_reference_type();
  if (map_key) {
    ::google::protobuf::Arena* submessage_arena = map_key->GetArena();
    if (message_arena != submessage_arena) {
      map_key = ::google::protobuf::internal::GetOwnedMessage(message_arena, map_key, submessage_arena);
    }
    set_has_map_key();
    _impl_.reference_type_.map_key_ = map_key;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.ReferenceSegment.map_key)
}
void Expression_ReferenceSegment::set_allocated_struct_field(::substrait::Expression_ReferenceSegment_StructField* PROTOBUF_NULLABLE struct_field) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_reference_type();
  if (struct_field) {
    ::google::protobuf::Arena* submessage_arena = struct_field->GetArena();
    if (message_arena != submessage_arena) {
      struct_field = ::google::protobuf::internal::GetOwnedMessage(message_arena, struct_field, submessage_arena);
    }
    set_has_struct_field();
    _impl_.reference_type_.struct_field_ = struct_field;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.ReferenceSegment.struct_field)
}
void Expression_ReferenceSegment::set_allocated_list_element(::substrait::Expression_ReferenceSegment_ListElement* PROTOBUF_NULLABLE list_element) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_reference_type();
  if (list_element) {
    ::google::protobuf::Arena* submessage_arena = list_element->GetArena();
    if (message_arena != submessage_arena) {
      list_element = ::google::protobuf::internal::GetOwnedMessage(message_arena, list_element, submessage_arena);
    }
    set_has_list_element();
    _impl_.reference_type_.list_element_ = list_element;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.ReferenceSegment.list_element)
}
Expression_ReferenceSegment::Expression_ReferenceSegment(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_ReferenceSegment_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.ReferenceSegment)
}
PROTOBUF_NDEBUG_INLINE Expression_ReferenceSegment::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_ReferenceSegment& from_msg)
      : reference_type_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_ReferenceSegment* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (reference_type_case()) {
    case REFERENCE_TYPE_NOT_SET:
      break;
      case kMapKey:
        _impl_.reference_type_.map_key_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reference_type_.map_key_);
        break;
      case kStructField:
        _impl_.reference_type_.struct_field_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reference_type_.struct_field_);
        break;
      case kListElement:
        _impl_.reference_type_.list_element_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reference_type_.list_element_);
        break;
  }

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

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

void Expression_ReferenceSegment::clear_reference_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.ReferenceSegment)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (reference_type_case()) {
    case kMapKey: {
      if (GetArena() == nullptr) {
        delete _impl_.reference_type_.map_key_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.reference_type_.map_key_);
      }
      break;
    }
    case kStructField: {
      if (GetArena() == nullptr) {
        delete _impl_.reference_type_.struct_field_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.reference_type_.struct_field_);
      }
      break;
    }
    case kListElement: {
      if (GetArena() == nullptr) {
        delete _impl_.reference_type_.list_element_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.reference_type_.list_element_);
      }
      break;
    }
    case REFERENCE_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REFERENCE_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_ReferenceSegment_class_data_ =
        Expression_ReferenceSegment::InternalGenerateClassData_(Expression_ReferenceSegment_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_ReferenceSegment::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_ReferenceSegment_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_ReferenceSegment_class_data_.tc_table);
  return Expression_ReferenceSegment_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_ReferenceSegment::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_ReferenceSegment_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_ReferenceSegment_globals_));
  return Expression_ReferenceSegment_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_ReferenceSegment::ParseTableT_
    Expression_ReferenceSegment::_table_ =
        Expression_ReferenceSegment::InternalGenerateParseTable_(Expression_ReferenceSegment_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_ReferenceSegment::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.ReferenceSegment)
  ::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_reference_type();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.reference_type_case()) {
    case kMapKey: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.reference_type_.map_key_, this_._impl_.reference_type_.map_key_->GetCachedSize(), target,
          stream);
      break;
    }
    case kStructField: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.reference_type_.struct_field_, this_._impl_.reference_type_.struct_field_->GetCachedSize(), target,
          stream);
      break;
    }
    case kListElement: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.reference_type_.list_element_, this_._impl_.reference_type_.list_element_->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.Expression.ReferenceSegment)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_ReferenceSegment::ByteSizeLong(const MessageLite& base) {
  const Expression_ReferenceSegment& this_ = static_cast<const Expression_ReferenceSegment&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_ReferenceSegment::ByteSizeLong() const {
  const Expression_ReferenceSegment& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.ReferenceSegment)
  ::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_.reference_type_case()) {
    // .substrait.Expression.ReferenceSegment.MapKey map_key = 1;
    case kMapKey: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.reference_type_.map_key_);
      break;
    }
    // .substrait.Expression.ReferenceSegment.StructField struct_field = 2;
    case kStructField: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.reference_type_.struct_field_);
      break;
    }
    // .substrait.Expression.ReferenceSegment.ListElement list_element = 3;
    case kListElement: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.reference_type_.list_element_);
      break;
    }
    case REFERENCE_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_ReferenceSegment::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_ReferenceSegment*>(&to_msg);
  auto& from = static_cast<const Expression_ReferenceSegment&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.ReferenceSegment)
  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_reference_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kMapKey: {
        if (oneof_needs_init) {
          _this->_impl_.reference_type_.map_key_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reference_type_.map_key_);
        } else {
          _this->_impl_.reference_type_.map_key_->MergeFrom(*from._impl_.reference_type_.map_key_);
        }
        break;
      }
      case kStructField: {
        if (oneof_needs_init) {
          _this->_impl_.reference_type_.struct_field_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reference_type_.struct_field_);
        } else {
          _this->_impl_.reference_type_.struct_field_->MergeFrom(*from._impl_.reference_type_.struct_field_);
        }
        break;
      }
      case kListElement: {
        if (oneof_needs_init) {
          _this->_impl_.reference_type_.list_element_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reference_type_.list_element_);
        } else {
          _this->_impl_.reference_type_.list_element_->MergeFrom(*from._impl_.reference_type_.list_element_);
        }
        break;
      }
      case REFERENCE_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

void Expression_MaskExpression_Select::set_allocated_struct_(::substrait::Expression_MaskExpression_StructSelect* PROTOBUF_NULLABLE struct_) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_type();
  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_.type_.struct__ = struct_;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.MaskExpression.Select.struct)
}
void Expression_MaskExpression_Select::set_allocated_list(::substrait::Expression_MaskExpression_ListSelect* PROTOBUF_NULLABLE list) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_type();
  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_.type_.list_ = list;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.MaskExpression.Select.list)
}
void Expression_MaskExpression_Select::set_allocated_map(::substrait::Expression_MaskExpression_MapSelect* PROTOBUF_NULLABLE map) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_type();
  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_.type_.map_ = map;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.MaskExpression.Select.map)
}
Expression_MaskExpression_Select::Expression_MaskExpression_Select(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_MaskExpression_Select_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.MaskExpression.Select)
}
PROTOBUF_NDEBUG_INLINE Expression_MaskExpression_Select::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_MaskExpression_Select& from_msg)
      : type_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MaskExpression_Select* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (type_case()) {
    case TYPE_NOT_SET:
      break;
      case kStruct:
        _impl_.type_.struct__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_.struct__);
        break;
      case kList:
        _impl_.type_.list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_.list_);
        break;
      case kMap:
        _impl_.type_.map_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_.map_);
        break;
  }

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

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

void Expression_MaskExpression_Select::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.MaskExpression.Select)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (type_case()) {
    case kStruct: {
      if (GetArena() == nullptr) {
        delete _impl_.type_.struct__;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.type_.struct__);
      }
      break;
    }
    case kList: {
      if (GetArena() == nullptr) {
        delete _impl_.type_.list_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.type_.list_);
      }
      break;
    }
    case kMap: {
      if (GetArena() == nullptr) {
        delete _impl_.type_.map_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.type_.map_);
      }
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_MaskExpression_Select_class_data_ =
        Expression_MaskExpression_Select::InternalGenerateClassData_(Expression_MaskExpression_Select_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_Select::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_Select_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MaskExpression_Select_class_data_.tc_table);
  return Expression_MaskExpression_Select_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_Select::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_Select_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MaskExpression_Select_globals_));
  return Expression_MaskExpression_Select_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MaskExpression_Select::ParseTableT_
    Expression_MaskExpression_Select::_table_ =
        Expression_MaskExpression_Select::InternalGenerateParseTable_(Expression_MaskExpression_Select_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MaskExpression_Select::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MaskExpression.Select)
  ::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_type();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.type_case()) {
    case kStruct: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.type_.struct__, this_._impl_.type_.struct__->GetCachedSize(), target,
          stream);
      break;
    }
    case kList: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.type_.list_, this_._impl_.type_.list_->GetCachedSize(), target,
          stream);
      break;
    }
    case kMap: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.type_.map_, this_._impl_.type_.map_->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.Expression.MaskExpression.Select)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_MaskExpression_Select::ByteSizeLong(const MessageLite& base) {
  const Expression_MaskExpression_Select& this_ = static_cast<const Expression_MaskExpression_Select&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_MaskExpression_Select::ByteSizeLong() const {
  const Expression_MaskExpression_Select& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.MaskExpression.Select)
  ::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_.type_case()) {
    // .substrait.Expression.MaskExpression.StructSelect struct = 1;
    case kStruct: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.type_.struct__);
      break;
    }
    // .substrait.Expression.MaskExpression.ListSelect list = 2;
    case kList: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.type_.list_);
      break;
    }
    // .substrait.Expression.MaskExpression.MapSelect map = 3;
    case kMap: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.type_.map_);
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_MaskExpression_Select::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_MaskExpression_Select*>(&to_msg);
  auto& from = static_cast<const Expression_MaskExpression_Select&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.MaskExpression.Select)
  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_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kStruct: {
        if (oneof_needs_init) {
          _this->_impl_.type_.struct__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_.struct__);
        } else {
          _this->_impl_.type_.struct__->MergeFrom(*from._impl_.type_.struct__);
        }
        break;
      }
      case kList: {
        if (oneof_needs_init) {
          _this->_impl_.type_.list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_.list_);
        } else {
          _this->_impl_.type_.list_->MergeFrom(*from._impl_.type_.list_);
        }
        break;
      }
      case kMap: {
        if (oneof_needs_init) {
          _this->_impl_.type_.map_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_.map_);
        } else {
          _this->_impl_.type_.map_->MergeFrom(*from._impl_.type_.map_);
        }
        break;
      }
      case TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MaskExpression_StructSelect* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

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

inline void Expression_MaskExpression_StructSelect::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_MaskExpression_StructSelect::~Expression_MaskExpression_StructSelect() {
  // @@protoc_insertion_point(destructor:substrait.Expression.MaskExpression.StructSelect)
  SharedDtor(*this);
}
inline void Expression_MaskExpression_StructSelect::SharedDtor(MessageLite& self) {
  Expression_MaskExpression_StructSelect& this_ = static_cast<Expression_MaskExpression_StructSelect&>(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 Expression_MaskExpression_StructSelect_class_data_ =
        Expression_MaskExpression_StructSelect::InternalGenerateClassData_(Expression_MaskExpression_StructSelect_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_StructSelect::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_StructSelect_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MaskExpression_StructSelect_class_data_.tc_table);
  return Expression_MaskExpression_StructSelect_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_StructSelect::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_StructSelect_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MaskExpression_StructSelect_globals_));
  return Expression_MaskExpression_StructSelect_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MaskExpression_StructSelect::ParseTableT_
    Expression_MaskExpression_StructSelect::_table_ =
        Expression_MaskExpression_StructSelect::InternalGenerateParseTable_(Expression_MaskExpression_StructSelect_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MaskExpression_StructSelect::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MaskExpression.StructSelect)
  ::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_.struct_items_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression.MaskExpression.StructItem struct_items = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_struct_items_size());
         i < n; i++) {
      const auto& repfield = this_._internal_struct_items().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, 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.Expression.MaskExpression.StructSelect)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_MaskExpression_StructSelect::ByteSizeLong(const MessageLite& base) {
  const Expression_MaskExpression_StructSelect& this_ = static_cast<const Expression_MaskExpression_StructSelect&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_MaskExpression_StructSelect::ByteSizeLong() const {
  const Expression_MaskExpression_StructSelect& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.MaskExpression.StructSelect)
  ::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_);
   {
    // repeated .substrait.Expression.MaskExpression.StructItem struct_items = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_struct_items_size();
      for (const auto& msg : this_._internal_struct_items()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_struct_items()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_struct_items());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_MaskExpression_StructSelect::InternalSwap(Expression_MaskExpression_StructSelect* 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_.struct_items_.InternalSwap(&other->_impl_.struct_items_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MaskExpression_StructItem* 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_.child_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_)
                : nullptr;
  _impl_.field_ = from._impl_.field_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_MaskExpression_StructItem_class_data_ =
        Expression_MaskExpression_StructItem::InternalGenerateClassData_(Expression_MaskExpression_StructItem_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_StructItem::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_StructItem_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MaskExpression_StructItem_class_data_.tc_table);
  return Expression_MaskExpression_StructItem_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_StructItem::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_StructItem_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MaskExpression_StructItem_globals_));
  return Expression_MaskExpression_StructItem_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MaskExpression_StructItem::ParseTableT_
    Expression_MaskExpression_StructItem::_table_ =
        Expression_MaskExpression_StructItem::InternalGenerateParseTable_(Expression_MaskExpression_StructItem_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MaskExpression_StructItem::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MaskExpression.StructItem)
  ::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_.child_ != nullptr);
    _impl_.child_->Clear();
  }
  _impl_.field_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Expression.MaskExpression.Select child = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.child_, this_._impl_.child_->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.Expression.MaskExpression.StructItem)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_MaskExpression_StructItem::ByteSizeLong(const MessageLite& base) {
  const Expression_MaskExpression_StructItem& this_ = static_cast<const Expression_MaskExpression_StructItem&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_MaskExpression_StructItem::ByteSizeLong() const {
  const Expression_MaskExpression_StructItem& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.MaskExpression.StructItem)
  ::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)) {
    // .substrait.Expression.MaskExpression.Select child = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.child_);
    }
    // int32 field = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_field() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_field());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_MaskExpression_StructItem::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_MaskExpression_StructItem*>(&to_msg);
  auto& from = static_cast<const Expression_MaskExpression_StructItem&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.MaskExpression.StructItem)
  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)) {
      ABSL_DCHECK(from._impl_.child_ != nullptr);
      if (_this->_impl_.child_ == nullptr) {
        _this->_impl_.child_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_);
      } else {
        _this->_impl_.child_->MergeFrom(*from._impl_.child_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_field() != 0) {
        _this->_impl_.field_ = from._impl_.field_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_MaskExpression_StructItem::InternalSwap(Expression_MaskExpression_StructItem* 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(Expression_MaskExpression_StructItem, _impl_.field_)
      + sizeof(Expression_MaskExpression_StructItem::_impl_.field_)
      - PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_StructItem, _impl_.child_)>(
          reinterpret_cast<char*>(&_impl_.child_),
          reinterpret_cast<char*>(&other->_impl_.child_));
}

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

Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_MaskExpression_ListSelect_ListSelectItem_ListElement_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement)
}
Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Expression_MaskExpression_ListSelect_ListSelectItem_ListElement& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_MaskExpression_ListSelect_ListSelectItem_ListElement_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 Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.field_ = {};
}
Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::~Expression_MaskExpression_ListSelect_ListSelectItem_ListElement() {
  // @@protoc_insertion_point(destructor:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement)
  SharedDtor(*this);
}
inline void Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::SharedDtor(MessageLite& self) {
  Expression_MaskExpression_ListSelect_ListSelectItem_ListElement& this_ = static_cast<Expression_MaskExpression_ListSelect_ListSelectItem_ListElement&>(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 Expression_MaskExpression_ListSelect_ListSelectItem_ListElement_class_data_ =
        Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::InternalGenerateClassData_(Expression_MaskExpression_ListSelect_ListSelectItem_ListElement_globals_._default);

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

  _impl_.field_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // int32 field = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_field() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
              stream, this_._internal_field(), 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.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement)
  return target;
}

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

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

   {
    // int32 field = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_field() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_field());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_field() != 0) {
      _this->_impl_.field_ = from._impl_.field_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_MaskExpression_ListSelect_ListSelectItem_ListElement::CopyFrom(const Expression_MaskExpression_ListSelect_ListSelectItem_ListElement& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


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

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

Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice)
}
Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_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 Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, start_),
           0,
           offsetof(Impl_, end_) -
               offsetof(Impl_, start_) +
               sizeof(Impl_::end_));
}
Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::~Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice() {
  // @@protoc_insertion_point(destructor:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice)
  SharedDtor(*this);
}
inline void Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::SharedDtor(MessageLite& self) {
  Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice& this_ = static_cast<Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice&>(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 Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_class_data_ =
        Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::InternalGenerateClassData_(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_class_data_.tc_table);
  return Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_globals_));
  return Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::ParseTableT_
    Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::_table_ =
        Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::InternalGenerateParseTable_(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice)
  ::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_.start_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.end_) -
        reinterpret_cast<char*>(&_impl_.start_)) + sizeof(_impl_.end_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // int32 end = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_end() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
              stream, this_._internal_end(), 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.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::ByteSizeLong(const MessageLite& base) {
  const Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice& this_ = static_cast<const Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::ByteSizeLong() const {
  const Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice)
  ::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)) {
    // int32 start = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_start() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_start());
      }
    }
    // int32 end = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_end() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_end());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice*>(&to_msg);
  auto& from = static_cast<const Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice)
  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_start() != 0) {
        _this->_impl_.start_ = from._impl_.start_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_end() != 0) {
        _this->_impl_.end_ = from._impl_.end_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::CopyFrom(const Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::InternalSwap(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice* 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(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_.end_)
      + sizeof(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice::_impl_.end_)
      - PROTOBUF_FIELD_OFFSET(Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice, _impl_.start_)>(
          reinterpret_cast<char*>(&_impl_.start_),
          reinterpret_cast<char*>(&other->_impl_.start_));
}

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

void Expression_MaskExpression_ListSelect_ListSelectItem::set_allocated_item(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListElement* PROTOBUF_NULLABLE item) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_type();
  if (item) {
    ::google::protobuf::Arena* submessage_arena = item->GetArena();
    if (message_arena != submessage_arena) {
      item = ::google::protobuf::internal::GetOwnedMessage(message_arena, item, submessage_arena);
    }
    set_has_item();
    _impl_.type_.item_ = item;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.item)
}
void Expression_MaskExpression_ListSelect_ListSelectItem::set_allocated_slice(::substrait::Expression_MaskExpression_ListSelect_ListSelectItem_ListSlice* PROTOBUF_NULLABLE slice) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_type();
  if (slice) {
    ::google::protobuf::Arena* submessage_arena = slice->GetArena();
    if (message_arena != submessage_arena) {
      slice = ::google::protobuf::internal::GetOwnedMessage(message_arena, slice, submessage_arena);
    }
    set_has_slice();
    _impl_.type_.slice_ = slice;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.slice)
}
Expression_MaskExpression_ListSelect_ListSelectItem::Expression_MaskExpression_ListSelect_ListSelectItem(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_MaskExpression_ListSelect_ListSelectItem_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.MaskExpression.ListSelect.ListSelectItem)
}
PROTOBUF_NDEBUG_INLINE Expression_MaskExpression_ListSelect_ListSelectItem::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_MaskExpression_ListSelect_ListSelectItem& from_msg)
      : type_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MaskExpression_ListSelect_ListSelectItem* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (type_case()) {
    case TYPE_NOT_SET:
      break;
      case kItem:
        _impl_.type_.item_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_.item_);
        break;
      case kSlice:
        _impl_.type_.slice_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_.slice_);
        break;
  }

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.MaskExpression.ListSelect.ListSelectItem)
}
PROTOBUF_NDEBUG_INLINE Expression_MaskExpression_ListSelect_ListSelectItem::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : type_{},
        _cached_size_{0},
        _oneof_case_{} {}

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

void Expression_MaskExpression_ListSelect_ListSelectItem::clear_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.MaskExpression.ListSelect.ListSelectItem)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (type_case()) {
    case kItem: {
      if (GetArena() == nullptr) {
        delete _impl_.type_.item_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.type_.item_);
      }
      break;
    }
    case kSlice: {
      if (GetArena() == nullptr) {
        delete _impl_.type_.slice_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.type_.slice_);
      }
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_MaskExpression_ListSelect_ListSelectItem_class_data_ =
        Expression_MaskExpression_ListSelect_ListSelectItem::InternalGenerateClassData_(Expression_MaskExpression_ListSelect_ListSelectItem_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_ListSelect_ListSelectItem::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_ListSelect_ListSelectItem_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MaskExpression_ListSelect_ListSelectItem_class_data_.tc_table);
  return Expression_MaskExpression_ListSelect_ListSelectItem_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_ListSelect_ListSelectItem::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_ListSelect_ListSelectItem_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MaskExpression_ListSelect_ListSelectItem_globals_));
  return Expression_MaskExpression_ListSelect_ListSelectItem_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MaskExpression_ListSelect_ListSelectItem::ParseTableT_
    Expression_MaskExpression_ListSelect_ListSelectItem::_table_ =
        Expression_MaskExpression_ListSelect_ListSelectItem::InternalGenerateParseTable_(Expression_MaskExpression_ListSelect_ListSelectItem_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MaskExpression_ListSelect_ListSelectItem::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MaskExpression.ListSelect.ListSelectItem)
  ::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_type();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.type_case()) {
    case kItem: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.type_.item_, this_._impl_.type_.item_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSlice: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.type_.slice_, this_._impl_.type_.slice_->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.Expression.MaskExpression.ListSelect.ListSelectItem)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_MaskExpression_ListSelect_ListSelectItem::ByteSizeLong(const MessageLite& base) {
  const Expression_MaskExpression_ListSelect_ListSelectItem& this_ = static_cast<const Expression_MaskExpression_ListSelect_ListSelectItem&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_MaskExpression_ListSelect_ListSelectItem::ByteSizeLong() const {
  const Expression_MaskExpression_ListSelect_ListSelectItem& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.MaskExpression.ListSelect.ListSelectItem)
  ::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_.type_case()) {
    // .substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement item = 1;
    case kItem: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.type_.item_);
      break;
    }
    // .substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice slice = 2;
    case kSlice: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.type_.slice_);
      break;
    }
    case TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_MaskExpression_ListSelect_ListSelectItem::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_MaskExpression_ListSelect_ListSelectItem*>(&to_msg);
  auto& from = static_cast<const Expression_MaskExpression_ListSelect_ListSelectItem&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.MaskExpression.ListSelect.ListSelectItem)
  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_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kItem: {
        if (oneof_needs_init) {
          _this->_impl_.type_.item_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_.item_);
        } else {
          _this->_impl_.type_.item_->MergeFrom(*from._impl_.type_.item_);
        }
        break;
      }
      case kSlice: {
        if (oneof_needs_init) {
          _this->_impl_.type_.slice_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.type_.slice_);
        } else {
          _this->_impl_.type_.slice_->MergeFrom(*from._impl_.type_.slice_);
        }
        break;
      }
      case TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_MaskExpression_ListSelect_ListSelectItem::CopyFrom(const Expression_MaskExpression_ListSelect_ListSelectItem& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.MaskExpression.ListSelect.ListSelectItem)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MaskExpression_ListSelect* 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_.child_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_MaskExpression_ListSelect_class_data_ =
        Expression_MaskExpression_ListSelect::InternalGenerateClassData_(Expression_MaskExpression_ListSelect_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_ListSelect::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_ListSelect_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MaskExpression_ListSelect_class_data_.tc_table);
  return Expression_MaskExpression_ListSelect_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_ListSelect::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_ListSelect_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MaskExpression_ListSelect_globals_));
  return Expression_MaskExpression_ListSelect_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MaskExpression_ListSelect::ParseTableT_
    Expression_MaskExpression_ListSelect::_table_ =
        Expression_MaskExpression_ListSelect::InternalGenerateParseTable_(Expression_MaskExpression_ListSelect_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MaskExpression_ListSelect::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MaskExpression.ListSelect)
  ::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_.selection_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.child_ != nullptr);
      _impl_.child_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // .substrait.Expression.MaskExpression.Select child = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.child_, this_._impl_.child_->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.Expression.MaskExpression.ListSelect)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_MaskExpression_ListSelect::ByteSizeLong(const MessageLite& base) {
  const Expression_MaskExpression_ListSelect& this_ = static_cast<const Expression_MaskExpression_ListSelect&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_MaskExpression_ListSelect::ByteSizeLong() const {
  const Expression_MaskExpression_ListSelect& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.MaskExpression.ListSelect)
  ::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 .substrait.Expression.MaskExpression.ListSelect.ListSelectItem selection = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_selection_size();
      for (const auto& msg : this_._internal_selection()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.Expression.MaskExpression.Select child = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.child_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_MaskExpression_ListSelect::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_MaskExpression_ListSelect*>(&to_msg);
  auto& from = static_cast<const Expression_MaskExpression_ListSelect&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.MaskExpression.ListSelect)
  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_selection()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_selection());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.child_ != nullptr);
      if (_this->_impl_.child_ == nullptr) {
        _this->_impl_.child_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_);
      } else {
        _this->_impl_.child_->MergeFrom(*from._impl_.child_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_MaskExpression_ListSelect::InternalSwap(Expression_MaskExpression_ListSelect* 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_.selection_.InternalSwap(&other->_impl_.selection_);
  swap(_impl_.child_, other->_impl_.child_);
}

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

Expression_MaskExpression_MapSelect_MapKey::Expression_MaskExpression_MapSelect_MapKey(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_MaskExpression_MapSelect_MapKey_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.MaskExpression.MapSelect.MapKey)
}
PROTOBUF_NDEBUG_INLINE Expression_MaskExpression_MapSelect_MapKey::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_MaskExpression_MapSelect_MapKey& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        map_key_(arena, from.map_key_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MaskExpression_MapSelect_MapKey* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.MaskExpression.MapSelect.MapKey)
}
PROTOBUF_NDEBUG_INLINE Expression_MaskExpression_MapSelect_MapKey::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        map_key_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_MaskExpression_MapSelect_MapKey_class_data_ =
        Expression_MaskExpression_MapSelect_MapKey::InternalGenerateClassData_(Expression_MaskExpression_MapSelect_MapKey_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_MapSelect_MapKey::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_MapSelect_MapKey_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MaskExpression_MapSelect_MapKey_class_data_.tc_table);
  return Expression_MaskExpression_MapSelect_MapKey_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_MapSelect_MapKey::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_MapSelect_MapKey_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MaskExpression_MapSelect_MapKey_globals_));
  return Expression_MaskExpression_MapSelect_MapKey_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MaskExpression_MapSelect_MapKey::ParseTableT_
    Expression_MaskExpression_MapSelect_MapKey::_table_ =
        Expression_MaskExpression_MapSelect_MapKey::InternalGenerateParseTable_(Expression_MaskExpression_MapSelect_MapKey_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MaskExpression_MapSelect_MapKey::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MaskExpression.MapSelect.MapKey)
  ::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_.map_key_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string map_key = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_map_key().empty()) {
      const ::std::string& _s = this_._internal_map_key();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.Expression.MaskExpression.MapSelect.MapKey.map_key");
      target = stream->WriteStringMaybeAliased(1, _s, 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.Expression.MaskExpression.MapSelect.MapKey)
  return target;
}

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

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

   {
    // string map_key = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_map_key().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_map_key());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!from._internal_map_key().empty()) {
      _this->_internal_set_map_key(from._internal_map_key());
    } else {
      if (_this->_impl_.map_key_.IsDefault()) {
        _this->_internal_set_map_key("");
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_MaskExpression_MapSelect_MapKey::CopyFrom(const Expression_MaskExpression_MapSelect_MapKey& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.MaskExpression.MapSelect.MapKey)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression_MaskExpression_MapSelect_MapKey::InternalSwap(Expression_MaskExpression_MapSelect_MapKey* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.map_key_, &other->_impl_.map_key_, arena);
}

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

Expression_MaskExpression_MapSelect_MapKeyExpression::Expression_MaskExpression_MapSelect_MapKeyExpression(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_MaskExpression_MapSelect_MapKeyExpression_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.MaskExpression.MapSelect.MapKeyExpression)
}
PROTOBUF_NDEBUG_INLINE Expression_MaskExpression_MapSelect_MapKeyExpression::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_MaskExpression_MapSelect_MapKeyExpression& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        map_key_expression_(arena, from.map_key_expression_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MaskExpression_MapSelect_MapKeyExpression* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.MaskExpression.MapSelect.MapKeyExpression)
}
PROTOBUF_NDEBUG_INLINE Expression_MaskExpression_MapSelect_MapKeyExpression::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        map_key_expression_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_MaskExpression_MapSelect_MapKeyExpression_class_data_ =
        Expression_MaskExpression_MapSelect_MapKeyExpression::InternalGenerateClassData_(Expression_MaskExpression_MapSelect_MapKeyExpression_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_MapSelect_MapKeyExpression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_MapSelect_MapKeyExpression_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MaskExpression_MapSelect_MapKeyExpression_class_data_.tc_table);
  return Expression_MaskExpression_MapSelect_MapKeyExpression_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_MapSelect_MapKeyExpression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_MapSelect_MapKeyExpression_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MaskExpression_MapSelect_MapKeyExpression_globals_));
  return Expression_MaskExpression_MapSelect_MapKeyExpression_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MaskExpression_MapSelect_MapKeyExpression::ParseTableT_
    Expression_MaskExpression_MapSelect_MapKeyExpression::_table_ =
        Expression_MaskExpression_MapSelect_MapKeyExpression::InternalGenerateParseTable_(Expression_MaskExpression_MapSelect_MapKeyExpression_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MaskExpression_MapSelect_MapKeyExpression::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MaskExpression.MapSelect.MapKeyExpression)
  ::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_.map_key_expression_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string map_key_expression = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_map_key_expression().empty()) {
      const ::std::string& _s = this_._internal_map_key_expression();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "substrait.Expression.MaskExpression.MapSelect.MapKeyExpression.map_key_expression");
      target = stream->WriteStringMaybeAliased(1, _s, 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.Expression.MaskExpression.MapSelect.MapKeyExpression)
  return target;
}

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

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

   {
    // string map_key_expression = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_map_key_expression().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_map_key_expression());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!from._internal_map_key_expression().empty()) {
      _this->_internal_set_map_key_expression(from._internal_map_key_expression());
    } else {
      if (_this->_impl_.map_key_expression_.IsDefault()) {
        _this->_internal_set_map_key_expression("");
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_MaskExpression_MapSelect_MapKeyExpression::CopyFrom(const Expression_MaskExpression_MapSelect_MapKeyExpression& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.MaskExpression.MapSelect.MapKeyExpression)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression_MaskExpression_MapSelect_MapKeyExpression::InternalSwap(Expression_MaskExpression_MapSelect_MapKeyExpression* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.map_key_expression_, &other->_impl_.map_key_expression_, arena);
}

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

void Expression_MaskExpression_MapSelect::set_allocated_key(::substrait::Expression_MaskExpression_MapSelect_MapKey* PROTOBUF_NULLABLE key) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_select();
  if (key) {
    ::google::protobuf::Arena* submessage_arena = key->GetArena();
    if (message_arena != submessage_arena) {
      key = ::google::protobuf::internal::GetOwnedMessage(message_arena, key, submessage_arena);
    }
    set_has_key();
    _impl_.select_.key_ = key;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.MaskExpression.MapSelect.key)
}
void Expression_MaskExpression_MapSelect::set_allocated_expression(::substrait::Expression_MaskExpression_MapSelect_MapKeyExpression* PROTOBUF_NULLABLE expression) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_select();
  if (expression) {
    ::google::protobuf::Arena* submessage_arena = expression->GetArena();
    if (message_arena != submessage_arena) {
      expression = ::google::protobuf::internal::GetOwnedMessage(message_arena, expression, submessage_arena);
    }
    set_has_expression();
    _impl_.select_.expression_ = expression;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.MaskExpression.MapSelect.expression)
}
Expression_MaskExpression_MapSelect::Expression_MaskExpression_MapSelect(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_MaskExpression_MapSelect_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.MaskExpression.MapSelect)
}
PROTOBUF_NDEBUG_INLINE Expression_MaskExpression_MapSelect::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_MaskExpression_MapSelect& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        select_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MaskExpression_MapSelect* 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_.child_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_)
                : nullptr;
  switch (select_case()) {
    case SELECT_NOT_SET:
      break;
      case kKey:
        _impl_.select_.key_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.select_.key_);
        break;
      case kExpression:
        _impl_.select_.expression_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.select_.expression_);
        break;
  }

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

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

void Expression_MaskExpression_MapSelect::clear_select() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.MaskExpression.MapSelect)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (select_case()) {
    case kKey: {
      if (GetArena() == nullptr) {
        delete _impl_.select_.key_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.select_.key_);
      }
      break;
    }
    case kExpression: {
      if (GetArena() == nullptr) {
        delete _impl_.select_.expression_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.select_.expression_);
      }
      break;
    }
    case SELECT_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = SELECT_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_MaskExpression_MapSelect_class_data_ =
        Expression_MaskExpression_MapSelect::InternalGenerateClassData_(Expression_MaskExpression_MapSelect_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_MapSelect::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_MapSelect_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MaskExpression_MapSelect_class_data_.tc_table);
  return Expression_MaskExpression_MapSelect_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression_MapSelect::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_MapSelect_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MaskExpression_MapSelect_globals_));
  return Expression_MaskExpression_MapSelect_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MaskExpression_MapSelect::ParseTableT_
    Expression_MaskExpression_MapSelect::_table_ =
        Expression_MaskExpression_MapSelect::InternalGenerateParseTable_(Expression_MaskExpression_MapSelect_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MaskExpression_MapSelect::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MaskExpression.MapSelect)
  ::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_.child_ != nullptr);
    _impl_.child_->Clear();
  }
  clear_select();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  switch (this_.select_case()) {
    case kKey: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.select_.key_, this_._impl_.select_.key_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExpression: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.select_.expression_, this_._impl_.select_.expression_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.Expression.MaskExpression.Select child = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.child_, this_._impl_.child_->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.Expression.MaskExpression.MapSelect)
  return target;
}

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

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

   {
    // .substrait.Expression.MaskExpression.Select child = 3;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.child_);
    }
  }
  switch (this_.select_case()) {
    // .substrait.Expression.MaskExpression.MapSelect.MapKey key = 1;
    case kKey: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.select_.key_);
      break;
    }
    // .substrait.Expression.MaskExpression.MapSelect.MapKeyExpression expression = 2;
    case kExpression: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.select_.expression_);
      break;
    }
    case SELECT_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(from._impl_.child_ != nullptr);
    if (_this->_impl_.child_ == nullptr) {
      _this->_impl_.child_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.child_);
    } else {
      _this->_impl_.child_->MergeFrom(*from._impl_.child_);
    }
  }
  _this->_impl_._has_bits_[0] |= 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_select();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kKey: {
        if (oneof_needs_init) {
          _this->_impl_.select_.key_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.select_.key_);
        } else {
          _this->_impl_.select_.key_->MergeFrom(*from._impl_.select_.key_);
        }
        break;
      }
      case kExpression: {
        if (oneof_needs_init) {
          _this->_impl_.select_.expression_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.select_.expression_);
        } else {
          _this->_impl_.select_.expression_->MergeFrom(*from._impl_.select_.expression_);
        }
        break;
      }
      case SELECT_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_MaskExpression* 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_.select_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.select_)
                : nullptr;
  _impl_.maintain_singular_struct_ = from._impl_.maintain_singular_struct_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_MaskExpression_class_data_ =
        Expression_MaskExpression::InternalGenerateClassData_(Expression_MaskExpression_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_MaskExpression_class_data_.tc_table);
  return Expression_MaskExpression_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_MaskExpression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_MaskExpression_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_MaskExpression_globals_));
  return Expression_MaskExpression_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_MaskExpression::ParseTableT_
    Expression_MaskExpression::_table_ =
        Expression_MaskExpression::InternalGenerateParseTable_(Expression_MaskExpression_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_MaskExpression::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.MaskExpression)
  ::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_.select_ != nullptr);
    _impl_.select_->Clear();
  }
  _impl_.maintain_singular_struct_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  // bool maintain_singular_struct = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_maintain_singular_struct() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_maintain_singular_struct(), 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.Expression.MaskExpression)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_MaskExpression::ByteSizeLong(const MessageLite& base) {
  const Expression_MaskExpression& this_ = static_cast<const Expression_MaskExpression&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_MaskExpression::ByteSizeLong() const {
  const Expression_MaskExpression& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.MaskExpression)
  ::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)) {
    // .substrait.Expression.MaskExpression.StructSelect select = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.select_);
    }
    // bool maintain_singular_struct = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_maintain_singular_struct() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_MaskExpression::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_MaskExpression*>(&to_msg);
  auto& from = static_cast<const Expression_MaskExpression&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.MaskExpression)
  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)) {
      ABSL_DCHECK(from._impl_.select_ != nullptr);
      if (_this->_impl_.select_ == nullptr) {
        _this->_impl_.select_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.select_);
      } else {
        _this->_impl_.select_->MergeFrom(*from._impl_.select_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_maintain_singular_struct() != 0) {
        _this->_impl_.maintain_singular_struct_ = from._impl_.maintain_singular_struct_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void Expression_MaskExpression::InternalSwap(Expression_MaskExpression* 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(Expression_MaskExpression, _impl_.maintain_singular_struct_)
      + sizeof(Expression_MaskExpression::_impl_.maintain_singular_struct_)
      - PROTOBUF_FIELD_OFFSET(Expression_MaskExpression, _impl_.select_)>(
          reinterpret_cast<char*>(&_impl_.select_),
          reinterpret_cast<char*>(&other->_impl_.select_));
}

::google::protobuf::Metadata Expression_MaskExpression::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Expression_FieldReference_RootReference::Expression_FieldReference_RootReference(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, Expression_FieldReference_RootReference_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.FieldReference.RootReference)
}
Expression_FieldReference_RootReference::Expression_FieldReference_RootReference(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression_FieldReference_RootReference& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, Expression_FieldReference_RootReference_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_FieldReference_RootReference* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.FieldReference.RootReference)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_FieldReference_RootReference_class_data_ =
        Expression_FieldReference_RootReference::InternalGenerateClassData_(Expression_FieldReference_RootReference_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_FieldReference_RootReference::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_FieldReference_RootReference_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_FieldReference_RootReference_class_data_.tc_table);
  return Expression_FieldReference_RootReference_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_FieldReference_RootReference::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_FieldReference_RootReference_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_FieldReference_RootReference_globals_));
  return Expression_FieldReference_RootReference_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_FieldReference_RootReference::ParseTableT_
    Expression_FieldReference_RootReference::_table_ =
        Expression_FieldReference_RootReference::InternalGenerateParseTable_(Expression_FieldReference_RootReference_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata Expression_FieldReference_RootReference::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Expression_FieldReference_OuterReference::Expression_FieldReference_OuterReference(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_FieldReference_OuterReference_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.FieldReference.OuterReference)
}
Expression_FieldReference_OuterReference::Expression_FieldReference_OuterReference(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Expression_FieldReference_OuterReference& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_FieldReference_OuterReference_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 Expression_FieldReference_OuterReference::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Expression_FieldReference_OuterReference::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.steps_out_ = {};
}
Expression_FieldReference_OuterReference::~Expression_FieldReference_OuterReference() {
  // @@protoc_insertion_point(destructor:substrait.Expression.FieldReference.OuterReference)
  SharedDtor(*this);
}
inline void Expression_FieldReference_OuterReference::SharedDtor(MessageLite& self) {
  Expression_FieldReference_OuterReference& this_ = static_cast<Expression_FieldReference_OuterReference&>(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 Expression_FieldReference_OuterReference_class_data_ =
        Expression_FieldReference_OuterReference::InternalGenerateClassData_(Expression_FieldReference_OuterReference_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_FieldReference_OuterReference::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_FieldReference_OuterReference_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_FieldReference_OuterReference_class_data_.tc_table);
  return Expression_FieldReference_OuterReference_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_FieldReference_OuterReference::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_FieldReference_OuterReference_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_FieldReference_OuterReference_globals_));
  return Expression_FieldReference_OuterReference_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_FieldReference_OuterReference::ParseTableT_
    Expression_FieldReference_OuterReference::_table_ =
        Expression_FieldReference_OuterReference::InternalGenerateParseTable_(Expression_FieldReference_OuterReference_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_FieldReference_OuterReference::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.FieldReference.OuterReference)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.steps_out_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Expression_FieldReference_OuterReference::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression_FieldReference_OuterReference& this_ = static_cast<const Expression_FieldReference_OuterReference&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression_FieldReference_OuterReference::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression_FieldReference_OuterReference& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression.FieldReference.OuterReference)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 steps_out = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_steps_out() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_steps_out(), 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.Expression.FieldReference.OuterReference)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_FieldReference_OuterReference::ByteSizeLong(const MessageLite& base) {
  const Expression_FieldReference_OuterReference& this_ = static_cast<const Expression_FieldReference_OuterReference&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_FieldReference_OuterReference::ByteSizeLong() const {
  const Expression_FieldReference_OuterReference& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.FieldReference.OuterReference)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 steps_out = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_steps_out() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_steps_out());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_FieldReference_OuterReference::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_FieldReference_OuterReference*>(&to_msg);
  auto& from = static_cast<const Expression_FieldReference_OuterReference&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.FieldReference.OuterReference)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_steps_out() != 0) {
      _this->_impl_.steps_out_ = from._impl_.steps_out_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_FieldReference_OuterReference::CopyFrom(const Expression_FieldReference_OuterReference& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.FieldReference.OuterReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression_FieldReference_OuterReference::InternalSwap(Expression_FieldReference_OuterReference* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.steps_out_, other->_impl_.steps_out_);
}

::google::protobuf::Metadata Expression_FieldReference_OuterReference::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void Expression_FieldReference::set_allocated_direct_reference(::substrait::Expression_ReferenceSegment* PROTOBUF_NULLABLE direct_reference) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_reference_type();
  if (direct_reference) {
    ::google::protobuf::Arena* submessage_arena = direct_reference->GetArena();
    if (message_arena != submessage_arena) {
      direct_reference = ::google::protobuf::internal::GetOwnedMessage(message_arena, direct_reference, submessage_arena);
    }
    set_has_direct_reference();
    _impl_.reference_type_.direct_reference_ = direct_reference;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.FieldReference.direct_reference)
}
void Expression_FieldReference::set_allocated_masked_reference(::substrait::Expression_MaskExpression* PROTOBUF_NULLABLE masked_reference) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_reference_type();
  if (masked_reference) {
    ::google::protobuf::Arena* submessage_arena = masked_reference->GetArena();
    if (message_arena != submessage_arena) {
      masked_reference = ::google::protobuf::internal::GetOwnedMessage(message_arena, masked_reference, submessage_arena);
    }
    set_has_masked_reference();
    _impl_.reference_type_.masked_reference_ = masked_reference;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.FieldReference.masked_reference)
}
void Expression_FieldReference::set_allocated_expression(::substrait::Expression* PROTOBUF_NULLABLE expression) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_root_type();
  if (expression) {
    ::google::protobuf::Arena* submessage_arena = expression->GetArena();
    if (message_arena != submessage_arena) {
      expression = ::google::protobuf::internal::GetOwnedMessage(message_arena, expression, submessage_arena);
    }
    set_has_expression();
    _impl_.root_type_.expression_ = expression;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.FieldReference.expression)
}
void Expression_FieldReference::set_allocated_root_reference(::substrait::Expression_FieldReference_RootReference* PROTOBUF_NULLABLE root_reference) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_root_type();
  if (root_reference) {
    ::google::protobuf::Arena* submessage_arena = root_reference->GetArena();
    if (message_arena != submessage_arena) {
      root_reference = ::google::protobuf::internal::GetOwnedMessage(message_arena, root_reference, submessage_arena);
    }
    set_has_root_reference();
    _impl_.root_type_.root_reference_ = root_reference;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.FieldReference.root_reference)
}
void Expression_FieldReference::set_allocated_outer_reference(::substrait::Expression_FieldReference_OuterReference* PROTOBUF_NULLABLE outer_reference) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_root_type();
  if (outer_reference) {
    ::google::protobuf::Arena* submessage_arena = outer_reference->GetArena();
    if (message_arena != submessage_arena) {
      outer_reference = ::google::protobuf::internal::GetOwnedMessage(message_arena, outer_reference, submessage_arena);
    }
    set_has_outer_reference();
    _impl_.root_type_.outer_reference_ = outer_reference;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.FieldReference.outer_reference)
}
Expression_FieldReference::Expression_FieldReference(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_FieldReference_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.FieldReference)
}
PROTOBUF_NDEBUG_INLINE Expression_FieldReference::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_FieldReference& from_msg)
      : reference_type_{},
        root_type_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0], from._oneof_case_[1]} {}

Expression_FieldReference::Expression_FieldReference(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression_FieldReference& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_FieldReference_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_FieldReference* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (reference_type_case()) {
    case REFERENCE_TYPE_NOT_SET:
      break;
      case kDirectReference:
        _impl_.reference_type_.direct_reference_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reference_type_.direct_reference_);
        break;
      case kMaskedReference:
        _impl_.reference_type_.masked_reference_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reference_type_.masked_reference_);
        break;
  }
  switch (root_type_case()) {
    case ROOT_TYPE_NOT_SET:
      break;
      case kExpression:
        _impl_.root_type_.expression_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.root_type_.expression_);
        break;
      case kRootReference:
        _impl_.root_type_.root_reference_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.root_type_.root_reference_);
        break;
      case kOuterReference:
        _impl_.root_type_.outer_reference_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.root_type_.outer_reference_);
        break;
  }

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.FieldReference)
}
PROTOBUF_NDEBUG_INLINE Expression_FieldReference::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : reference_type_{},
        root_type_{},
        _cached_size_{0},
        _oneof_case_{} {}

inline void Expression_FieldReference::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_FieldReference::~Expression_FieldReference() {
  // @@protoc_insertion_point(destructor:substrait.Expression.FieldReference)
  SharedDtor(*this);
}
inline void Expression_FieldReference::SharedDtor(MessageLite& self) {
  Expression_FieldReference& this_ = static_cast<Expression_FieldReference&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  if (this_.has_reference_type()) {
    this_.clear_reference_type();
  }
  if (this_.has_root_type()) {
    this_.clear_root_type();
  }
  this_._impl_.~Impl_();
}

void Expression_FieldReference::clear_reference_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.FieldReference)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (reference_type_case()) {
    case kDirectReference: {
      if (GetArena() == nullptr) {
        delete _impl_.reference_type_.direct_reference_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.reference_type_.direct_reference_);
      }
      break;
    }
    case kMaskedReference: {
      if (GetArena() == nullptr) {
        delete _impl_.reference_type_.masked_reference_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.reference_type_.masked_reference_);
      }
      break;
    }
    case REFERENCE_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REFERENCE_TYPE_NOT_SET;
}

void Expression_FieldReference::clear_root_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.FieldReference)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (root_type_case()) {
    case kExpression: {
      if (GetArena() == nullptr) {
        delete _impl_.root_type_.expression_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.root_type_.expression_);
      }
      break;
    }
    case kRootReference: {
      if (GetArena() == nullptr) {
        delete _impl_.root_type_.root_reference_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.root_type_.root_reference_);
      }
      break;
    }
    case kOuterReference: {
      if (GetArena() == nullptr) {
        delete _impl_.root_type_.outer_reference_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.root_type_.outer_reference_);
      }
      break;
    }
    case ROOT_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[1] = ROOT_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_FieldReference_class_data_ =
        Expression_FieldReference::InternalGenerateClassData_(Expression_FieldReference_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_FieldReference::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_FieldReference_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_FieldReference_class_data_.tc_table);
  return Expression_FieldReference_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_FieldReference::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_FieldReference_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_FieldReference_globals_));
  return Expression_FieldReference_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_FieldReference::ParseTableT_
    Expression_FieldReference::_table_ =
        Expression_FieldReference::InternalGenerateParseTable_(Expression_FieldReference_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_FieldReference::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.FieldReference)
  ::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_reference_type();
  clear_root_type();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Expression_FieldReference::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression_FieldReference& this_ = static_cast<const Expression_FieldReference&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression_FieldReference::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression_FieldReference& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression.FieldReference)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  switch (this_.reference_type_case()) {
    case kDirectReference: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.reference_type_.direct_reference_, this_._impl_.reference_type_.direct_reference_->GetCachedSize(), target,
          stream);
      break;
    }
    case kMaskedReference: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.reference_type_.masked_reference_, this_._impl_.reference_type_.masked_reference_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  switch (this_.root_type_case()) {
    case kExpression: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.root_type_.expression_, this_._impl_.root_type_.expression_->GetCachedSize(), target,
          stream);
      break;
    }
    case kRootReference: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          4, *this_._impl_.root_type_.root_reference_, this_._impl_.root_type_.root_reference_->GetCachedSize(), target,
          stream);
      break;
    }
    case kOuterReference: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          5, *this_._impl_.root_type_.outer_reference_, this_._impl_.root_type_.outer_reference_->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.Expression.FieldReference)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_FieldReference::ByteSizeLong(const MessageLite& base) {
  const Expression_FieldReference& this_ = static_cast<const Expression_FieldReference&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_FieldReference::ByteSizeLong() const {
  const Expression_FieldReference& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.FieldReference)
  ::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_.reference_type_case()) {
    // .substrait.Expression.ReferenceSegment direct_reference = 1;
    case kDirectReference: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.reference_type_.direct_reference_);
      break;
    }
    // .substrait.Expression.MaskExpression masked_reference = 2;
    case kMaskedReference: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.reference_type_.masked_reference_);
      break;
    }
    case REFERENCE_TYPE_NOT_SET: {
      break;
    }
  }
  switch (this_.root_type_case()) {
    // .substrait.Expression expression = 3;
    case kExpression: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.root_type_.expression_);
      break;
    }
    // .substrait.Expression.FieldReference.RootReference root_reference = 4;
    case kRootReference: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.root_type_.root_reference_);
      break;
    }
    // .substrait.Expression.FieldReference.OuterReference outer_reference = 5;
    case kOuterReference: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.root_type_.outer_reference_);
      break;
    }
    case ROOT_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_FieldReference::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_FieldReference*>(&to_msg);
  auto& from = static_cast<const Expression_FieldReference&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.FieldReference)
  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_reference_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kDirectReference: {
        if (oneof_needs_init) {
          _this->_impl_.reference_type_.direct_reference_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reference_type_.direct_reference_);
        } else {
          _this->_impl_.reference_type_.direct_reference_->MergeFrom(*from._impl_.reference_type_.direct_reference_);
        }
        break;
      }
      case kMaskedReference: {
        if (oneof_needs_init) {
          _this->_impl_.reference_type_.masked_reference_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reference_type_.masked_reference_);
        } else {
          _this->_impl_.reference_type_.masked_reference_->MergeFrom(*from._impl_.reference_type_.masked_reference_);
        }
        break;
      }
      case REFERENCE_TYPE_NOT_SET:
        break;
    }
  }
  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[1]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[1];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_root_type();
      }
      _this->_impl_._oneof_case_[1] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kExpression: {
        if (oneof_needs_init) {
          _this->_impl_.root_type_.expression_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.root_type_.expression_);
        } else {
          _this->_impl_.root_type_.expression_->MergeFrom(*from._impl_.root_type_.expression_);
        }
        break;
      }
      case kRootReference: {
        if (oneof_needs_init) {
          _this->_impl_.root_type_.root_reference_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.root_type_.root_reference_);
        } else {
          _this->_impl_.root_type_.root_reference_->MergeFrom(*from._impl_.root_type_.root_reference_);
        }
        break;
      }
      case kOuterReference: {
        if (oneof_needs_init) {
          _this->_impl_.root_type_.outer_reference_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.root_type_.outer_reference_);
        } else {
          _this->_impl_.root_type_.outer_reference_->MergeFrom(*from._impl_.root_type_.outer_reference_);
        }
        break;
      }
      case ROOT_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_FieldReference::CopyFrom(const Expression_FieldReference& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.FieldReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression_FieldReference::InternalSwap(Expression_FieldReference* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.reference_type_, other->_impl_.reference_type_);
  swap(_impl_.root_type_, other->_impl_.root_type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
  swap(_impl_._oneof_case_[1], other->_impl_._oneof_case_[1]);
}

::google::protobuf::Metadata Expression_FieldReference::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Expression_Subquery_Scalar::Expression_Subquery_Scalar(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Subquery_Scalar_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Subquery.Scalar)
}
PROTOBUF_NDEBUG_INLINE Expression_Subquery_Scalar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_Subquery_Scalar& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

Expression_Subquery_Scalar::Expression_Subquery_Scalar(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression_Subquery_Scalar& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Subquery_Scalar_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Subquery_Scalar* 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_.input_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.Subquery.Scalar)
}
PROTOBUF_NDEBUG_INLINE Expression_Subquery_Scalar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Expression_Subquery_Scalar::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.input_ = {};
}
Expression_Subquery_Scalar::~Expression_Subquery_Scalar() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Subquery.Scalar)
  SharedDtor(*this);
}
inline void Expression_Subquery_Scalar::SharedDtor(MessageLite& self) {
  Expression_Subquery_Scalar& this_ = static_cast<Expression_Subquery_Scalar&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.input_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Subquery_Scalar_class_data_ =
        Expression_Subquery_Scalar::InternalGenerateClassData_(Expression_Subquery_Scalar_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Subquery_Scalar::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Subquery_Scalar_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Subquery_Scalar_class_data_.tc_table);
  return Expression_Subquery_Scalar_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Subquery_Scalar::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Subquery_Scalar_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Subquery_Scalar_globals_));
  return Expression_Subquery_Scalar_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Subquery_Scalar::ParseTableT_
    Expression_Subquery_Scalar::_table_ =
        Expression_Subquery_Scalar::InternalGenerateParseTable_(Expression_Subquery_Scalar_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Subquery_Scalar::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Subquery.Scalar)
  ::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_.input_ != nullptr);
    _impl_.input_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Expression_Subquery_Scalar::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression_Subquery_Scalar& this_ = static_cast<const Expression_Subquery_Scalar&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression_Subquery_Scalar::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression_Subquery_Scalar& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression.Subquery.Scalar)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.Rel input = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.input_, this_._impl_.input_->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.Expression.Subquery.Scalar)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Subquery_Scalar::ByteSizeLong(const MessageLite& base) {
  const Expression_Subquery_Scalar& this_ = static_cast<const Expression_Subquery_Scalar&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Subquery_Scalar::ByteSizeLong() const {
  const Expression_Subquery_Scalar& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Subquery.Scalar)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // .substrait.Rel input = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Subquery_Scalar::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Subquery_Scalar*>(&to_msg);
  auto& from = static_cast<const Expression_Subquery_Scalar&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Subquery.Scalar)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(from._impl_.input_ != nullptr);
    if (_this->_impl_.input_ == nullptr) {
      _this->_impl_.input_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_);
    } else {
      _this->_impl_.input_->MergeFrom(*from._impl_.input_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_Subquery_Scalar::CopyFrom(const Expression_Subquery_Scalar& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.Subquery.Scalar)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression_Subquery_Scalar::InternalSwap(Expression_Subquery_Scalar* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.input_, other->_impl_.input_);
}

::google::protobuf::Metadata Expression_Subquery_Scalar::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Expression_Subquery_InPredicate::Expression_Subquery_InPredicate(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Subquery_InPredicate_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Subquery.InPredicate)
}
PROTOBUF_NDEBUG_INLINE Expression_Subquery_InPredicate::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_Subquery_InPredicate& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        needles_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::Expression_Subquery_InPredicate,
              PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_InPredicate, _impl_.needles_)>()
          , from.needles_
        }
     {}

Expression_Subquery_InPredicate::Expression_Subquery_InPredicate(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression_Subquery_InPredicate& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Subquery_InPredicate_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Subquery_InPredicate* 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_.haystack_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.haystack_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.Subquery.InPredicate)
}
PROTOBUF_NDEBUG_INLINE Expression_Subquery_InPredicate::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        needles_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::Expression_Subquery_InPredicate,
            PROTOBUF_FIELD_OFFSET(::substrait::Expression_Subquery_InPredicate, _impl_.needles_)>()
         }
     {}

inline void Expression_Subquery_InPredicate::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.haystack_ = {};
}
Expression_Subquery_InPredicate::~Expression_Subquery_InPredicate() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Subquery.InPredicate)
  SharedDtor(*this);
}
inline void Expression_Subquery_InPredicate::SharedDtor(MessageLite& self) {
  Expression_Subquery_InPredicate& this_ = static_cast<Expression_Subquery_InPredicate&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.haystack_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Subquery_InPredicate_class_data_ =
        Expression_Subquery_InPredicate::InternalGenerateClassData_(Expression_Subquery_InPredicate_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Subquery_InPredicate::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Subquery_InPredicate_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Subquery_InPredicate_class_data_.tc_table);
  return Expression_Subquery_InPredicate_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Subquery_InPredicate::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Subquery_InPredicate_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Subquery_InPredicate_globals_));
  return Expression_Subquery_InPredicate_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Subquery_InPredicate::ParseTableT_
    Expression_Subquery_InPredicate::_table_ =
        Expression_Subquery_InPredicate::InternalGenerateParseTable_(Expression_Subquery_InPredicate_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Subquery_InPredicate::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Subquery.InPredicate)
  ::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_.needles_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.haystack_ != nullptr);
      _impl_.haystack_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Expression_Subquery_InPredicate::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression_Subquery_InPredicate& this_ = static_cast<const Expression_Subquery_InPredicate&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression_Subquery_InPredicate::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression_Subquery_InPredicate& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression.Subquery.InPredicate)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .substrait.Expression needles = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_needles_size());
         i < n; i++) {
      const auto& repfield = this_._internal_needles().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.Rel haystack = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.haystack_, this_._impl_.haystack_->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.Expression.Subquery.InPredicate)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Subquery_InPredicate::ByteSizeLong(const MessageLite& base) {
  const Expression_Subquery_InPredicate& this_ = static_cast<const Expression_Subquery_InPredicate&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Subquery_InPredicate::ByteSizeLong() const {
  const Expression_Subquery_InPredicate& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Subquery.InPredicate)
  ::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 .substrait.Expression needles = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_needles_size();
      for (const auto& msg : this_._internal_needles()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.Rel haystack = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.haystack_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Subquery_InPredicate::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Subquery_InPredicate*>(&to_msg);
  auto& from = static_cast<const Expression_Subquery_InPredicate&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Subquery.InPredicate)
  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_needles()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_needles());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.haystack_ != nullptr);
      if (_this->_impl_.haystack_ == nullptr) {
        _this->_impl_.haystack_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.haystack_);
      } else {
        _this->_impl_.haystack_->MergeFrom(*from._impl_.haystack_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_Subquery_InPredicate::CopyFrom(const Expression_Subquery_InPredicate& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.Subquery.InPredicate)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression_Subquery_InPredicate::InternalSwap(Expression_Subquery_InPredicate* 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_.needles_.InternalSwap(&other->_impl_.needles_);
  swap(_impl_.haystack_, other->_impl_.haystack_);
}

::google::protobuf::Metadata Expression_Subquery_InPredicate::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Expression_Subquery_SetPredicate::Expression_Subquery_SetPredicate(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Subquery_SetPredicate_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Subquery.SetPredicate)
}
PROTOBUF_NDEBUG_INLINE Expression_Subquery_SetPredicate::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_Subquery_SetPredicate& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

Expression_Subquery_SetPredicate::Expression_Subquery_SetPredicate(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression_Subquery_SetPredicate& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Subquery_SetPredicate_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Subquery_SetPredicate* 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_.tuples_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.tuples_)
                : nullptr;
  _impl_.predicate_op_ = from._impl_.predicate_op_;

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.Subquery.SetPredicate)
}
PROTOBUF_NDEBUG_INLINE Expression_Subquery_SetPredicate::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Expression_Subquery_SetPredicate::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, tuples_),
           0,
           offsetof(Impl_, predicate_op_) -
               offsetof(Impl_, tuples_) +
               sizeof(Impl_::predicate_op_));
}
Expression_Subquery_SetPredicate::~Expression_Subquery_SetPredicate() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Subquery.SetPredicate)
  SharedDtor(*this);
}
inline void Expression_Subquery_SetPredicate::SharedDtor(MessageLite& self) {
  Expression_Subquery_SetPredicate& this_ = static_cast<Expression_Subquery_SetPredicate&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.tuples_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Subquery_SetPredicate_class_data_ =
        Expression_Subquery_SetPredicate::InternalGenerateClassData_(Expression_Subquery_SetPredicate_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Subquery_SetPredicate::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Subquery_SetPredicate_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Subquery_SetPredicate_class_data_.tc_table);
  return Expression_Subquery_SetPredicate_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Subquery_SetPredicate::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Subquery_SetPredicate_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Subquery_SetPredicate_globals_));
  return Expression_Subquery_SetPredicate_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Subquery_SetPredicate::ParseTableT_
    Expression_Subquery_SetPredicate::_table_ =
        Expression_Subquery_SetPredicate::InternalGenerateParseTable_(Expression_Subquery_SetPredicate_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Subquery_SetPredicate::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Subquery.SetPredicate)
  ::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_.tuples_ != nullptr);
    _impl_.tuples_->Clear();
  }
  _impl_.predicate_op_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Expression_Subquery_SetPredicate::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression_Subquery_SetPredicate& this_ = static_cast<const Expression_Subquery_SetPredicate&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression_Subquery_SetPredicate::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression_Subquery_SetPredicate& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression.Subquery.SetPredicate)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.Expression.Subquery.SetPredicate.PredicateOp predicate_op = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_predicate_op() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          1, this_._internal_predicate_op(), target);
    }
  }

  // .substrait.Rel tuples = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.tuples_, this_._impl_.tuples_->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.Expression.Subquery.SetPredicate)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Subquery_SetPredicate::ByteSizeLong(const MessageLite& base) {
  const Expression_Subquery_SetPredicate& this_ = static_cast<const Expression_Subquery_SetPredicate&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Subquery_SetPredicate::ByteSizeLong() const {
  const Expression_Subquery_SetPredicate& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Subquery.SetPredicate)
  ::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)) {
    // .substrait.Rel tuples = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.tuples_);
    }
    // .substrait.Expression.Subquery.SetPredicate.PredicateOp predicate_op = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_predicate_op() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_predicate_op());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Subquery_SetPredicate::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Subquery_SetPredicate*>(&to_msg);
  auto& from = static_cast<const Expression_Subquery_SetPredicate&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Subquery.SetPredicate)
  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)) {
      ABSL_DCHECK(from._impl_.tuples_ != nullptr);
      if (_this->_impl_.tuples_ == nullptr) {
        _this->_impl_.tuples_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.tuples_);
      } else {
        _this->_impl_.tuples_->MergeFrom(*from._impl_.tuples_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_predicate_op() != 0) {
        _this->_impl_.predicate_op_ = from._impl_.predicate_op_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_Subquery_SetPredicate::CopyFrom(const Expression_Subquery_SetPredicate& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.Subquery.SetPredicate)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression_Subquery_SetPredicate::InternalSwap(Expression_Subquery_SetPredicate* 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(Expression_Subquery_SetPredicate, _impl_.predicate_op_)
      + sizeof(Expression_Subquery_SetPredicate::_impl_.predicate_op_)
      - PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetPredicate, _impl_.tuples_)>(
          reinterpret_cast<char*>(&_impl_.tuples_),
          reinterpret_cast<char*>(&other->_impl_.tuples_));
}

::google::protobuf::Metadata Expression_Subquery_SetPredicate::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Expression_Subquery_SetComparison::Expression_Subquery_SetComparison(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Subquery_SetComparison_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Subquery.SetComparison)
}
PROTOBUF_NDEBUG_INLINE Expression_Subquery_SetComparison::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_Subquery_SetComparison& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

Expression_Subquery_SetComparison::Expression_Subquery_SetComparison(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression_Subquery_SetComparison& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Subquery_SetComparison_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Subquery_SetComparison* 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_.left_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_)
                : nullptr;
  _impl_.right_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, reduction_op_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, reduction_op_),
           offsetof(Impl_, comparison_op_) -
               offsetof(Impl_, reduction_op_) +
               sizeof(Impl_::comparison_op_));

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.Subquery.SetComparison)
}
PROTOBUF_NDEBUG_INLINE Expression_Subquery_SetComparison::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Expression_Subquery_SetComparison::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, left_),
           0,
           offsetof(Impl_, comparison_op_) -
               offsetof(Impl_, left_) +
               sizeof(Impl_::comparison_op_));
}
Expression_Subquery_SetComparison::~Expression_Subquery_SetComparison() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Subquery.SetComparison)
  SharedDtor(*this);
}
inline void Expression_Subquery_SetComparison::SharedDtor(MessageLite& self) {
  Expression_Subquery_SetComparison& this_ = static_cast<Expression_Subquery_SetComparison&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.left_;
  delete this_._impl_.right_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Subquery_SetComparison_class_data_ =
        Expression_Subquery_SetComparison::InternalGenerateClassData_(Expression_Subquery_SetComparison_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Subquery_SetComparison::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Subquery_SetComparison_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Subquery_SetComparison_class_data_.tc_table);
  return Expression_Subquery_SetComparison_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Subquery_SetComparison::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Subquery_SetComparison_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Subquery_SetComparison_globals_));
  return Expression_Subquery_SetComparison_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Subquery_SetComparison::ParseTableT_
    Expression_Subquery_SetComparison::_table_ =
        Expression_Subquery_SetComparison::InternalGenerateParseTable_(Expression_Subquery_SetComparison_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Subquery_SetComparison::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Subquery.SetComparison)
  ::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_.left_ != nullptr);
      _impl_.left_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.right_ != nullptr);
      _impl_.right_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000cU)) {
    ::memset(&_impl_.reduction_op_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.comparison_op_) -
        reinterpret_cast<char*>(&_impl_.reduction_op_)) + sizeof(_impl_.comparison_op_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Expression_Subquery_SetComparison::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression_Subquery_SetComparison& this_ = static_cast<const Expression_Subquery_SetComparison&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression_Subquery_SetComparison::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression_Subquery_SetComparison& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression.Subquery.SetComparison)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.Expression.Subquery.SetComparison.ReductionOp reduction_op = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_reduction_op() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          1, this_._internal_reduction_op(), target);
    }
  }

  // .substrait.Expression.Subquery.SetComparison.ComparisonOp comparison_op = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_comparison_op() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_comparison_op(), target);
    }
  }

  // .substrait.Expression left = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.left_, this_._impl_.left_->GetCachedSize(), target,
        stream);
  }

  // .substrait.Rel right = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.right_, this_._impl_.right_->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.Expression.Subquery.SetComparison)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Subquery_SetComparison::ByteSizeLong(const MessageLite& base) {
  const Expression_Subquery_SetComparison& this_ = static_cast<const Expression_Subquery_SetComparison&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Subquery_SetComparison::ByteSizeLong() const {
  const Expression_Subquery_SetComparison& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Subquery.SetComparison)
  ::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.Expression left = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.left_);
    }
    // .substrait.Rel right = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.right_);
    }
    // .substrait.Expression.Subquery.SetComparison.ReductionOp reduction_op = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_reduction_op() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_reduction_op());
      }
    }
    // .substrait.Expression.Subquery.SetComparison.ComparisonOp comparison_op = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_comparison_op() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_comparison_op());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Subquery_SetComparison::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Subquery_SetComparison*>(&to_msg);
  auto& from = static_cast<const Expression_Subquery_SetComparison&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Subquery.SetComparison)
  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_.left_ != nullptr);
      if (_this->_impl_.left_ == nullptr) {
        _this->_impl_.left_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.left_);
      } else {
        _this->_impl_.left_->MergeFrom(*from._impl_.left_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.right_ != nullptr);
      if (_this->_impl_.right_ == nullptr) {
        _this->_impl_.right_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.right_);
      } else {
        _this->_impl_.right_->MergeFrom(*from._impl_.right_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_reduction_op() != 0) {
        _this->_impl_.reduction_op_ = from._impl_.reduction_op_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_comparison_op() != 0) {
        _this->_impl_.comparison_op_ = from._impl_.comparison_op_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_Subquery_SetComparison::CopyFrom(const Expression_Subquery_SetComparison& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.Subquery.SetComparison)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression_Subquery_SetComparison::InternalSwap(Expression_Subquery_SetComparison* 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(Expression_Subquery_SetComparison, _impl_.comparison_op_)
      + sizeof(Expression_Subquery_SetComparison::_impl_.comparison_op_)
      - PROTOBUF_FIELD_OFFSET(Expression_Subquery_SetComparison, _impl_.left_)>(
          reinterpret_cast<char*>(&_impl_.left_),
          reinterpret_cast<char*>(&other->_impl_.left_));
}

::google::protobuf::Metadata Expression_Subquery_SetComparison::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void Expression_Subquery::set_allocated_scalar(::substrait::Expression_Subquery_Scalar* PROTOBUF_NULLABLE scalar) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_subquery_type();
  if (scalar) {
    ::google::protobuf::Arena* submessage_arena = scalar->GetArena();
    if (message_arena != submessage_arena) {
      scalar = ::google::protobuf::internal::GetOwnedMessage(message_arena, scalar, submessage_arena);
    }
    set_has_scalar();
    _impl_.subquery_type_.scalar_ = scalar;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Subquery.scalar)
}
void Expression_Subquery::set_allocated_in_predicate(::substrait::Expression_Subquery_InPredicate* PROTOBUF_NULLABLE in_predicate) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_subquery_type();
  if (in_predicate) {
    ::google::protobuf::Arena* submessage_arena = in_predicate->GetArena();
    if (message_arena != submessage_arena) {
      in_predicate = ::google::protobuf::internal::GetOwnedMessage(message_arena, in_predicate, submessage_arena);
    }
    set_has_in_predicate();
    _impl_.subquery_type_.in_predicate_ = in_predicate;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Subquery.in_predicate)
}
void Expression_Subquery::set_allocated_set_predicate(::substrait::Expression_Subquery_SetPredicate* PROTOBUF_NULLABLE set_predicate) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_subquery_type();
  if (set_predicate) {
    ::google::protobuf::Arena* submessage_arena = set_predicate->GetArena();
    if (message_arena != submessage_arena) {
      set_predicate = ::google::protobuf::internal::GetOwnedMessage(message_arena, set_predicate, submessage_arena);
    }
    set_has_set_predicate();
    _impl_.subquery_type_.set_predicate_ = set_predicate;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Subquery.set_predicate)
}
void Expression_Subquery::set_allocated_set_comparison(::substrait::Expression_Subquery_SetComparison* PROTOBUF_NULLABLE set_comparison) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_subquery_type();
  if (set_comparison) {
    ::google::protobuf::Arena* submessage_arena = set_comparison->GetArena();
    if (message_arena != submessage_arena) {
      set_comparison = ::google::protobuf::internal::GetOwnedMessage(message_arena, set_comparison, submessage_arena);
    }
    set_has_set_comparison();
    _impl_.subquery_type_.set_comparison_ = set_comparison;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.Subquery.set_comparison)
}
Expression_Subquery::Expression_Subquery(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Subquery_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression.Subquery)
}
PROTOBUF_NDEBUG_INLINE Expression_Subquery::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression_Subquery& from_msg)
      : subquery_type_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

Expression_Subquery::Expression_Subquery(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression_Subquery& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_Subquery_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression_Subquery* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (subquery_type_case()) {
    case SUBQUERY_TYPE_NOT_SET:
      break;
      case kScalar:
        _impl_.subquery_type_.scalar_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.subquery_type_.scalar_);
        break;
      case kInPredicate:
        _impl_.subquery_type_.in_predicate_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.subquery_type_.in_predicate_);
        break;
      case kSetPredicate:
        _impl_.subquery_type_.set_predicate_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.subquery_type_.set_predicate_);
        break;
      case kSetComparison:
        _impl_.subquery_type_.set_comparison_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.subquery_type_.set_comparison_);
        break;
  }

  // @@protoc_insertion_point(copy_constructor:substrait.Expression.Subquery)
}
PROTOBUF_NDEBUG_INLINE Expression_Subquery::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : subquery_type_{},
        _cached_size_{0},
        _oneof_case_{} {}

inline void Expression_Subquery::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression_Subquery::~Expression_Subquery() {
  // @@protoc_insertion_point(destructor:substrait.Expression.Subquery)
  SharedDtor(*this);
}
inline void Expression_Subquery::SharedDtor(MessageLite& self) {
  Expression_Subquery& this_ = static_cast<Expression_Subquery&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  if (this_.has_subquery_type()) {
    this_.clear_subquery_type();
  }
  this_._impl_.~Impl_();
}

void Expression_Subquery::clear_subquery_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression.Subquery)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (subquery_type_case()) {
    case kScalar: {
      if (GetArena() == nullptr) {
        delete _impl_.subquery_type_.scalar_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.subquery_type_.scalar_);
      }
      break;
    }
    case kInPredicate: {
      if (GetArena() == nullptr) {
        delete _impl_.subquery_type_.in_predicate_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.subquery_type_.in_predicate_);
      }
      break;
    }
    case kSetPredicate: {
      if (GetArena() == nullptr) {
        delete _impl_.subquery_type_.set_predicate_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.subquery_type_.set_predicate_);
      }
      break;
    }
    case kSetComparison: {
      if (GetArena() == nullptr) {
        delete _impl_.subquery_type_.set_comparison_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.subquery_type_.set_comparison_);
      }
      break;
    }
    case SUBQUERY_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = SUBQUERY_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_Subquery_class_data_ =
        Expression_Subquery::InternalGenerateClassData_(Expression_Subquery_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Subquery::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Subquery_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_Subquery_class_data_.tc_table);
  return Expression_Subquery_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression_Subquery::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_Subquery_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_Subquery_globals_));
  return Expression_Subquery_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression_Subquery::ParseTableT_
    Expression_Subquery::_table_ =
        Expression_Subquery::InternalGenerateParseTable_(Expression_Subquery_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression_Subquery::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression.Subquery)
  ::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_subquery_type();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Expression_Subquery::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression_Subquery& this_ = static_cast<const Expression_Subquery&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression_Subquery::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression_Subquery& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression.Subquery)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  switch (this_.subquery_type_case()) {
    case kScalar: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.subquery_type_.scalar_, this_._impl_.subquery_type_.scalar_->GetCachedSize(), target,
          stream);
      break;
    }
    case kInPredicate: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.subquery_type_.in_predicate_, this_._impl_.subquery_type_.in_predicate_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSetPredicate: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.subquery_type_.set_predicate_, this_._impl_.subquery_type_.set_predicate_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSetComparison: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          4, *this_._impl_.subquery_type_.set_comparison_, this_._impl_.subquery_type_.set_comparison_->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.Expression.Subquery)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression_Subquery::ByteSizeLong(const MessageLite& base) {
  const Expression_Subquery& this_ = static_cast<const Expression_Subquery&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression_Subquery::ByteSizeLong() const {
  const Expression_Subquery& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression.Subquery)
  ::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_.subquery_type_case()) {
    // .substrait.Expression.Subquery.Scalar scalar = 1;
    case kScalar: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.subquery_type_.scalar_);
      break;
    }
    // .substrait.Expression.Subquery.InPredicate in_predicate = 2;
    case kInPredicate: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.subquery_type_.in_predicate_);
      break;
    }
    // .substrait.Expression.Subquery.SetPredicate set_predicate = 3;
    case kSetPredicate: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.subquery_type_.set_predicate_);
      break;
    }
    // .substrait.Expression.Subquery.SetComparison set_comparison = 4;
    case kSetComparison: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.subquery_type_.set_comparison_);
      break;
    }
    case SUBQUERY_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression_Subquery::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression_Subquery*>(&to_msg);
  auto& from = static_cast<const Expression_Subquery&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression.Subquery)
  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_subquery_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kScalar: {
        if (oneof_needs_init) {
          _this->_impl_.subquery_type_.scalar_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.subquery_type_.scalar_);
        } else {
          _this->_impl_.subquery_type_.scalar_->MergeFrom(*from._impl_.subquery_type_.scalar_);
        }
        break;
      }
      case kInPredicate: {
        if (oneof_needs_init) {
          _this->_impl_.subquery_type_.in_predicate_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.subquery_type_.in_predicate_);
        } else {
          _this->_impl_.subquery_type_.in_predicate_->MergeFrom(*from._impl_.subquery_type_.in_predicate_);
        }
        break;
      }
      case kSetPredicate: {
        if (oneof_needs_init) {
          _this->_impl_.subquery_type_.set_predicate_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.subquery_type_.set_predicate_);
        } else {
          _this->_impl_.subquery_type_.set_predicate_->MergeFrom(*from._impl_.subquery_type_.set_predicate_);
        }
        break;
      }
      case kSetComparison: {
        if (oneof_needs_init) {
          _this->_impl_.subquery_type_.set_comparison_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.subquery_type_.set_comparison_);
        } else {
          _this->_impl_.subquery_type_.set_comparison_->MergeFrom(*from._impl_.subquery_type_.set_comparison_);
        }
        break;
      }
      case SUBQUERY_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression_Subquery::CopyFrom(const Expression_Subquery& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression.Subquery)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression_Subquery::InternalSwap(Expression_Subquery* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.subquery_type_, other->_impl_.subquery_type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::google::protobuf::Metadata Expression_Subquery::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void Expression::set_allocated_literal(::substrait::Expression_Literal* PROTOBUF_NULLABLE literal) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (literal) {
    ::google::protobuf::Arena* submessage_arena = literal->GetArena();
    if (message_arena != submessage_arena) {
      literal = ::google::protobuf::internal::GetOwnedMessage(message_arena, literal, submessage_arena);
    }
    set_has_literal();
    _impl_.rex_type_.literal_ = literal;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.literal)
}
void Expression::set_allocated_selection(::substrait::Expression_FieldReference* PROTOBUF_NULLABLE selection) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (selection) {
    ::google::protobuf::Arena* submessage_arena = selection->GetArena();
    if (message_arena != submessage_arena) {
      selection = ::google::protobuf::internal::GetOwnedMessage(message_arena, selection, submessage_arena);
    }
    set_has_selection();
    _impl_.rex_type_.selection_ = selection;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.selection)
}
void Expression::set_allocated_scalar_function(::substrait::Expression_ScalarFunction* PROTOBUF_NULLABLE scalar_function) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (scalar_function) {
    ::google::protobuf::Arena* submessage_arena = scalar_function->GetArena();
    if (message_arena != submessage_arena) {
      scalar_function = ::google::protobuf::internal::GetOwnedMessage(message_arena, scalar_function, submessage_arena);
    }
    set_has_scalar_function();
    _impl_.rex_type_.scalar_function_ = scalar_function;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.scalar_function)
}
void Expression::set_allocated_window_function(::substrait::Expression_WindowFunction* PROTOBUF_NULLABLE window_function) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (window_function) {
    ::google::protobuf::Arena* submessage_arena = window_function->GetArena();
    if (message_arena != submessage_arena) {
      window_function = ::google::protobuf::internal::GetOwnedMessage(message_arena, window_function, submessage_arena);
    }
    set_has_window_function();
    _impl_.rex_type_.window_function_ = window_function;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.window_function)
}
void Expression::set_allocated_if_then(::substrait::Expression_IfThen* PROTOBUF_NULLABLE if_then) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (if_then) {
    ::google::protobuf::Arena* submessage_arena = if_then->GetArena();
    if (message_arena != submessage_arena) {
      if_then = ::google::protobuf::internal::GetOwnedMessage(message_arena, if_then, submessage_arena);
    }
    set_has_if_then();
    _impl_.rex_type_.if_then_ = if_then;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.if_then)
}
void Expression::set_allocated_switch_expression(::substrait::Expression_SwitchExpression* PROTOBUF_NULLABLE switch_expression) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (switch_expression) {
    ::google::protobuf::Arena* submessage_arena = switch_expression->GetArena();
    if (message_arena != submessage_arena) {
      switch_expression = ::google::protobuf::internal::GetOwnedMessage(message_arena, switch_expression, submessage_arena);
    }
    set_has_switch_expression();
    _impl_.rex_type_.switch_expression_ = switch_expression;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.switch_expression)
}
void Expression::set_allocated_singular_or_list(::substrait::Expression_SingularOrList* PROTOBUF_NULLABLE singular_or_list) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (singular_or_list) {
    ::google::protobuf::Arena* submessage_arena = singular_or_list->GetArena();
    if (message_arena != submessage_arena) {
      singular_or_list = ::google::protobuf::internal::GetOwnedMessage(message_arena, singular_or_list, submessage_arena);
    }
    set_has_singular_or_list();
    _impl_.rex_type_.singular_or_list_ = singular_or_list;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.singular_or_list)
}
void Expression::set_allocated_multi_or_list(::substrait::Expression_MultiOrList* PROTOBUF_NULLABLE multi_or_list) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (multi_or_list) {
    ::google::protobuf::Arena* submessage_arena = multi_or_list->GetArena();
    if (message_arena != submessage_arena) {
      multi_or_list = ::google::protobuf::internal::GetOwnedMessage(message_arena, multi_or_list, submessage_arena);
    }
    set_has_multi_or_list();
    _impl_.rex_type_.multi_or_list_ = multi_or_list;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.multi_or_list)
}
void Expression::set_allocated_cast(::substrait::Expression_Cast* PROTOBUF_NULLABLE cast) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (cast) {
    ::google::protobuf::Arena* submessage_arena = cast->GetArena();
    if (message_arena != submessage_arena) {
      cast = ::google::protobuf::internal::GetOwnedMessage(message_arena, cast, submessage_arena);
    }
    set_has_cast();
    _impl_.rex_type_.cast_ = cast;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.cast)
}
void Expression::set_allocated_subquery(::substrait::Expression_Subquery* PROTOBUF_NULLABLE subquery) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (subquery) {
    ::google::protobuf::Arena* submessage_arena = subquery->GetArena();
    if (message_arena != submessage_arena) {
      subquery = ::google::protobuf::internal::GetOwnedMessage(message_arena, subquery, submessage_arena);
    }
    set_has_subquery();
    _impl_.rex_type_.subquery_ = subquery;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.subquery)
}
void Expression::set_allocated_nested(::substrait::Expression_Nested* PROTOBUF_NULLABLE nested) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (nested) {
    ::google::protobuf::Arena* submessage_arena = nested->GetArena();
    if (message_arena != submessage_arena) {
      nested = ::google::protobuf::internal::GetOwnedMessage(message_arena, nested, submessage_arena);
    }
    set_has_nested();
    _impl_.rex_type_.nested_ = nested;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.nested)
}
void Expression::set_allocated_enum_(::substrait::Expression_Enum* PROTOBUF_NULLABLE enum_) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_rex_type();
  if (enum_) {
    ::google::protobuf::Arena* submessage_arena = enum_->GetArena();
    if (message_arena != submessage_arena) {
      enum_ = ::google::protobuf::internal::GetOwnedMessage(message_arena, enum_, submessage_arena);
    }
    set_has_enum_();
    _impl_.rex_type_.enum__ = enum_;
  }
  // @@protoc_insertion_point(field_set_allocated:substrait.Expression.enum)
}
Expression::Expression(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.Expression)
}
PROTOBUF_NDEBUG_INLINE Expression::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::Expression& from_msg)
      : rex_type_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

Expression::Expression(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Expression& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Expression_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Expression* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (rex_type_case()) {
    case REX_TYPE_NOT_SET:
      break;
      case kLiteral:
        _impl_.rex_type_.literal_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.literal_);
        break;
      case kSelection:
        _impl_.rex_type_.selection_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.selection_);
        break;
      case kScalarFunction:
        _impl_.rex_type_.scalar_function_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.scalar_function_);
        break;
      case kWindowFunction:
        _impl_.rex_type_.window_function_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.window_function_);
        break;
      case kIfThen:
        _impl_.rex_type_.if_then_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.if_then_);
        break;
      case kSwitchExpression:
        _impl_.rex_type_.switch_expression_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.switch_expression_);
        break;
      case kSingularOrList:
        _impl_.rex_type_.singular_or_list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.singular_or_list_);
        break;
      case kMultiOrList:
        _impl_.rex_type_.multi_or_list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.multi_or_list_);
        break;
      case kCast:
        _impl_.rex_type_.cast_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.cast_);
        break;
      case kSubquery:
        _impl_.rex_type_.subquery_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.subquery_);
        break;
      case kNested:
        _impl_.rex_type_.nested_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.nested_);
        break;
      case kEnum:
        _impl_.rex_type_.enum__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.enum__);
        break;
  }

  // @@protoc_insertion_point(copy_constructor:substrait.Expression)
}
PROTOBUF_NDEBUG_INLINE Expression::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : rex_type_{},
        _cached_size_{0},
        _oneof_case_{} {}

inline void Expression::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Expression::~Expression() {
  // @@protoc_insertion_point(destructor:substrait.Expression)
  SharedDtor(*this);
}
inline void Expression::SharedDtor(MessageLite& self) {
  Expression& this_ = static_cast<Expression&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  if (this_.has_rex_type()) {
    this_.clear_rex_type();
  }
  this_._impl_.~Impl_();
}

void Expression::clear_rex_type() {
// @@protoc_insertion_point(one_of_clear_start:substrait.Expression)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (rex_type_case()) {
    case kLiteral: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.literal_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.literal_);
      }
      break;
    }
    case kSelection: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.selection_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.selection_);
      }
      break;
    }
    case kScalarFunction: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.scalar_function_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.scalar_function_);
      }
      break;
    }
    case kWindowFunction: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.window_function_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.window_function_);
      }
      break;
    }
    case kIfThen: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.if_then_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.if_then_);
      }
      break;
    }
    case kSwitchExpression: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.switch_expression_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.switch_expression_);
      }
      break;
    }
    case kSingularOrList: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.singular_or_list_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.singular_or_list_);
      }
      break;
    }
    case kMultiOrList: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.multi_or_list_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.multi_or_list_);
      }
      break;
    }
    case kCast: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.cast_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.cast_);
      }
      break;
    }
    case kSubquery: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.subquery_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.subquery_);
      }
      break;
    }
    case kNested: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.nested_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.nested_);
      }
      break;
    }
    case kEnum: {
      if (GetArena() == nullptr) {
        delete _impl_.rex_type_.enum__;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.rex_type_.enum__);
      }
      break;
    }
    case REX_TYPE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = REX_TYPE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Expression_class_data_ =
        Expression::InternalGenerateClassData_(Expression_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Expression_class_data_.tc_table);
  return Expression_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Expression::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Expression_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Expression_globals_));
  return Expression_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Expression::ParseTableT_
    Expression::_table_ =
        Expression::InternalGenerateParseTable_(Expression_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Expression::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.Expression)
  ::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_rex_type();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Expression::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Expression& this_ = static_cast<const Expression&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Expression::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Expression& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.Expression)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  switch (this_.rex_type_case()) {
    case kLiteral: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.rex_type_.literal_, this_._impl_.rex_type_.literal_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSelection: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.rex_type_.selection_, this_._impl_.rex_type_.selection_->GetCachedSize(), target,
          stream);
      break;
    }
    case kScalarFunction: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          3, *this_._impl_.rex_type_.scalar_function_, this_._impl_.rex_type_.scalar_function_->GetCachedSize(), target,
          stream);
      break;
    }
    case kWindowFunction: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          5, *this_._impl_.rex_type_.window_function_, this_._impl_.rex_type_.window_function_->GetCachedSize(), target,
          stream);
      break;
    }
    case kIfThen: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          6, *this_._impl_.rex_type_.if_then_, this_._impl_.rex_type_.if_then_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSwitchExpression: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          7, *this_._impl_.rex_type_.switch_expression_, this_._impl_.rex_type_.switch_expression_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSingularOrList: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          8, *this_._impl_.rex_type_.singular_or_list_, this_._impl_.rex_type_.singular_or_list_->GetCachedSize(), target,
          stream);
      break;
    }
    case kMultiOrList: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          9, *this_._impl_.rex_type_.multi_or_list_, this_._impl_.rex_type_.multi_or_list_->GetCachedSize(), target,
          stream);
      break;
    }
    case kEnum: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          10, *this_._impl_.rex_type_.enum__, this_._impl_.rex_type_.enum__->GetCachedSize(), target,
          stream);
      break;
    }
    case kCast: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          11, *this_._impl_.rex_type_.cast_, this_._impl_.rex_type_.cast_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSubquery: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          12, *this_._impl_.rex_type_.subquery_, this_._impl_.rex_type_.subquery_->GetCachedSize(), target,
          stream);
      break;
    }
    case kNested: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          13, *this_._impl_.rex_type_.nested_, this_._impl_.rex_type_.nested_->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.Expression)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Expression::ByteSizeLong(const MessageLite& base) {
  const Expression& this_ = static_cast<const Expression&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Expression::ByteSizeLong() const {
  const Expression& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.Expression)
  ::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_.rex_type_case()) {
    // .substrait.Expression.Literal literal = 1;
    case kLiteral: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.literal_);
      break;
    }
    // .substrait.Expression.FieldReference selection = 2;
    case kSelection: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.selection_);
      break;
    }
    // .substrait.Expression.ScalarFunction scalar_function = 3;
    case kScalarFunction: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.scalar_function_);
      break;
    }
    // .substrait.Expression.WindowFunction window_function = 5;
    case kWindowFunction: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.window_function_);
      break;
    }
    // .substrait.Expression.IfThen if_then = 6;
    case kIfThen: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.if_then_);
      break;
    }
    // .substrait.Expression.SwitchExpression switch_expression = 7;
    case kSwitchExpression: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.switch_expression_);
      break;
    }
    // .substrait.Expression.SingularOrList singular_or_list = 8;
    case kSingularOrList: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.singular_or_list_);
      break;
    }
    // .substrait.Expression.MultiOrList multi_or_list = 9;
    case kMultiOrList: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.multi_or_list_);
      break;
    }
    // .substrait.Expression.Cast cast = 11;
    case kCast: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.cast_);
      break;
    }
    // .substrait.Expression.Subquery subquery = 12;
    case kSubquery: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.subquery_);
      break;
    }
    // .substrait.Expression.Nested nested = 13;
    case kNested: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.nested_);
      break;
    }
    // .substrait.Expression.Enum enum = 10 [deprecated = true];
    case kEnum: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rex_type_.enum__);
      break;
    }
    case REX_TYPE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Expression::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Expression*>(&to_msg);
  auto& from = static_cast<const Expression&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.Expression)
  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_rex_type();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kLiteral: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.literal_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.literal_);
        } else {
          _this->_impl_.rex_type_.literal_->MergeFrom(*from._impl_.rex_type_.literal_);
        }
        break;
      }
      case kSelection: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.selection_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.selection_);
        } else {
          _this->_impl_.rex_type_.selection_->MergeFrom(*from._impl_.rex_type_.selection_);
        }
        break;
      }
      case kScalarFunction: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.scalar_function_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.scalar_function_);
        } else {
          _this->_impl_.rex_type_.scalar_function_->MergeFrom(*from._impl_.rex_type_.scalar_function_);
        }
        break;
      }
      case kWindowFunction: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.window_function_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.window_function_);
        } else {
          _this->_impl_.rex_type_.window_function_->MergeFrom(*from._impl_.rex_type_.window_function_);
        }
        break;
      }
      case kIfThen: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.if_then_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.if_then_);
        } else {
          _this->_impl_.rex_type_.if_then_->MergeFrom(*from._impl_.rex_type_.if_then_);
        }
        break;
      }
      case kSwitchExpression: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.switch_expression_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.switch_expression_);
        } else {
          _this->_impl_.rex_type_.switch_expression_->MergeFrom(*from._impl_.rex_type_.switch_expression_);
        }
        break;
      }
      case kSingularOrList: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.singular_or_list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.singular_or_list_);
        } else {
          _this->_impl_.rex_type_.singular_or_list_->MergeFrom(*from._impl_.rex_type_.singular_or_list_);
        }
        break;
      }
      case kMultiOrList: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.multi_or_list_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.multi_or_list_);
        } else {
          _this->_impl_.rex_type_.multi_or_list_->MergeFrom(*from._impl_.rex_type_.multi_or_list_);
        }
        break;
      }
      case kCast: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.cast_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.cast_);
        } else {
          _this->_impl_.rex_type_.cast_->MergeFrom(*from._impl_.rex_type_.cast_);
        }
        break;
      }
      case kSubquery: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.subquery_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.subquery_);
        } else {
          _this->_impl_.rex_type_.subquery_->MergeFrom(*from._impl_.rex_type_.subquery_);
        }
        break;
      }
      case kNested: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.nested_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.nested_);
        } else {
          _this->_impl_.rex_type_.nested_->MergeFrom(*from._impl_.rex_type_.nested_);
        }
        break;
      }
      case kEnum: {
        if (oneof_needs_init) {
          _this->_impl_.rex_type_.enum__ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rex_type_.enum__);
        } else {
          _this->_impl_.rex_type_.enum__->MergeFrom(*from._impl_.rex_type_.enum__);
        }
        break;
      }
      case REX_TYPE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Expression::CopyFrom(const Expression& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.Expression)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Expression::InternalSwap(Expression* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.rex_type_, other->_impl_.rex_type_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::google::protobuf::Metadata Expression::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SortField::SortField(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SortField_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.SortField)
}
PROTOBUF_NDEBUG_INLINE SortField::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::SortField& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        sort_kind_{},
        _oneof_case_{from._oneof_case_[0]} {}

SortField::SortField(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SortField& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SortField_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SortField* 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_.expr_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.expr_)
                : nullptr;
  switch (sort_kind_case()) {
    case SORT_KIND_NOT_SET:
      break;
      case kDirection:
        _impl_.sort_kind_.direction_ = from._impl_.sort_kind_.direction_;
        break;
      case kComparisonFunctionReference:
        _impl_.sort_kind_.comparison_function_reference_ = from._impl_.sort_kind_.comparison_function_reference_;
        break;
  }

  // @@protoc_insertion_point(copy_constructor:substrait.SortField)
}
PROTOBUF_NDEBUG_INLINE SortField::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        sort_kind_{},
        _oneof_case_{} {}

inline void SortField::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.expr_ = {};
}
SortField::~SortField() {
  // @@protoc_insertion_point(destructor:substrait.SortField)
  SharedDtor(*this);
}
inline void SortField::SharedDtor(MessageLite& self) {
  SortField& this_ = static_cast<SortField&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.expr_;
  if (this_.has_sort_kind()) {
    this_.clear_sort_kind();
  }
  this_._impl_.~Impl_();
}

void SortField::clear_sort_kind() {
// @@protoc_insertion_point(one_of_clear_start:substrait.SortField)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (sort_kind_case()) {
    case kDirection: {
      // No need to clear
      break;
    }
    case kComparisonFunctionReference: {
      // No need to clear
      break;
    }
    case SORT_KIND_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = SORT_KIND_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SortField_class_data_ =
        SortField::InternalGenerateClassData_(SortField_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SortField::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SortField_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SortField_class_data_.tc_table);
  return SortField_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SortField::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SortField_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SortField_globals_));
  return SortField_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SortField::ParseTableT_
    SortField::_table_ =
        SortField::InternalGenerateParseTable_(SortField_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SortField::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.SortField)
  ::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_.expr_ != nullptr);
    _impl_.expr_->Clear();
  }
  clear_sort_kind();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SortField::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SortField& this_ = static_cast<const SortField&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SortField::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SortField& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.SortField)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // .substrait.Expression expr = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.expr_, this_._impl_.expr_->GetCachedSize(), target,
        stream);
  }

  switch (this_.sort_kind_case()) {
    case kDirection: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_direction(), target);
      break;
    }
    case kComparisonFunctionReference: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_comparison_function_reference(), 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.SortField)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SortField::ByteSizeLong(const MessageLite& base) {
  const SortField& this_ = static_cast<const SortField&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SortField::ByteSizeLong() const {
  const SortField& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.SortField)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // .substrait.Expression expr = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.expr_);
    }
  }
  switch (this_.sort_kind_case()) {
    // .substrait.SortField.SortDirection direction = 2;
    case kDirection: {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_direction());
      break;
    }
    // uint32 comparison_function_reference = 3;
    case kComparisonFunctionReference: {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_comparison_function_reference());
      break;
    }
    case SORT_KIND_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SortField::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<SortField*>(&to_msg);
  auto& from = static_cast<const SortField&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.SortField)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(from._impl_.expr_ != nullptr);
    if (_this->_impl_.expr_ == nullptr) {
      _this->_impl_.expr_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.expr_);
    } else {
      _this->_impl_.expr_->MergeFrom(*from._impl_.expr_);
    }
  }
  _this->_impl_._has_bits_[0] |= 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_sort_kind();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kDirection: {
        _this->_impl_.sort_kind_.direction_ = from._impl_.sort_kind_.direction_;
        break;
      }
      case kComparisonFunctionReference: {
        _this->_impl_.sort_kind_.comparison_function_reference_ = from._impl_.sort_kind_.comparison_function_reference_;
        break;
      }
      case SORT_KIND_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void SortField::CopyFrom(const SortField& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.SortField)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SortField::InternalSwap(SortField* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.expr_, other->_impl_.expr_);
  swap(_impl_.sort_kind_, other->_impl_.sort_kind_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::google::protobuf::Metadata SortField::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void AggregateFunction::clear_output_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.output_type_ != nullptr) _impl_.output_type_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
AggregateFunction::AggregateFunction(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AggregateFunction_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.AggregateFunction)
}
PROTOBUF_NDEBUG_INLINE AggregateFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::substrait::AggregateFunction& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        args_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::AggregateFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.args_)>()
          , from.args_
        }
        ,
        sorts_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::AggregateFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.sorts_)>()
          , from.sorts_
        }
        ,
        arguments_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::AggregateFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.arguments_)>()
          , from.arguments_
        }
        ,
        options_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::substrait::AggregateFunction,
              PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.options_)>()
          , from.options_
        }
     {}

AggregateFunction::AggregateFunction(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const AggregateFunction& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AggregateFunction_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AggregateFunction* 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_.output_type_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.output_type_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, function_reference_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, function_reference_),
           offsetof(Impl_, invocation_) -
               offsetof(Impl_, function_reference_) +
               sizeof(Impl_::invocation_));

  // @@protoc_insertion_point(copy_constructor:substrait.AggregateFunction)
}
PROTOBUF_NDEBUG_INLINE AggregateFunction::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        args_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::AggregateFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.args_)>()
         }
        ,
        sorts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::AggregateFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.sorts_)>()
         }
        ,
        arguments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::AggregateFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.arguments_)>()
         }
        ,
        options_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::substrait::AggregateFunction,
            PROTOBUF_FIELD_OFFSET(::substrait::AggregateFunction, _impl_.options_)>()
         }
     {}

inline void AggregateFunction::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, output_type_),
           0,
           offsetof(Impl_, invocation_) -
               offsetof(Impl_, output_type_) +
               sizeof(Impl_::invocation_));
}
AggregateFunction::~AggregateFunction() {
  // @@protoc_insertion_point(destructor:substrait.AggregateFunction)
  SharedDtor(*this);
}
inline void AggregateFunction::SharedDtor(MessageLite& self) {
  AggregateFunction& this_ = static_cast<AggregateFunction&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.output_type_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AggregateFunction_class_data_ =
        AggregateFunction::InternalGenerateClassData_(AggregateFunction_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AggregateFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AggregateFunction_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AggregateFunction_class_data_.tc_table);
  return AggregateFunction_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AggregateFunction::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AggregateFunction_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AggregateFunction_globals_));
  return AggregateFunction_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AggregateFunction::ParseTableT_
    AggregateFunction::_table_ =
        AggregateFunction::InternalGenerateParseTable_(AggregateFunction_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AggregateFunction::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.AggregateFunction)
  ::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, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.args_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.sorts_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.arguments_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.options_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.output_type_ != nullptr);
      _impl_.output_type_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000e0U)) {
    ::memset(&_impl_.function_reference_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.invocation_) -
        reinterpret_cast<char*>(&_impl_.function_reference_)) + sizeof(_impl_.invocation_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL AggregateFunction::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const AggregateFunction& this_ = static_cast<const AggregateFunction&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL AggregateFunction::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const AggregateFunction& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.AggregateFunction)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 function_reference = 1;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_function_reference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_function_reference(), target);
    }
  }

  // repeated .substrait.Expression args = 2 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_args_size());
         i < n; i++) {
      const auto& repfield = this_._internal_args().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .substrait.SortField sorts = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_sorts_size());
         i < n; i++) {
      const auto& repfield = this_._internal_sorts().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .substrait.AggregationPhase phase = 4;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_phase() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          4, this_._internal_phase(), target);
    }
  }

  // .substrait.Type output_type = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.output_type_, this_._impl_.output_type_->GetCachedSize(), target,
        stream);
  }

  // .substrait.AggregateFunction.AggregationInvocation invocation = 6;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    if (this_._internal_invocation() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          6, this_._internal_invocation(), target);
    }
  }

  // repeated .substrait.FunctionArgument arguments = 7;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_arguments_size());
         i < n; i++) {
      const auto& repfield = this_._internal_arguments().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              7, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .substrait.FunctionOption options = 8;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_options_size());
         i < n; i++) {
      const auto& repfield = this_._internal_options().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              8, 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.AggregateFunction)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AggregateFunction::ByteSizeLong(const MessageLite& base) {
  const AggregateFunction& this_ = static_cast<const AggregateFunction&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AggregateFunction::ByteSizeLong() const {
  const AggregateFunction& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.AggregateFunction)
  ::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, 0x000000ffU)) {
    // repeated .substrait.Expression args = 2 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_args_size();
      for (const auto& msg : this_._internal_args()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.SortField sorts = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_sorts_size();
      for (const auto& msg : this_._internal_sorts()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.FunctionArgument arguments = 7;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_arguments_size();
      for (const auto& msg : this_._internal_arguments()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .substrait.FunctionOption options = 8;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1UL * this_._internal_options_size();
      for (const auto& msg : this_._internal_options()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .substrait.Type output_type = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.output_type_);
    }
    // uint32 function_reference = 1;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_function_reference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_function_reference());
      }
    }
    // .substrait.AggregationPhase phase = 4;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_phase() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_phase());
      }
    }
    // .substrait.AggregateFunction.AggregationInvocation invocation = 6;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (this_._internal_invocation() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_invocation());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void AggregateFunction::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<AggregateFunction*>(&to_msg);
  auto& from = static_cast<const AggregateFunction&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.AggregateFunction)
  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, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_args()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_args());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_sorts()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_sorts());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_arguments()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_arguments());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_options()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_options());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.output_type_ != nullptr);
      if (_this->_impl_.output_type_ == nullptr) {
        _this->_impl_.output_type_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.output_type_);
      } else {
        _this->_impl_.output_type_->MergeFrom(*from._impl_.output_type_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_function_reference() != 0) {
        _this->_impl_.function_reference_ = from._impl_.function_reference_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_phase() != 0) {
        _this->_impl_.phase_ = from._impl_.phase_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (from._internal_invocation() != 0) {
        _this->_impl_.invocation_ = from._impl_.invocation_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void AggregateFunction::CopyFrom(const AggregateFunction& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.AggregateFunction)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void AggregateFunction::InternalSwap(AggregateFunction* 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_.args_.InternalSwap(&other->_impl_.args_);
  _impl_.sorts_.InternalSwap(&other->_impl_.sorts_);
  _impl_.arguments_.InternalSwap(&other->_impl_.arguments_);
  _impl_.options_.InternalSwap(&other->_impl_.options_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.invocation_)
      + sizeof(AggregateFunction::_impl_.invocation_)
      - PROTOBUF_FIELD_OFFSET(AggregateFunction, _impl_.output_type_)>(
          reinterpret_cast<char*>(&_impl_.output_type_),
          reinterpret_cast<char*>(&other->_impl_.output_type_));
}

::google::protobuf::Metadata AggregateFunction::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ReferenceRel::ReferenceRel(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReferenceRel_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:substrait.ReferenceRel)
}
ReferenceRel::ReferenceRel(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ReferenceRel& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReferenceRel_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 ReferenceRel::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ReferenceRel::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.subtree_ordinal_ = {};
}
ReferenceRel::~ReferenceRel() {
  // @@protoc_insertion_point(destructor:substrait.ReferenceRel)
  SharedDtor(*this);
}
inline void ReferenceRel::SharedDtor(MessageLite& self) {
  ReferenceRel& this_ = static_cast<ReferenceRel&>(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 ReferenceRel_class_data_ =
        ReferenceRel::InternalGenerateClassData_(ReferenceRel_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReferenceRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReferenceRel_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReferenceRel_class_data_.tc_table);
  return ReferenceRel_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReferenceRel::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReferenceRel_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ReferenceRel_globals_));
  return ReferenceRel_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReferenceRel::ParseTableT_
    ReferenceRel::_table_ =
        ReferenceRel::InternalGenerateParseTable_(ReferenceRel_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ReferenceRel::Clear() {
// @@protoc_insertion_point(message_clear_start:substrait.ReferenceRel)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.subtree_ordinal_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ReferenceRel::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ReferenceRel& this_ = static_cast<const ReferenceRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ReferenceRel::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ReferenceRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:substrait.ReferenceRel)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // int32 subtree_ordinal = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_subtree_ordinal() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
              stream, this_._internal_subtree_ordinal(), 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.ReferenceRel)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ReferenceRel::ByteSizeLong(const MessageLite& base) {
  const ReferenceRel& this_ = static_cast<const ReferenceRel&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ReferenceRel::ByteSizeLong() const {
  const ReferenceRel& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:substrait.ReferenceRel)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // int32 subtree_ordinal = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_subtree_ordinal() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_subtree_ordinal());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ReferenceRel::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ReferenceRel*>(&to_msg);
  auto& from = static_cast<const ReferenceRel&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:substrait.ReferenceRel)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_subtree_ordinal() != 0) {
      _this->_impl_.subtree_ordinal_ = from._impl_.subtree_ordinal_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void ReferenceRel::CopyFrom(const ReferenceRel& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:substrait.ReferenceRel)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ReferenceRel::InternalSwap(ReferenceRel* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.subtree_ordinal_, other->_impl_.subtree_ordinal_);
}

::google::protobuf::Metadata ReferenceRel::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_2falgebra_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
