// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: database.proto

#include "database.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite_inl.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)
#include <google/protobuf/port_def.inc>

extern PROTOBUF_INTERNAL_EXPORT_common_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_MarkedMultiReference_common_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_common_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_MetaData_common_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_database_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_DatabaseAuthoritiesReference_database_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_database_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_DatabasePropertiesReference_database_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_database_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_DatabaseVariablesReference_database_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_database_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Database_VariablesEntry_DoNotUse_database_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_database_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ShardsConnectorReference_database_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_database_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ShardsDistributeReference_database_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_database_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ShardsPropertiesReference_database_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_database_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ShardsRouterReference_database_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_database_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ShardsTopologyReference_database_2eproto;
namespace com {
namespace alipay {
namespace dds {
namespace api {
namespace v1 {
class DatabaseAuthoritiesReferenceDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<DatabaseAuthoritiesReference> _instance;
} _DatabaseAuthoritiesReference_default_instance_;
class DatabaseVariablesReferenceDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<DatabaseVariablesReference> _instance;
} _DatabaseVariablesReference_default_instance_;
class DatabasePropertiesReferenceDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<DatabasePropertiesReference> _instance;
} _DatabasePropertiesReference_default_instance_;
class ShardsTopologyReferenceDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ShardsTopologyReference> _instance;
} _ShardsTopologyReference_default_instance_;
class ShardsRouterReferenceDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ShardsRouterReference> _instance;
} _ShardsRouterReference_default_instance_;
class ShardsDistributeReferenceDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ShardsDistributeReference> _instance;
} _ShardsDistributeReference_default_instance_;
class ShardsConnectorReferenceDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ShardsConnectorReference> _instance;
} _ShardsConnectorReference_default_instance_;
class ShardsPropertiesReferenceDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ShardsPropertiesReference> _instance;
} _ShardsPropertiesReference_default_instance_;
class Database_VariablesEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Database_VariablesEntry_DoNotUse> _instance;
} _Database_VariablesEntry_DoNotUse_default_instance_;
class DatabaseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Database> _instance;
} _Database_default_instance_;
}  // namespace v1
}  // namespace api
}  // namespace dds
}  // namespace alipay
}  // namespace com
static void InitDefaultsDatabaseAuthoritiesReference_database_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::alipay::dds::api::v1::_DatabaseAuthoritiesReference_default_instance_;
    new (ptr) ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_DatabaseAuthoritiesReference_database_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsDatabaseAuthoritiesReference_database_2eproto}, {}};

static void InitDefaultsDatabaseVariablesReference_database_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::alipay::dds::api::v1::_DatabaseVariablesReference_default_instance_;
    new (ptr) ::com::alipay::dds::api::v1::DatabaseVariablesReference();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::alipay::dds::api::v1::DatabaseVariablesReference::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_DatabaseVariablesReference_database_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsDatabaseVariablesReference_database_2eproto}, {}};

static void InitDefaultsDatabasePropertiesReference_database_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::alipay::dds::api::v1::_DatabasePropertiesReference_default_instance_;
    new (ptr) ::com::alipay::dds::api::v1::DatabasePropertiesReference();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::alipay::dds::api::v1::DatabasePropertiesReference::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_DatabasePropertiesReference_database_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsDatabasePropertiesReference_database_2eproto}, {}};

static void InitDefaultsShardsTopologyReference_database_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::alipay::dds::api::v1::_ShardsTopologyReference_default_instance_;
    new (ptr) ::com::alipay::dds::api::v1::ShardsTopologyReference();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::alipay::dds::api::v1::ShardsTopologyReference::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_ShardsTopologyReference_database_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsShardsTopologyReference_database_2eproto}, {}};

static void InitDefaultsShardsRouterReference_database_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::alipay::dds::api::v1::_ShardsRouterReference_default_instance_;
    new (ptr) ::com::alipay::dds::api::v1::ShardsRouterReference();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::alipay::dds::api::v1::ShardsRouterReference::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_ShardsRouterReference_database_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsShardsRouterReference_database_2eproto}, {}};

static void InitDefaultsShardsDistributeReference_database_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::alipay::dds::api::v1::_ShardsDistributeReference_default_instance_;
    new (ptr) ::com::alipay::dds::api::v1::ShardsDistributeReference();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::alipay::dds::api::v1::ShardsDistributeReference::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_ShardsDistributeReference_database_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsShardsDistributeReference_database_2eproto}, {}};

static void InitDefaultsShardsConnectorReference_database_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::alipay::dds::api::v1::_ShardsConnectorReference_default_instance_;
    new (ptr) ::com::alipay::dds::api::v1::ShardsConnectorReference();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::alipay::dds::api::v1::ShardsConnectorReference::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_ShardsConnectorReference_database_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsShardsConnectorReference_database_2eproto}, {}};

static void InitDefaultsShardsPropertiesReference_database_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::alipay::dds::api::v1::_ShardsPropertiesReference_default_instance_;
    new (ptr) ::com::alipay::dds::api::v1::ShardsPropertiesReference();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::alipay::dds::api::v1::ShardsPropertiesReference::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_ShardsPropertiesReference_database_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsShardsPropertiesReference_database_2eproto}, {}};

static void InitDefaultsDatabase_VariablesEntry_DoNotUse_database_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::alipay::dds::api::v1::_Database_VariablesEntry_DoNotUse_default_instance_;
    new (ptr) ::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse();
  }
  ::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Database_VariablesEntry_DoNotUse_database_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsDatabase_VariablesEntry_DoNotUse_database_2eproto}, {}};

static void InitDefaultsDatabase_database_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::alipay::dds::api::v1::_Database_default_instance_;
    new (ptr) ::com::alipay::dds::api::v1::Database();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::alipay::dds::api::v1::Database::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<11> scc_info_Database_database_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 11, InitDefaultsDatabase_database_2eproto}, {
      &scc_info_MetaData_common_2eproto.base,
      &scc_info_Database_VariablesEntry_DoNotUse_database_2eproto.base,
      &scc_info_DatabaseAuthoritiesReference_database_2eproto.base,
      &scc_info_DatabaseVariablesReference_database_2eproto.base,
      &scc_info_DatabasePropertiesReference_database_2eproto.base,
      &scc_info_ShardsTopologyReference_database_2eproto.base,
      &scc_info_ShardsRouterReference_database_2eproto.base,
      &scc_info_ShardsDistributeReference_database_2eproto.base,
      &scc_info_ShardsConnectorReference_database_2eproto.base,
      &scc_info_ShardsPropertiesReference_database_2eproto.base,
      &scc_info_MarkedMultiReference_common_2eproto.base,}};

void InitDefaults_database_2eproto() {
  ::google::protobuf::internal::InitSCC(&scc_info_DatabaseAuthoritiesReference_database_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_DatabaseVariablesReference_database_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_DatabasePropertiesReference_database_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ShardsTopologyReference_database_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ShardsRouterReference_database_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ShardsDistributeReference_database_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ShardsConnectorReference_database_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ShardsPropertiesReference_database_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Database_VariablesEntry_DoNotUse_database_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Database_database_2eproto.base);
}

::google::protobuf::Metadata file_level_metadata_database_2eproto[10];
constexpr ::google::protobuf::EnumDescriptor const** file_level_enum_descriptors_database_2eproto = nullptr;
constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_database_2eproto = nullptr;

const ::google::protobuf::uint32 TableStruct_database_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabaseAuthoritiesReference, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabaseAuthoritiesReference, parent_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabaseAuthoritiesReference, namespace__),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabaseAuthoritiesReference, kind_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabaseAuthoritiesReference, reference_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabaseVariablesReference, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabaseVariablesReference, parent_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabaseVariablesReference, namespace__),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabaseVariablesReference, kind_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabaseVariablesReference, reference_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabasePropertiesReference, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabasePropertiesReference, parent_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabasePropertiesReference, namespace__),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabasePropertiesReference, kind_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::DatabasePropertiesReference, reference_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsTopologyReference, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsTopologyReference, specific_mode_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsTopologyReference, parent_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsTopologyReference, namespace__),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsTopologyReference, kind_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsTopologyReference, reference_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsRouterReference, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsRouterReference, parent_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsRouterReference, namespace__),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsRouterReference, kind_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsRouterReference, reference_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsDistributeReference, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsDistributeReference, parent_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsDistributeReference, namespace__),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsDistributeReference, kind_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsDistributeReference, reference_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsConnectorReference, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsConnectorReference, parent_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsConnectorReference, namespace__),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsConnectorReference, kind_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsConnectorReference, reference_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsConnectorReference, test_load_prefix_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsConnectorReference, test_load_reference_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsPropertiesReference, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsPropertiesReference, parent_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsPropertiesReference, namespace__),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsPropertiesReference, kind_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::ShardsPropertiesReference, reference_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, metadata_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, cluster_name_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, tenant_name_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, database_name_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, database_mode_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, database_type_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, variables_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, database_authorities_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, database_variables_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, database_properties_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, shards_topology_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, shards_router_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, shards_distribute_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, shards_connector_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, shards_properties_),
  PROTOBUF_FIELD_OFFSET(::com::alipay::dds::api::v1::Database, extension_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::com::alipay::dds::api::v1::DatabaseAuthoritiesReference)},
  { 9, -1, sizeof(::com::alipay::dds::api::v1::DatabaseVariablesReference)},
  { 18, -1, sizeof(::com::alipay::dds::api::v1::DatabasePropertiesReference)},
  { 27, -1, sizeof(::com::alipay::dds::api::v1::ShardsTopologyReference)},
  { 37, -1, sizeof(::com::alipay::dds::api::v1::ShardsRouterReference)},
  { 46, -1, sizeof(::com::alipay::dds::api::v1::ShardsDistributeReference)},
  { 55, -1, sizeof(::com::alipay::dds::api::v1::ShardsConnectorReference)},
  { 66, -1, sizeof(::com::alipay::dds::api::v1::ShardsPropertiesReference)},
  { 75, 82, sizeof(::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse)},
  { 84, -1, sizeof(::com::alipay::dds::api::v1::Database)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::alipay::dds::api::v1::_DatabaseAuthoritiesReference_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::alipay::dds::api::v1::_DatabaseVariablesReference_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::alipay::dds::api::v1::_DatabasePropertiesReference_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::alipay::dds::api::v1::_ShardsTopologyReference_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::alipay::dds::api::v1::_ShardsRouterReference_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::alipay::dds::api::v1::_ShardsDistributeReference_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::alipay::dds::api::v1::_ShardsConnectorReference_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::alipay::dds::api::v1::_ShardsPropertiesReference_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::alipay::dds::api::v1::_Database_VariablesEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::alipay::dds::api::v1::_Database_default_instance_),
};

::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_database_2eproto = {
  {}, AddDescriptors_database_2eproto, "database.proto", schemas,
  file_default_instances, TableStruct_database_2eproto::offsets,
  file_level_metadata_database_2eproto, 10, file_level_enum_descriptors_database_2eproto, file_level_service_descriptors_database_2eproto,
};

const char descriptor_table_protodef_database_2eproto[] =
  "\n\016database.proto\022\025com.alipay.dds.api.v1\032"
  "\014common.proto\"b\n\034DatabaseAuthoritiesRefe"
  "rence\022\016\n\006parent\030\001 \001(\t\022\021\n\tnamespace\030\002 \001(\t"
  "\022\014\n\004kind\030\003 \001(\t\022\021\n\treference\030\004 \003(\t\"`\n\032Dat"
  "abaseVariablesReference\022\016\n\006parent\030\001 \001(\t\022"
  "\021\n\tnamespace\030\002 \001(\t\022\014\n\004kind\030\003 \001(\t\022\021\n\trefe"
  "rence\030\004 \003(\t\"a\n\033DatabasePropertiesReferen"
  "ce\022\016\n\006parent\030\001 \001(\t\022\021\n\tnamespace\030\002 \001(\t\022\014\n"
  "\004kind\030\003 \001(\t\022\021\n\treference\030\004 \003(\t\"t\n\027Shards"
  "TopologyReference\022\025\n\rspecific_mode\030\001 \001(\t"
  "\022\016\n\006parent\030\002 \001(\t\022\021\n\tnamespace\030\003 \001(\t\022\014\n\004k"
  "ind\030\004 \001(\t\022\021\n\treference\030\005 \003(\t\"[\n\025ShardsRo"
  "uterReference\022\016\n\006parent\030\001 \001(\t\022\021\n\tnamespa"
  "ce\030\002 \001(\t\022\014\n\004kind\030\003 \001(\t\022\021\n\treference\030\004 \003("
  "\t\"_\n\031ShardsDistributeReference\022\016\n\006parent"
  "\030\001 \001(\t\022\021\n\tnamespace\030\002 \001(\t\022\014\n\004kind\030\003 \001(\t\022"
  "\021\n\treference\030\004 \003(\t\"\225\001\n\030ShardsConnectorRe"
  "ference\022\016\n\006parent\030\001 \001(\t\022\021\n\tnamespace\030\002 \001"
  "(\t\022\014\n\004kind\030\003 \001(\t\022\021\n\treference\030\004 \003(\t\022\030\n\020t"
  "est_load_prefix\030\005 \001(\t\022\033\n\023test_load_refer"
  "ence\030\006 \003(\t\"_\n\031ShardsPropertiesReference\022"
  "\016\n\006parent\030\001 \001(\t\022\021\n\tnamespace\030\002 \001(\t\022\014\n\004ki"
  "nd\030\003 \001(\t\022\021\n\treference\030\004 \003(\t\"\310\007\n\010Database"
  "\0221\n\010metadata\030\001 \001(\0132\037.com.alipay.dds.api."
  "v1.MetaData\022\024\n\014cluster_name\030\002 \001(\t\022\023\n\013ten"
  "ant_name\030\003 \001(\t\022\025\n\rdatabase_name\030\004 \001(\t\022\025\n"
  "\rdatabase_mode\030\005 \001(\t\022\025\n\rdatabase_type\030\006 "
  "\001(\t\022A\n\tvariables\030\007 \003(\0132..com.alipay.dds."
  "api.v1.Database.VariablesEntry\022Q\n\024databa"
  "se_authorities\030\010 \001(\01323.com.alipay.dds.ap"
  "i.v1.DatabaseAuthoritiesReference\022M\n\022dat"
  "abase_variables\030\t \001(\01321.com.alipay.dds.a"
  "pi.v1.DatabaseVariablesReference\022O\n\023data"
  "base_properties\030\n \001(\01322.com.alipay.dds.a"
  "pi.v1.DatabasePropertiesReference\022G\n\017sha"
  "rds_topology\030\013 \001(\0132..com.alipay.dds.api."
  "v1.ShardsTopologyReference\022C\n\rshards_rou"
  "ter\030\014 \001(\0132,.com.alipay.dds.api.v1.Shards"
  "RouterReference\022K\n\021shards_distribute\030\r \001"
  "(\01320.com.alipay.dds.api.v1.ShardsDistrib"
  "uteReference\022I\n\020shards_connector\030\016 \001(\0132/"
  ".com.alipay.dds.api.v1.ShardsConnectorRe"
  "ference\022K\n\021shards_properties\030\017 \001(\01320.com"
  ".alipay.dds.api.v1.ShardsPropertiesRefer"
  "ence\022>\n\textension\030\020 \001(\0132+.com.alipay.dds"
  ".api.v1.MarkedMultiReference\0320\n\016Variable"
  "sEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001B4"
  "\n\025com.alipay.dds.api.v1B\rDatabaseProtoP\000"
  "Z\ndds/api/v1b\006proto3"
  ;
::google::protobuf::internal::DescriptorTable descriptor_table_database_2eproto = {
  false, InitDefaults_database_2eproto, 
  descriptor_table_protodef_database_2eproto,
  "database.proto", &assign_descriptors_table_database_2eproto, 1940,
};

void AddDescriptors_database_2eproto() {
  static constexpr ::google::protobuf::internal::InitFunc deps[1] =
  {
    ::AddDescriptors_common_2eproto,
  };
 ::google::protobuf::internal::AddDescriptors(&descriptor_table_database_2eproto, deps, 1);
}

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_database_2eproto = []() { AddDescriptors_database_2eproto(); return true; }();
namespace com {
namespace alipay {
namespace dds {
namespace api {
namespace v1 {

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

void DatabaseAuthoritiesReference::InitAsDefaultInstance() {
}
class DatabaseAuthoritiesReference::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int DatabaseAuthoritiesReference::kParentFieldNumber;
const int DatabaseAuthoritiesReference::kNamespaceFieldNumber;
const int DatabaseAuthoritiesReference::kKindFieldNumber;
const int DatabaseAuthoritiesReference::kReferenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

DatabaseAuthoritiesReference::DatabaseAuthoritiesReference()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
}
DatabaseAuthoritiesReference::DatabaseAuthoritiesReference(const DatabaseAuthoritiesReference& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      reference_(from.reference_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.parent().size() > 0) {
    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.namespace_().size() > 0) {
    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.kind().size() > 0) {
    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
  // @@protoc_insertion_point(copy_constructor:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
}

void DatabaseAuthoritiesReference::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_DatabaseAuthoritiesReference_database_2eproto.base);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

DatabaseAuthoritiesReference::~DatabaseAuthoritiesReference() {
  // @@protoc_insertion_point(destructor:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  SharedDtor();
}

void DatabaseAuthoritiesReference::SharedDtor() {
  parent_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void DatabaseAuthoritiesReference::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DatabaseAuthoritiesReference& DatabaseAuthoritiesReference::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_DatabaseAuthoritiesReference_database_2eproto.base);
  return *internal_default_instance();
}


void DatabaseAuthoritiesReference::Clear() {
// @@protoc_insertion_point(message_clear_start:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  reference_.Clear();
  parent_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* DatabaseAuthoritiesReference::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<DatabaseAuthoritiesReference*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string parent = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabaseAuthoritiesReference.parent");
        object = msg->mutable_parent();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string namespace = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabaseAuthoritiesReference.namespace");
        object = msg->mutable_namespace_();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string kind = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabaseAuthoritiesReference.kind");
        object = msg->mutable_kind();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated string reference = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabaseAuthoritiesReference.reference");
          object = msg->add_reference();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 34 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool DatabaseAuthoritiesReference::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string parent = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_parent()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->parent().data(), static_cast<int>(this->parent().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.parent"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string namespace = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_namespace_()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->namespace_().data(), static_cast<int>(this->namespace_().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.namespace"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string kind = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_kind()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->kind().data(), static_cast<int>(this->kind().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.kind"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string reference = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_reference()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->reference(this->reference_size() - 1).data(),
            static_cast<int>(this->reference(this->reference_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.reference"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void DatabaseAuthoritiesReference::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.parent");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->parent(), output);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.namespace");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->namespace_(), output);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.kind");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->kind(), output);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.reference");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->reference(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
}

::google::protobuf::uint8* DatabaseAuthoritiesReference::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.parent");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->parent(), target);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.namespace");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->namespace_(), target);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.kind");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->kind(), target);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseAuthoritiesReference.reference");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->reference(i), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  return target;
}

size_t DatabaseAuthoritiesReference::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string reference = 4;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->reference_size());
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->reference(i));
  }

  // string parent = 1;
  if (this->parent().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->parent());
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->namespace_());
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->kind());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DatabaseAuthoritiesReference::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  GOOGLE_DCHECK_NE(&from, this);
  const DatabaseAuthoritiesReference* source =
      ::google::protobuf::DynamicCastToGenerated<DatabaseAuthoritiesReference>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
    MergeFrom(*source);
  }
}

void DatabaseAuthoritiesReference::MergeFrom(const DatabaseAuthoritiesReference& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  reference_.MergeFrom(from.reference_);
  if (from.parent().size() > 0) {

    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  if (from.namespace_().size() > 0) {

    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  if (from.kind().size() > 0) {

    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
}

void DatabaseAuthoritiesReference::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DatabaseAuthoritiesReference::CopyFrom(const DatabaseAuthoritiesReference& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.alipay.dds.api.v1.DatabaseAuthoritiesReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DatabaseAuthoritiesReference::IsInitialized() const {
  return true;
}

void DatabaseAuthoritiesReference::Swap(DatabaseAuthoritiesReference* other) {
  if (other == this) return;
  InternalSwap(other);
}
void DatabaseAuthoritiesReference::InternalSwap(DatabaseAuthoritiesReference* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  reference_.InternalSwap(CastToBase(&other->reference_));
  parent_.Swap(&other->parent_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  namespace__.Swap(&other->namespace__, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  kind_.Swap(&other->kind_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata DatabaseAuthoritiesReference::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_database_2eproto);
  return ::file_level_metadata_database_2eproto[kIndexInFileMessages];
}


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

void DatabaseVariablesReference::InitAsDefaultInstance() {
}
class DatabaseVariablesReference::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int DatabaseVariablesReference::kParentFieldNumber;
const int DatabaseVariablesReference::kNamespaceFieldNumber;
const int DatabaseVariablesReference::kKindFieldNumber;
const int DatabaseVariablesReference::kReferenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

DatabaseVariablesReference::DatabaseVariablesReference()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.alipay.dds.api.v1.DatabaseVariablesReference)
}
DatabaseVariablesReference::DatabaseVariablesReference(const DatabaseVariablesReference& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      reference_(from.reference_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.parent().size() > 0) {
    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.namespace_().size() > 0) {
    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.kind().size() > 0) {
    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
  // @@protoc_insertion_point(copy_constructor:com.alipay.dds.api.v1.DatabaseVariablesReference)
}

void DatabaseVariablesReference::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_DatabaseVariablesReference_database_2eproto.base);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

DatabaseVariablesReference::~DatabaseVariablesReference() {
  // @@protoc_insertion_point(destructor:com.alipay.dds.api.v1.DatabaseVariablesReference)
  SharedDtor();
}

void DatabaseVariablesReference::SharedDtor() {
  parent_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void DatabaseVariablesReference::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DatabaseVariablesReference& DatabaseVariablesReference::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_DatabaseVariablesReference_database_2eproto.base);
  return *internal_default_instance();
}


void DatabaseVariablesReference::Clear() {
// @@protoc_insertion_point(message_clear_start:com.alipay.dds.api.v1.DatabaseVariablesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  reference_.Clear();
  parent_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* DatabaseVariablesReference::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<DatabaseVariablesReference*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string parent = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabaseVariablesReference.parent");
        object = msg->mutable_parent();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string namespace = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabaseVariablesReference.namespace");
        object = msg->mutable_namespace_();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string kind = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabaseVariablesReference.kind");
        object = msg->mutable_kind();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated string reference = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabaseVariablesReference.reference");
          object = msg->add_reference();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 34 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool DatabaseVariablesReference::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.alipay.dds.api.v1.DatabaseVariablesReference)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string parent = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_parent()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->parent().data(), static_cast<int>(this->parent().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabaseVariablesReference.parent"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string namespace = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_namespace_()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->namespace_().data(), static_cast<int>(this->namespace_().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabaseVariablesReference.namespace"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string kind = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_kind()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->kind().data(), static_cast<int>(this->kind().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabaseVariablesReference.kind"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string reference = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_reference()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->reference(this->reference_size() - 1).data(),
            static_cast<int>(this->reference(this->reference_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabaseVariablesReference.reference"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.alipay.dds.api.v1.DatabaseVariablesReference)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.alipay.dds.api.v1.DatabaseVariablesReference)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void DatabaseVariablesReference::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.alipay.dds.api.v1.DatabaseVariablesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseVariablesReference.parent");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->parent(), output);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseVariablesReference.namespace");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->namespace_(), output);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseVariablesReference.kind");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->kind(), output);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseVariablesReference.reference");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->reference(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.alipay.dds.api.v1.DatabaseVariablesReference)
}

::google::protobuf::uint8* DatabaseVariablesReference::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.alipay.dds.api.v1.DatabaseVariablesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseVariablesReference.parent");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->parent(), target);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseVariablesReference.namespace");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->namespace_(), target);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseVariablesReference.kind");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->kind(), target);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabaseVariablesReference.reference");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->reference(i), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.alipay.dds.api.v1.DatabaseVariablesReference)
  return target;
}

size_t DatabaseVariablesReference::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.alipay.dds.api.v1.DatabaseVariablesReference)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string reference = 4;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->reference_size());
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->reference(i));
  }

  // string parent = 1;
  if (this->parent().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->parent());
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->namespace_());
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->kind());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DatabaseVariablesReference::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.alipay.dds.api.v1.DatabaseVariablesReference)
  GOOGLE_DCHECK_NE(&from, this);
  const DatabaseVariablesReference* source =
      ::google::protobuf::DynamicCastToGenerated<DatabaseVariablesReference>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.alipay.dds.api.v1.DatabaseVariablesReference)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.alipay.dds.api.v1.DatabaseVariablesReference)
    MergeFrom(*source);
  }
}

void DatabaseVariablesReference::MergeFrom(const DatabaseVariablesReference& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.alipay.dds.api.v1.DatabaseVariablesReference)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  reference_.MergeFrom(from.reference_);
  if (from.parent().size() > 0) {

    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  if (from.namespace_().size() > 0) {

    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  if (from.kind().size() > 0) {

    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
}

void DatabaseVariablesReference::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.alipay.dds.api.v1.DatabaseVariablesReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DatabaseVariablesReference::CopyFrom(const DatabaseVariablesReference& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.alipay.dds.api.v1.DatabaseVariablesReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DatabaseVariablesReference::IsInitialized() const {
  return true;
}

void DatabaseVariablesReference::Swap(DatabaseVariablesReference* other) {
  if (other == this) return;
  InternalSwap(other);
}
void DatabaseVariablesReference::InternalSwap(DatabaseVariablesReference* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  reference_.InternalSwap(CastToBase(&other->reference_));
  parent_.Swap(&other->parent_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  namespace__.Swap(&other->namespace__, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  kind_.Swap(&other->kind_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata DatabaseVariablesReference::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_database_2eproto);
  return ::file_level_metadata_database_2eproto[kIndexInFileMessages];
}


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

void DatabasePropertiesReference::InitAsDefaultInstance() {
}
class DatabasePropertiesReference::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int DatabasePropertiesReference::kParentFieldNumber;
const int DatabasePropertiesReference::kNamespaceFieldNumber;
const int DatabasePropertiesReference::kKindFieldNumber;
const int DatabasePropertiesReference::kReferenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

DatabasePropertiesReference::DatabasePropertiesReference()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.alipay.dds.api.v1.DatabasePropertiesReference)
}
DatabasePropertiesReference::DatabasePropertiesReference(const DatabasePropertiesReference& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      reference_(from.reference_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.parent().size() > 0) {
    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.namespace_().size() > 0) {
    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.kind().size() > 0) {
    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
  // @@protoc_insertion_point(copy_constructor:com.alipay.dds.api.v1.DatabasePropertiesReference)
}

void DatabasePropertiesReference::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_DatabasePropertiesReference_database_2eproto.base);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

DatabasePropertiesReference::~DatabasePropertiesReference() {
  // @@protoc_insertion_point(destructor:com.alipay.dds.api.v1.DatabasePropertiesReference)
  SharedDtor();
}

void DatabasePropertiesReference::SharedDtor() {
  parent_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void DatabasePropertiesReference::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DatabasePropertiesReference& DatabasePropertiesReference::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_DatabasePropertiesReference_database_2eproto.base);
  return *internal_default_instance();
}


void DatabasePropertiesReference::Clear() {
// @@protoc_insertion_point(message_clear_start:com.alipay.dds.api.v1.DatabasePropertiesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  reference_.Clear();
  parent_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* DatabasePropertiesReference::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<DatabasePropertiesReference*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string parent = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabasePropertiesReference.parent");
        object = msg->mutable_parent();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string namespace = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabasePropertiesReference.namespace");
        object = msg->mutable_namespace_();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string kind = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabasePropertiesReference.kind");
        object = msg->mutable_kind();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated string reference = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.DatabasePropertiesReference.reference");
          object = msg->add_reference();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 34 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool DatabasePropertiesReference::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.alipay.dds.api.v1.DatabasePropertiesReference)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string parent = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_parent()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->parent().data(), static_cast<int>(this->parent().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabasePropertiesReference.parent"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string namespace = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_namespace_()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->namespace_().data(), static_cast<int>(this->namespace_().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabasePropertiesReference.namespace"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string kind = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_kind()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->kind().data(), static_cast<int>(this->kind().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabasePropertiesReference.kind"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string reference = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_reference()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->reference(this->reference_size() - 1).data(),
            static_cast<int>(this->reference(this->reference_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.DatabasePropertiesReference.reference"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.alipay.dds.api.v1.DatabasePropertiesReference)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.alipay.dds.api.v1.DatabasePropertiesReference)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void DatabasePropertiesReference::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.alipay.dds.api.v1.DatabasePropertiesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabasePropertiesReference.parent");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->parent(), output);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabasePropertiesReference.namespace");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->namespace_(), output);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabasePropertiesReference.kind");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->kind(), output);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabasePropertiesReference.reference");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->reference(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.alipay.dds.api.v1.DatabasePropertiesReference)
}

::google::protobuf::uint8* DatabasePropertiesReference::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.alipay.dds.api.v1.DatabasePropertiesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabasePropertiesReference.parent");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->parent(), target);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabasePropertiesReference.namespace");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->namespace_(), target);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabasePropertiesReference.kind");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->kind(), target);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.DatabasePropertiesReference.reference");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->reference(i), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.alipay.dds.api.v1.DatabasePropertiesReference)
  return target;
}

size_t DatabasePropertiesReference::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.alipay.dds.api.v1.DatabasePropertiesReference)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string reference = 4;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->reference_size());
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->reference(i));
  }

  // string parent = 1;
  if (this->parent().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->parent());
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->namespace_());
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->kind());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DatabasePropertiesReference::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.alipay.dds.api.v1.DatabasePropertiesReference)
  GOOGLE_DCHECK_NE(&from, this);
  const DatabasePropertiesReference* source =
      ::google::protobuf::DynamicCastToGenerated<DatabasePropertiesReference>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.alipay.dds.api.v1.DatabasePropertiesReference)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.alipay.dds.api.v1.DatabasePropertiesReference)
    MergeFrom(*source);
  }
}

void DatabasePropertiesReference::MergeFrom(const DatabasePropertiesReference& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.alipay.dds.api.v1.DatabasePropertiesReference)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  reference_.MergeFrom(from.reference_);
  if (from.parent().size() > 0) {

    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  if (from.namespace_().size() > 0) {

    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  if (from.kind().size() > 0) {

    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
}

void DatabasePropertiesReference::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.alipay.dds.api.v1.DatabasePropertiesReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DatabasePropertiesReference::CopyFrom(const DatabasePropertiesReference& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.alipay.dds.api.v1.DatabasePropertiesReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DatabasePropertiesReference::IsInitialized() const {
  return true;
}

void DatabasePropertiesReference::Swap(DatabasePropertiesReference* other) {
  if (other == this) return;
  InternalSwap(other);
}
void DatabasePropertiesReference::InternalSwap(DatabasePropertiesReference* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  reference_.InternalSwap(CastToBase(&other->reference_));
  parent_.Swap(&other->parent_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  namespace__.Swap(&other->namespace__, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  kind_.Swap(&other->kind_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata DatabasePropertiesReference::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_database_2eproto);
  return ::file_level_metadata_database_2eproto[kIndexInFileMessages];
}


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

void ShardsTopologyReference::InitAsDefaultInstance() {
}
class ShardsTopologyReference::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ShardsTopologyReference::kSpecificModeFieldNumber;
const int ShardsTopologyReference::kParentFieldNumber;
const int ShardsTopologyReference::kNamespaceFieldNumber;
const int ShardsTopologyReference::kKindFieldNumber;
const int ShardsTopologyReference::kReferenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ShardsTopologyReference::ShardsTopologyReference()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.alipay.dds.api.v1.ShardsTopologyReference)
}
ShardsTopologyReference::ShardsTopologyReference(const ShardsTopologyReference& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      reference_(from.reference_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  specific_mode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.specific_mode().size() > 0) {
    specific_mode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.specific_mode_);
  }
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.parent().size() > 0) {
    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.namespace_().size() > 0) {
    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.kind().size() > 0) {
    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
  // @@protoc_insertion_point(copy_constructor:com.alipay.dds.api.v1.ShardsTopologyReference)
}

void ShardsTopologyReference::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ShardsTopologyReference_database_2eproto.base);
  specific_mode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ShardsTopologyReference::~ShardsTopologyReference() {
  // @@protoc_insertion_point(destructor:com.alipay.dds.api.v1.ShardsTopologyReference)
  SharedDtor();
}

void ShardsTopologyReference::SharedDtor() {
  specific_mode_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  parent_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ShardsTopologyReference::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ShardsTopologyReference& ShardsTopologyReference::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ShardsTopologyReference_database_2eproto.base);
  return *internal_default_instance();
}


void ShardsTopologyReference::Clear() {
// @@protoc_insertion_point(message_clear_start:com.alipay.dds.api.v1.ShardsTopologyReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  reference_.Clear();
  specific_mode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  parent_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ShardsTopologyReference::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ShardsTopologyReference*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string specific_mode = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsTopologyReference.specific_mode");
        object = msg->mutable_specific_mode();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string parent = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsTopologyReference.parent");
        object = msg->mutable_parent();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string namespace = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsTopologyReference.namespace");
        object = msg->mutable_namespace_();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string kind = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsTopologyReference.kind");
        object = msg->mutable_kind();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated string reference = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsTopologyReference.reference");
          object = msg->add_reference();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 42 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ShardsTopologyReference::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.alipay.dds.api.v1.ShardsTopologyReference)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string specific_mode = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_specific_mode()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->specific_mode().data(), static_cast<int>(this->specific_mode().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsTopologyReference.specific_mode"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string parent = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_parent()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->parent().data(), static_cast<int>(this->parent().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsTopologyReference.parent"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string namespace = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_namespace_()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->namespace_().data(), static_cast<int>(this->namespace_().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsTopologyReference.namespace"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string kind = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_kind()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->kind().data(), static_cast<int>(this->kind().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsTopologyReference.kind"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string reference = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_reference()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->reference(this->reference_size() - 1).data(),
            static_cast<int>(this->reference(this->reference_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsTopologyReference.reference"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.alipay.dds.api.v1.ShardsTopologyReference)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.alipay.dds.api.v1.ShardsTopologyReference)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ShardsTopologyReference::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.alipay.dds.api.v1.ShardsTopologyReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string specific_mode = 1;
  if (this->specific_mode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->specific_mode().data(), static_cast<int>(this->specific_mode().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsTopologyReference.specific_mode");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->specific_mode(), output);
  }

  // string parent = 2;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsTopologyReference.parent");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->parent(), output);
  }

  // string namespace = 3;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsTopologyReference.namespace");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->namespace_(), output);
  }

  // string kind = 4;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsTopologyReference.kind");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->kind(), output);
  }

  // repeated string reference = 5;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsTopologyReference.reference");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      5, this->reference(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.alipay.dds.api.v1.ShardsTopologyReference)
}

::google::protobuf::uint8* ShardsTopologyReference::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.alipay.dds.api.v1.ShardsTopologyReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string specific_mode = 1;
  if (this->specific_mode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->specific_mode().data(), static_cast<int>(this->specific_mode().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsTopologyReference.specific_mode");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->specific_mode(), target);
  }

  // string parent = 2;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsTopologyReference.parent");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->parent(), target);
  }

  // string namespace = 3;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsTopologyReference.namespace");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->namespace_(), target);
  }

  // string kind = 4;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsTopologyReference.kind");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->kind(), target);
  }

  // repeated string reference = 5;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsTopologyReference.reference");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(5, this->reference(i), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.alipay.dds.api.v1.ShardsTopologyReference)
  return target;
}

size_t ShardsTopologyReference::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.alipay.dds.api.v1.ShardsTopologyReference)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string reference = 5;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->reference_size());
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->reference(i));
  }

  // string specific_mode = 1;
  if (this->specific_mode().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->specific_mode());
  }

  // string parent = 2;
  if (this->parent().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->parent());
  }

  // string namespace = 3;
  if (this->namespace_().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->namespace_());
  }

  // string kind = 4;
  if (this->kind().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->kind());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ShardsTopologyReference::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.alipay.dds.api.v1.ShardsTopologyReference)
  GOOGLE_DCHECK_NE(&from, this);
  const ShardsTopologyReference* source =
      ::google::protobuf::DynamicCastToGenerated<ShardsTopologyReference>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.alipay.dds.api.v1.ShardsTopologyReference)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.alipay.dds.api.v1.ShardsTopologyReference)
    MergeFrom(*source);
  }
}

void ShardsTopologyReference::MergeFrom(const ShardsTopologyReference& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.alipay.dds.api.v1.ShardsTopologyReference)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  reference_.MergeFrom(from.reference_);
  if (from.specific_mode().size() > 0) {

    specific_mode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.specific_mode_);
  }
  if (from.parent().size() > 0) {

    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  if (from.namespace_().size() > 0) {

    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  if (from.kind().size() > 0) {

    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
}

void ShardsTopologyReference::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.alipay.dds.api.v1.ShardsTopologyReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ShardsTopologyReference::CopyFrom(const ShardsTopologyReference& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.alipay.dds.api.v1.ShardsTopologyReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ShardsTopologyReference::IsInitialized() const {
  return true;
}

void ShardsTopologyReference::Swap(ShardsTopologyReference* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ShardsTopologyReference::InternalSwap(ShardsTopologyReference* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  reference_.InternalSwap(CastToBase(&other->reference_));
  specific_mode_.Swap(&other->specific_mode_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  parent_.Swap(&other->parent_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  namespace__.Swap(&other->namespace__, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  kind_.Swap(&other->kind_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata ShardsTopologyReference::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_database_2eproto);
  return ::file_level_metadata_database_2eproto[kIndexInFileMessages];
}


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

void ShardsRouterReference::InitAsDefaultInstance() {
}
class ShardsRouterReference::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ShardsRouterReference::kParentFieldNumber;
const int ShardsRouterReference::kNamespaceFieldNumber;
const int ShardsRouterReference::kKindFieldNumber;
const int ShardsRouterReference::kReferenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ShardsRouterReference::ShardsRouterReference()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.alipay.dds.api.v1.ShardsRouterReference)
}
ShardsRouterReference::ShardsRouterReference(const ShardsRouterReference& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      reference_(from.reference_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.parent().size() > 0) {
    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.namespace_().size() > 0) {
    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.kind().size() > 0) {
    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
  // @@protoc_insertion_point(copy_constructor:com.alipay.dds.api.v1.ShardsRouterReference)
}

void ShardsRouterReference::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ShardsRouterReference_database_2eproto.base);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ShardsRouterReference::~ShardsRouterReference() {
  // @@protoc_insertion_point(destructor:com.alipay.dds.api.v1.ShardsRouterReference)
  SharedDtor();
}

void ShardsRouterReference::SharedDtor() {
  parent_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ShardsRouterReference::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ShardsRouterReference& ShardsRouterReference::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ShardsRouterReference_database_2eproto.base);
  return *internal_default_instance();
}


void ShardsRouterReference::Clear() {
// @@protoc_insertion_point(message_clear_start:com.alipay.dds.api.v1.ShardsRouterReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  reference_.Clear();
  parent_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ShardsRouterReference::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ShardsRouterReference*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string parent = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsRouterReference.parent");
        object = msg->mutable_parent();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string namespace = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsRouterReference.namespace");
        object = msg->mutable_namespace_();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string kind = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsRouterReference.kind");
        object = msg->mutable_kind();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated string reference = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsRouterReference.reference");
          object = msg->add_reference();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 34 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ShardsRouterReference::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.alipay.dds.api.v1.ShardsRouterReference)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string parent = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_parent()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->parent().data(), static_cast<int>(this->parent().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsRouterReference.parent"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string namespace = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_namespace_()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->namespace_().data(), static_cast<int>(this->namespace_().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsRouterReference.namespace"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string kind = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_kind()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->kind().data(), static_cast<int>(this->kind().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsRouterReference.kind"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string reference = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_reference()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->reference(this->reference_size() - 1).data(),
            static_cast<int>(this->reference(this->reference_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsRouterReference.reference"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.alipay.dds.api.v1.ShardsRouterReference)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.alipay.dds.api.v1.ShardsRouterReference)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ShardsRouterReference::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.alipay.dds.api.v1.ShardsRouterReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsRouterReference.parent");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->parent(), output);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsRouterReference.namespace");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->namespace_(), output);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsRouterReference.kind");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->kind(), output);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsRouterReference.reference");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->reference(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.alipay.dds.api.v1.ShardsRouterReference)
}

::google::protobuf::uint8* ShardsRouterReference::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.alipay.dds.api.v1.ShardsRouterReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsRouterReference.parent");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->parent(), target);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsRouterReference.namespace");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->namespace_(), target);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsRouterReference.kind");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->kind(), target);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsRouterReference.reference");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->reference(i), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.alipay.dds.api.v1.ShardsRouterReference)
  return target;
}

size_t ShardsRouterReference::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.alipay.dds.api.v1.ShardsRouterReference)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string reference = 4;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->reference_size());
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->reference(i));
  }

  // string parent = 1;
  if (this->parent().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->parent());
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->namespace_());
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->kind());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ShardsRouterReference::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.alipay.dds.api.v1.ShardsRouterReference)
  GOOGLE_DCHECK_NE(&from, this);
  const ShardsRouterReference* source =
      ::google::protobuf::DynamicCastToGenerated<ShardsRouterReference>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.alipay.dds.api.v1.ShardsRouterReference)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.alipay.dds.api.v1.ShardsRouterReference)
    MergeFrom(*source);
  }
}

void ShardsRouterReference::MergeFrom(const ShardsRouterReference& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.alipay.dds.api.v1.ShardsRouterReference)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  reference_.MergeFrom(from.reference_);
  if (from.parent().size() > 0) {

    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  if (from.namespace_().size() > 0) {

    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  if (from.kind().size() > 0) {

    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
}

void ShardsRouterReference::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.alipay.dds.api.v1.ShardsRouterReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ShardsRouterReference::CopyFrom(const ShardsRouterReference& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.alipay.dds.api.v1.ShardsRouterReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ShardsRouterReference::IsInitialized() const {
  return true;
}

void ShardsRouterReference::Swap(ShardsRouterReference* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ShardsRouterReference::InternalSwap(ShardsRouterReference* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  reference_.InternalSwap(CastToBase(&other->reference_));
  parent_.Swap(&other->parent_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  namespace__.Swap(&other->namespace__, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  kind_.Swap(&other->kind_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata ShardsRouterReference::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_database_2eproto);
  return ::file_level_metadata_database_2eproto[kIndexInFileMessages];
}


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

void ShardsDistributeReference::InitAsDefaultInstance() {
}
class ShardsDistributeReference::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ShardsDistributeReference::kParentFieldNumber;
const int ShardsDistributeReference::kNamespaceFieldNumber;
const int ShardsDistributeReference::kKindFieldNumber;
const int ShardsDistributeReference::kReferenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ShardsDistributeReference::ShardsDistributeReference()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.alipay.dds.api.v1.ShardsDistributeReference)
}
ShardsDistributeReference::ShardsDistributeReference(const ShardsDistributeReference& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      reference_(from.reference_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.parent().size() > 0) {
    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.namespace_().size() > 0) {
    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.kind().size() > 0) {
    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
  // @@protoc_insertion_point(copy_constructor:com.alipay.dds.api.v1.ShardsDistributeReference)
}

void ShardsDistributeReference::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ShardsDistributeReference_database_2eproto.base);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ShardsDistributeReference::~ShardsDistributeReference() {
  // @@protoc_insertion_point(destructor:com.alipay.dds.api.v1.ShardsDistributeReference)
  SharedDtor();
}

void ShardsDistributeReference::SharedDtor() {
  parent_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ShardsDistributeReference::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ShardsDistributeReference& ShardsDistributeReference::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ShardsDistributeReference_database_2eproto.base);
  return *internal_default_instance();
}


void ShardsDistributeReference::Clear() {
// @@protoc_insertion_point(message_clear_start:com.alipay.dds.api.v1.ShardsDistributeReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  reference_.Clear();
  parent_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ShardsDistributeReference::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ShardsDistributeReference*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string parent = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsDistributeReference.parent");
        object = msg->mutable_parent();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string namespace = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsDistributeReference.namespace");
        object = msg->mutable_namespace_();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string kind = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsDistributeReference.kind");
        object = msg->mutable_kind();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated string reference = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsDistributeReference.reference");
          object = msg->add_reference();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 34 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ShardsDistributeReference::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.alipay.dds.api.v1.ShardsDistributeReference)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string parent = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_parent()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->parent().data(), static_cast<int>(this->parent().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsDistributeReference.parent"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string namespace = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_namespace_()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->namespace_().data(), static_cast<int>(this->namespace_().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsDistributeReference.namespace"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string kind = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_kind()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->kind().data(), static_cast<int>(this->kind().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsDistributeReference.kind"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string reference = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_reference()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->reference(this->reference_size() - 1).data(),
            static_cast<int>(this->reference(this->reference_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsDistributeReference.reference"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.alipay.dds.api.v1.ShardsDistributeReference)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.alipay.dds.api.v1.ShardsDistributeReference)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ShardsDistributeReference::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.alipay.dds.api.v1.ShardsDistributeReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsDistributeReference.parent");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->parent(), output);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsDistributeReference.namespace");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->namespace_(), output);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsDistributeReference.kind");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->kind(), output);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsDistributeReference.reference");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->reference(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.alipay.dds.api.v1.ShardsDistributeReference)
}

::google::protobuf::uint8* ShardsDistributeReference::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.alipay.dds.api.v1.ShardsDistributeReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsDistributeReference.parent");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->parent(), target);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsDistributeReference.namespace");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->namespace_(), target);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsDistributeReference.kind");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->kind(), target);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsDistributeReference.reference");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->reference(i), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.alipay.dds.api.v1.ShardsDistributeReference)
  return target;
}

size_t ShardsDistributeReference::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.alipay.dds.api.v1.ShardsDistributeReference)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string reference = 4;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->reference_size());
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->reference(i));
  }

  // string parent = 1;
  if (this->parent().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->parent());
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->namespace_());
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->kind());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ShardsDistributeReference::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.alipay.dds.api.v1.ShardsDistributeReference)
  GOOGLE_DCHECK_NE(&from, this);
  const ShardsDistributeReference* source =
      ::google::protobuf::DynamicCastToGenerated<ShardsDistributeReference>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.alipay.dds.api.v1.ShardsDistributeReference)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.alipay.dds.api.v1.ShardsDistributeReference)
    MergeFrom(*source);
  }
}

void ShardsDistributeReference::MergeFrom(const ShardsDistributeReference& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.alipay.dds.api.v1.ShardsDistributeReference)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  reference_.MergeFrom(from.reference_);
  if (from.parent().size() > 0) {

    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  if (from.namespace_().size() > 0) {

    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  if (from.kind().size() > 0) {

    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
}

void ShardsDistributeReference::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.alipay.dds.api.v1.ShardsDistributeReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ShardsDistributeReference::CopyFrom(const ShardsDistributeReference& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.alipay.dds.api.v1.ShardsDistributeReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ShardsDistributeReference::IsInitialized() const {
  return true;
}

void ShardsDistributeReference::Swap(ShardsDistributeReference* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ShardsDistributeReference::InternalSwap(ShardsDistributeReference* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  reference_.InternalSwap(CastToBase(&other->reference_));
  parent_.Swap(&other->parent_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  namespace__.Swap(&other->namespace__, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  kind_.Swap(&other->kind_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata ShardsDistributeReference::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_database_2eproto);
  return ::file_level_metadata_database_2eproto[kIndexInFileMessages];
}


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

void ShardsConnectorReference::InitAsDefaultInstance() {
}
class ShardsConnectorReference::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ShardsConnectorReference::kParentFieldNumber;
const int ShardsConnectorReference::kNamespaceFieldNumber;
const int ShardsConnectorReference::kKindFieldNumber;
const int ShardsConnectorReference::kReferenceFieldNumber;
const int ShardsConnectorReference::kTestLoadPrefixFieldNumber;
const int ShardsConnectorReference::kTestLoadReferenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ShardsConnectorReference::ShardsConnectorReference()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.alipay.dds.api.v1.ShardsConnectorReference)
}
ShardsConnectorReference::ShardsConnectorReference(const ShardsConnectorReference& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      reference_(from.reference_),
      test_load_reference_(from.test_load_reference_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.parent().size() > 0) {
    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.namespace_().size() > 0) {
    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.kind().size() > 0) {
    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
  test_load_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.test_load_prefix().size() > 0) {
    test_load_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.test_load_prefix_);
  }
  // @@protoc_insertion_point(copy_constructor:com.alipay.dds.api.v1.ShardsConnectorReference)
}

void ShardsConnectorReference::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ShardsConnectorReference_database_2eproto.base);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  test_load_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ShardsConnectorReference::~ShardsConnectorReference() {
  // @@protoc_insertion_point(destructor:com.alipay.dds.api.v1.ShardsConnectorReference)
  SharedDtor();
}

void ShardsConnectorReference::SharedDtor() {
  parent_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  test_load_prefix_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ShardsConnectorReference::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ShardsConnectorReference& ShardsConnectorReference::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ShardsConnectorReference_database_2eproto.base);
  return *internal_default_instance();
}


void ShardsConnectorReference::Clear() {
// @@protoc_insertion_point(message_clear_start:com.alipay.dds.api.v1.ShardsConnectorReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  reference_.Clear();
  test_load_reference_.Clear();
  parent_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  test_load_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ShardsConnectorReference::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ShardsConnectorReference*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string parent = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsConnectorReference.parent");
        object = msg->mutable_parent();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string namespace = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsConnectorReference.namespace");
        object = msg->mutable_namespace_();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string kind = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsConnectorReference.kind");
        object = msg->mutable_kind();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated string reference = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsConnectorReference.reference");
          object = msg->add_reference();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 34 && (ptr += 1));
        break;
      }
      // string test_load_prefix = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsConnectorReference.test_load_prefix");
        object = msg->mutable_test_load_prefix();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated string test_load_reference = 6;
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsConnectorReference.test_load_reference");
          object = msg->add_test_load_reference();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 50 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ShardsConnectorReference::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.alipay.dds.api.v1.ShardsConnectorReference)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string parent = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_parent()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->parent().data(), static_cast<int>(this->parent().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsConnectorReference.parent"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string namespace = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_namespace_()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->namespace_().data(), static_cast<int>(this->namespace_().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsConnectorReference.namespace"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string kind = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_kind()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->kind().data(), static_cast<int>(this->kind().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsConnectorReference.kind"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string reference = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_reference()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->reference(this->reference_size() - 1).data(),
            static_cast<int>(this->reference(this->reference_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsConnectorReference.reference"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string test_load_prefix = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_test_load_prefix()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->test_load_prefix().data(), static_cast<int>(this->test_load_prefix().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsConnectorReference.test_load_prefix"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string test_load_reference = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_test_load_reference()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->test_load_reference(this->test_load_reference_size() - 1).data(),
            static_cast<int>(this->test_load_reference(this->test_load_reference_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsConnectorReference.test_load_reference"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.alipay.dds.api.v1.ShardsConnectorReference)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.alipay.dds.api.v1.ShardsConnectorReference)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ShardsConnectorReference::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.alipay.dds.api.v1.ShardsConnectorReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.parent");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->parent(), output);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.namespace");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->namespace_(), output);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.kind");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->kind(), output);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.reference");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->reference(i), output);
  }

  // string test_load_prefix = 5;
  if (this->test_load_prefix().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->test_load_prefix().data(), static_cast<int>(this->test_load_prefix().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.test_load_prefix");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->test_load_prefix(), output);
  }

  // repeated string test_load_reference = 6;
  for (int i = 0, n = this->test_load_reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->test_load_reference(i).data(), static_cast<int>(this->test_load_reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.test_load_reference");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      6, this->test_load_reference(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.alipay.dds.api.v1.ShardsConnectorReference)
}

::google::protobuf::uint8* ShardsConnectorReference::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.alipay.dds.api.v1.ShardsConnectorReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.parent");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->parent(), target);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.namespace");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->namespace_(), target);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.kind");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->kind(), target);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.reference");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->reference(i), target);
  }

  // string test_load_prefix = 5;
  if (this->test_load_prefix().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->test_load_prefix().data(), static_cast<int>(this->test_load_prefix().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.test_load_prefix");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->test_load_prefix(), target);
  }

  // repeated string test_load_reference = 6;
  for (int i = 0, n = this->test_load_reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->test_load_reference(i).data(), static_cast<int>(this->test_load_reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsConnectorReference.test_load_reference");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(6, this->test_load_reference(i), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.alipay.dds.api.v1.ShardsConnectorReference)
  return target;
}

size_t ShardsConnectorReference::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.alipay.dds.api.v1.ShardsConnectorReference)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string reference = 4;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->reference_size());
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->reference(i));
  }

  // repeated string test_load_reference = 6;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->test_load_reference_size());
  for (int i = 0, n = this->test_load_reference_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->test_load_reference(i));
  }

  // string parent = 1;
  if (this->parent().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->parent());
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->namespace_());
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->kind());
  }

  // string test_load_prefix = 5;
  if (this->test_load_prefix().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->test_load_prefix());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ShardsConnectorReference::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.alipay.dds.api.v1.ShardsConnectorReference)
  GOOGLE_DCHECK_NE(&from, this);
  const ShardsConnectorReference* source =
      ::google::protobuf::DynamicCastToGenerated<ShardsConnectorReference>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.alipay.dds.api.v1.ShardsConnectorReference)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.alipay.dds.api.v1.ShardsConnectorReference)
    MergeFrom(*source);
  }
}

void ShardsConnectorReference::MergeFrom(const ShardsConnectorReference& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.alipay.dds.api.v1.ShardsConnectorReference)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  reference_.MergeFrom(from.reference_);
  test_load_reference_.MergeFrom(from.test_load_reference_);
  if (from.parent().size() > 0) {

    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  if (from.namespace_().size() > 0) {

    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  if (from.kind().size() > 0) {

    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
  if (from.test_load_prefix().size() > 0) {

    test_load_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.test_load_prefix_);
  }
}

void ShardsConnectorReference::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.alipay.dds.api.v1.ShardsConnectorReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ShardsConnectorReference::CopyFrom(const ShardsConnectorReference& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.alipay.dds.api.v1.ShardsConnectorReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ShardsConnectorReference::IsInitialized() const {
  return true;
}

void ShardsConnectorReference::Swap(ShardsConnectorReference* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ShardsConnectorReference::InternalSwap(ShardsConnectorReference* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  reference_.InternalSwap(CastToBase(&other->reference_));
  test_load_reference_.InternalSwap(CastToBase(&other->test_load_reference_));
  parent_.Swap(&other->parent_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  namespace__.Swap(&other->namespace__, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  kind_.Swap(&other->kind_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  test_load_prefix_.Swap(&other->test_load_prefix_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata ShardsConnectorReference::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_database_2eproto);
  return ::file_level_metadata_database_2eproto[kIndexInFileMessages];
}


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

void ShardsPropertiesReference::InitAsDefaultInstance() {
}
class ShardsPropertiesReference::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ShardsPropertiesReference::kParentFieldNumber;
const int ShardsPropertiesReference::kNamespaceFieldNumber;
const int ShardsPropertiesReference::kKindFieldNumber;
const int ShardsPropertiesReference::kReferenceFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ShardsPropertiesReference::ShardsPropertiesReference()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.alipay.dds.api.v1.ShardsPropertiesReference)
}
ShardsPropertiesReference::ShardsPropertiesReference(const ShardsPropertiesReference& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      reference_(from.reference_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.parent().size() > 0) {
    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.namespace_().size() > 0) {
    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.kind().size() > 0) {
    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
  // @@protoc_insertion_point(copy_constructor:com.alipay.dds.api.v1.ShardsPropertiesReference)
}

void ShardsPropertiesReference::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ShardsPropertiesReference_database_2eproto.base);
  parent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ShardsPropertiesReference::~ShardsPropertiesReference() {
  // @@protoc_insertion_point(destructor:com.alipay.dds.api.v1.ShardsPropertiesReference)
  SharedDtor();
}

void ShardsPropertiesReference::SharedDtor() {
  parent_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ShardsPropertiesReference::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ShardsPropertiesReference& ShardsPropertiesReference::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ShardsPropertiesReference_database_2eproto.base);
  return *internal_default_instance();
}


void ShardsPropertiesReference::Clear() {
// @@protoc_insertion_point(message_clear_start:com.alipay.dds.api.v1.ShardsPropertiesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  reference_.Clear();
  parent_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  namespace__.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kind_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ShardsPropertiesReference::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ShardsPropertiesReference*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string parent = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsPropertiesReference.parent");
        object = msg->mutable_parent();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string namespace = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsPropertiesReference.namespace");
        object = msg->mutable_namespace_();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string kind = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsPropertiesReference.kind");
        object = msg->mutable_kind();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated string reference = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.ShardsPropertiesReference.reference");
          object = msg->add_reference();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 34 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ShardsPropertiesReference::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.alipay.dds.api.v1.ShardsPropertiesReference)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string parent = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_parent()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->parent().data(), static_cast<int>(this->parent().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsPropertiesReference.parent"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string namespace = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_namespace_()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->namespace_().data(), static_cast<int>(this->namespace_().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsPropertiesReference.namespace"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string kind = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_kind()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->kind().data(), static_cast<int>(this->kind().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsPropertiesReference.kind"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string reference = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_reference()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->reference(this->reference_size() - 1).data(),
            static_cast<int>(this->reference(this->reference_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.ShardsPropertiesReference.reference"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.alipay.dds.api.v1.ShardsPropertiesReference)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.alipay.dds.api.v1.ShardsPropertiesReference)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ShardsPropertiesReference::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.alipay.dds.api.v1.ShardsPropertiesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsPropertiesReference.parent");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->parent(), output);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsPropertiesReference.namespace");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->namespace_(), output);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsPropertiesReference.kind");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->kind(), output);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsPropertiesReference.reference");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->reference(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.alipay.dds.api.v1.ShardsPropertiesReference)
}

::google::protobuf::uint8* ShardsPropertiesReference::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.alipay.dds.api.v1.ShardsPropertiesReference)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string parent = 1;
  if (this->parent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->parent().data(), static_cast<int>(this->parent().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsPropertiesReference.parent");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->parent(), target);
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->namespace_().data(), static_cast<int>(this->namespace_().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsPropertiesReference.namespace");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->namespace_(), target);
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kind().data(), static_cast<int>(this->kind().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsPropertiesReference.kind");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->kind(), target);
  }

  // repeated string reference = 4;
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->reference(i).data(), static_cast<int>(this->reference(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.ShardsPropertiesReference.reference");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->reference(i), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.alipay.dds.api.v1.ShardsPropertiesReference)
  return target;
}

size_t ShardsPropertiesReference::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.alipay.dds.api.v1.ShardsPropertiesReference)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string reference = 4;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->reference_size());
  for (int i = 0, n = this->reference_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->reference(i));
  }

  // string parent = 1;
  if (this->parent().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->parent());
  }

  // string namespace = 2;
  if (this->namespace_().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->namespace_());
  }

  // string kind = 3;
  if (this->kind().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->kind());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ShardsPropertiesReference::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.alipay.dds.api.v1.ShardsPropertiesReference)
  GOOGLE_DCHECK_NE(&from, this);
  const ShardsPropertiesReference* source =
      ::google::protobuf::DynamicCastToGenerated<ShardsPropertiesReference>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.alipay.dds.api.v1.ShardsPropertiesReference)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.alipay.dds.api.v1.ShardsPropertiesReference)
    MergeFrom(*source);
  }
}

void ShardsPropertiesReference::MergeFrom(const ShardsPropertiesReference& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.alipay.dds.api.v1.ShardsPropertiesReference)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  reference_.MergeFrom(from.reference_);
  if (from.parent().size() > 0) {

    parent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.parent_);
  }
  if (from.namespace_().size() > 0) {

    namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__);
  }
  if (from.kind().size() > 0) {

    kind_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kind_);
  }
}

void ShardsPropertiesReference::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.alipay.dds.api.v1.ShardsPropertiesReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ShardsPropertiesReference::CopyFrom(const ShardsPropertiesReference& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.alipay.dds.api.v1.ShardsPropertiesReference)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ShardsPropertiesReference::IsInitialized() const {
  return true;
}

void ShardsPropertiesReference::Swap(ShardsPropertiesReference* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ShardsPropertiesReference::InternalSwap(ShardsPropertiesReference* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  reference_.InternalSwap(CastToBase(&other->reference_));
  parent_.Swap(&other->parent_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  namespace__.Swap(&other->namespace__, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  kind_.Swap(&other->kind_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata ShardsPropertiesReference::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_database_2eproto);
  return ::file_level_metadata_database_2eproto[kIndexInFileMessages];
}


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

Database_VariablesEntry_DoNotUse::Database_VariablesEntry_DoNotUse() {}
Database_VariablesEntry_DoNotUse::Database_VariablesEntry_DoNotUse(::google::protobuf::Arena* arena)
    : SuperType(arena) {}
void Database_VariablesEntry_DoNotUse::MergeFrom(const Database_VariablesEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata Database_VariablesEntry_DoNotUse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_database_2eproto);
  return ::file_level_metadata_database_2eproto[8];
}
void Database_VariablesEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Database_VariablesEntry_DoNotUse::_ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) {
  using MF = ::google::protobuf::internal::MapField<
      Database_VariablesEntry_DoNotUse, EntryKeyType, EntryValueType,
      kEntryKeyFieldType, kEntryValueFieldType,
      kEntryDefaultEnumValue>;
  auto mf = static_cast<MF*>(object);
  Parser<MF, ::google::protobuf::Map<EntryKeyType, EntryValueType>> parser(mf);
#define DO_(x) if (!(x)) return false
  DO_(parser.ParseMap(begin, end));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.key().data(), static_cast<int>(parser.key().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "com.alipay.dds.api.v1.Database.VariablesEntry.key"));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.value().data(), static_cast<int>(parser.value().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "com.alipay.dds.api.v1.Database.VariablesEntry.value"));
#undef DO_
  return true;
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER


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

void Database::InitAsDefaultInstance() {
  ::com::alipay::dds::api::v1::_Database_default_instance_._instance.get_mutable()->metadata_ = const_cast< ::com::alipay::dds::api::v1::MetaData*>(
      ::com::alipay::dds::api::v1::MetaData::internal_default_instance());
  ::com::alipay::dds::api::v1::_Database_default_instance_._instance.get_mutable()->database_authorities_ = const_cast< ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference*>(
      ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference::internal_default_instance());
  ::com::alipay::dds::api::v1::_Database_default_instance_._instance.get_mutable()->database_variables_ = const_cast< ::com::alipay::dds::api::v1::DatabaseVariablesReference*>(
      ::com::alipay::dds::api::v1::DatabaseVariablesReference::internal_default_instance());
  ::com::alipay::dds::api::v1::_Database_default_instance_._instance.get_mutable()->database_properties_ = const_cast< ::com::alipay::dds::api::v1::DatabasePropertiesReference*>(
      ::com::alipay::dds::api::v1::DatabasePropertiesReference::internal_default_instance());
  ::com::alipay::dds::api::v1::_Database_default_instance_._instance.get_mutable()->shards_topology_ = const_cast< ::com::alipay::dds::api::v1::ShardsTopologyReference*>(
      ::com::alipay::dds::api::v1::ShardsTopologyReference::internal_default_instance());
  ::com::alipay::dds::api::v1::_Database_default_instance_._instance.get_mutable()->shards_router_ = const_cast< ::com::alipay::dds::api::v1::ShardsRouterReference*>(
      ::com::alipay::dds::api::v1::ShardsRouterReference::internal_default_instance());
  ::com::alipay::dds::api::v1::_Database_default_instance_._instance.get_mutable()->shards_distribute_ = const_cast< ::com::alipay::dds::api::v1::ShardsDistributeReference*>(
      ::com::alipay::dds::api::v1::ShardsDistributeReference::internal_default_instance());
  ::com::alipay::dds::api::v1::_Database_default_instance_._instance.get_mutable()->shards_connector_ = const_cast< ::com::alipay::dds::api::v1::ShardsConnectorReference*>(
      ::com::alipay::dds::api::v1::ShardsConnectorReference::internal_default_instance());
  ::com::alipay::dds::api::v1::_Database_default_instance_._instance.get_mutable()->shards_properties_ = const_cast< ::com::alipay::dds::api::v1::ShardsPropertiesReference*>(
      ::com::alipay::dds::api::v1::ShardsPropertiesReference::internal_default_instance());
  ::com::alipay::dds::api::v1::_Database_default_instance_._instance.get_mutable()->extension_ = const_cast< ::com::alipay::dds::api::v1::MarkedMultiReference*>(
      ::com::alipay::dds::api::v1::MarkedMultiReference::internal_default_instance());
}
class Database::HasBitSetters {
 public:
  static const ::com::alipay::dds::api::v1::MetaData& metadata(const Database* msg);
  static const ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference& database_authorities(const Database* msg);
  static const ::com::alipay::dds::api::v1::DatabaseVariablesReference& database_variables(const Database* msg);
  static const ::com::alipay::dds::api::v1::DatabasePropertiesReference& database_properties(const Database* msg);
  static const ::com::alipay::dds::api::v1::ShardsTopologyReference& shards_topology(const Database* msg);
  static const ::com::alipay::dds::api::v1::ShardsRouterReference& shards_router(const Database* msg);
  static const ::com::alipay::dds::api::v1::ShardsDistributeReference& shards_distribute(const Database* msg);
  static const ::com::alipay::dds::api::v1::ShardsConnectorReference& shards_connector(const Database* msg);
  static const ::com::alipay::dds::api::v1::ShardsPropertiesReference& shards_properties(const Database* msg);
  static const ::com::alipay::dds::api::v1::MarkedMultiReference& extension(const Database* msg);
};

const ::com::alipay::dds::api::v1::MetaData&
Database::HasBitSetters::metadata(const Database* msg) {
  return *msg->metadata_;
}
const ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference&
Database::HasBitSetters::database_authorities(const Database* msg) {
  return *msg->database_authorities_;
}
const ::com::alipay::dds::api::v1::DatabaseVariablesReference&
Database::HasBitSetters::database_variables(const Database* msg) {
  return *msg->database_variables_;
}
const ::com::alipay::dds::api::v1::DatabasePropertiesReference&
Database::HasBitSetters::database_properties(const Database* msg) {
  return *msg->database_properties_;
}
const ::com::alipay::dds::api::v1::ShardsTopologyReference&
Database::HasBitSetters::shards_topology(const Database* msg) {
  return *msg->shards_topology_;
}
const ::com::alipay::dds::api::v1::ShardsRouterReference&
Database::HasBitSetters::shards_router(const Database* msg) {
  return *msg->shards_router_;
}
const ::com::alipay::dds::api::v1::ShardsDistributeReference&
Database::HasBitSetters::shards_distribute(const Database* msg) {
  return *msg->shards_distribute_;
}
const ::com::alipay::dds::api::v1::ShardsConnectorReference&
Database::HasBitSetters::shards_connector(const Database* msg) {
  return *msg->shards_connector_;
}
const ::com::alipay::dds::api::v1::ShardsPropertiesReference&
Database::HasBitSetters::shards_properties(const Database* msg) {
  return *msg->shards_properties_;
}
const ::com::alipay::dds::api::v1::MarkedMultiReference&
Database::HasBitSetters::extension(const Database* msg) {
  return *msg->extension_;
}
void Database::clear_metadata() {
  if (GetArenaNoVirtual() == nullptr && metadata_ != nullptr) {
    delete metadata_;
  }
  metadata_ = nullptr;
}
void Database::clear_extension() {
  if (GetArenaNoVirtual() == nullptr && extension_ != nullptr) {
    delete extension_;
  }
  extension_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Database::kMetadataFieldNumber;
const int Database::kClusterNameFieldNumber;
const int Database::kTenantNameFieldNumber;
const int Database::kDatabaseNameFieldNumber;
const int Database::kDatabaseModeFieldNumber;
const int Database::kDatabaseTypeFieldNumber;
const int Database::kVariablesFieldNumber;
const int Database::kDatabaseAuthoritiesFieldNumber;
const int Database::kDatabaseVariablesFieldNumber;
const int Database::kDatabasePropertiesFieldNumber;
const int Database::kShardsTopologyFieldNumber;
const int Database::kShardsRouterFieldNumber;
const int Database::kShardsDistributeFieldNumber;
const int Database::kShardsConnectorFieldNumber;
const int Database::kShardsPropertiesFieldNumber;
const int Database::kExtensionFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Database::Database()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.alipay.dds.api.v1.Database)
}
Database::Database(const Database& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  variables_.MergeFrom(from.variables_);
  cluster_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.cluster_name().size() > 0) {
    cluster_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cluster_name_);
  }
  tenant_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.tenant_name().size() > 0) {
    tenant_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tenant_name_);
  }
  database_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.database_name().size() > 0) {
    database_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.database_name_);
  }
  database_mode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.database_mode().size() > 0) {
    database_mode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.database_mode_);
  }
  database_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.database_type().size() > 0) {
    database_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.database_type_);
  }
  if (from.has_metadata()) {
    metadata_ = new ::com::alipay::dds::api::v1::MetaData(*from.metadata_);
  } else {
    metadata_ = nullptr;
  }
  if (from.has_database_authorities()) {
    database_authorities_ = new ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference(*from.database_authorities_);
  } else {
    database_authorities_ = nullptr;
  }
  if (from.has_database_variables()) {
    database_variables_ = new ::com::alipay::dds::api::v1::DatabaseVariablesReference(*from.database_variables_);
  } else {
    database_variables_ = nullptr;
  }
  if (from.has_database_properties()) {
    database_properties_ = new ::com::alipay::dds::api::v1::DatabasePropertiesReference(*from.database_properties_);
  } else {
    database_properties_ = nullptr;
  }
  if (from.has_shards_topology()) {
    shards_topology_ = new ::com::alipay::dds::api::v1::ShardsTopologyReference(*from.shards_topology_);
  } else {
    shards_topology_ = nullptr;
  }
  if (from.has_shards_router()) {
    shards_router_ = new ::com::alipay::dds::api::v1::ShardsRouterReference(*from.shards_router_);
  } else {
    shards_router_ = nullptr;
  }
  if (from.has_shards_distribute()) {
    shards_distribute_ = new ::com::alipay::dds::api::v1::ShardsDistributeReference(*from.shards_distribute_);
  } else {
    shards_distribute_ = nullptr;
  }
  if (from.has_shards_connector()) {
    shards_connector_ = new ::com::alipay::dds::api::v1::ShardsConnectorReference(*from.shards_connector_);
  } else {
    shards_connector_ = nullptr;
  }
  if (from.has_shards_properties()) {
    shards_properties_ = new ::com::alipay::dds::api::v1::ShardsPropertiesReference(*from.shards_properties_);
  } else {
    shards_properties_ = nullptr;
  }
  if (from.has_extension()) {
    extension_ = new ::com::alipay::dds::api::v1::MarkedMultiReference(*from.extension_);
  } else {
    extension_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:com.alipay.dds.api.v1.Database)
}

void Database::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Database_database_2eproto.base);
  cluster_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tenant_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  database_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  database_mode_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  database_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&metadata_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&extension_) -
      reinterpret_cast<char*>(&metadata_)) + sizeof(extension_));
}

Database::~Database() {
  // @@protoc_insertion_point(destructor:com.alipay.dds.api.v1.Database)
  SharedDtor();
}

void Database::SharedDtor() {
  cluster_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tenant_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  database_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  database_mode_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  database_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete metadata_;
  if (this != internal_default_instance()) delete database_authorities_;
  if (this != internal_default_instance()) delete database_variables_;
  if (this != internal_default_instance()) delete database_properties_;
  if (this != internal_default_instance()) delete shards_topology_;
  if (this != internal_default_instance()) delete shards_router_;
  if (this != internal_default_instance()) delete shards_distribute_;
  if (this != internal_default_instance()) delete shards_connector_;
  if (this != internal_default_instance()) delete shards_properties_;
  if (this != internal_default_instance()) delete extension_;
}

void Database::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Database& Database::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Database_database_2eproto.base);
  return *internal_default_instance();
}


void Database::Clear() {
// @@protoc_insertion_point(message_clear_start:com.alipay.dds.api.v1.Database)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  variables_.Clear();
  cluster_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tenant_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  database_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  database_mode_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  database_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && metadata_ != nullptr) {
    delete metadata_;
  }
  metadata_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && database_authorities_ != nullptr) {
    delete database_authorities_;
  }
  database_authorities_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && database_variables_ != nullptr) {
    delete database_variables_;
  }
  database_variables_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && database_properties_ != nullptr) {
    delete database_properties_;
  }
  database_properties_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && shards_topology_ != nullptr) {
    delete shards_topology_;
  }
  shards_topology_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && shards_router_ != nullptr) {
    delete shards_router_;
  }
  shards_router_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && shards_distribute_ != nullptr) {
    delete shards_distribute_;
  }
  shards_distribute_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && shards_connector_ != nullptr) {
    delete shards_connector_;
  }
  shards_connector_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && shards_properties_ != nullptr) {
    delete shards_properties_;
  }
  shards_properties_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && extension_ != nullptr) {
    delete extension_;
  }
  extension_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Database::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Database*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // .com.alipay.dds.api.v1.MetaData metadata = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::com::alipay::dds::api::v1::MetaData::_InternalParse;
        object = msg->mutable_metadata();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // string cluster_name = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.Database.cluster_name");
        object = msg->mutable_cluster_name();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string tenant_name = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.Database.tenant_name");
        object = msg->mutable_tenant_name();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string database_name = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.Database.database_name");
        object = msg->mutable_database_name();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string database_mode = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.Database.database_mode");
        object = msg->mutable_database_mode();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string database_type = 6;
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("com.alipay.dds.api.v1.Database.database_type");
        object = msg->mutable_database_type();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // map<string, string> variables = 7;
      case 7: {
        if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::protobuf::internal::SlowMapEntryParser;
          auto parse_map = ::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse::_ParseMap;
          ctx->extra_parse_data().payload.clear();
          ctx->extra_parse_data().parse_map = parse_map;
          object = &msg->variables_;
          if (size > end - ptr) goto len_delim_till_end;
          auto newend = ptr + size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(parse_map(ptr, newend, object, ctx));
          ptr = newend;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 58 && (ptr += 1));
        break;
      }
      // .com.alipay.dds.api.v1.DatabaseAuthoritiesReference database_authorities = 8;
      case 8: {
        if (static_cast<::google::protobuf::uint8>(tag) != 66) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference::_InternalParse;
        object = msg->mutable_database_authorities();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .com.alipay.dds.api.v1.DatabaseVariablesReference database_variables = 9;
      case 9: {
        if (static_cast<::google::protobuf::uint8>(tag) != 74) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::com::alipay::dds::api::v1::DatabaseVariablesReference::_InternalParse;
        object = msg->mutable_database_variables();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .com.alipay.dds.api.v1.DatabasePropertiesReference database_properties = 10;
      case 10: {
        if (static_cast<::google::protobuf::uint8>(tag) != 82) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::com::alipay::dds::api::v1::DatabasePropertiesReference::_InternalParse;
        object = msg->mutable_database_properties();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .com.alipay.dds.api.v1.ShardsTopologyReference shards_topology = 11;
      case 11: {
        if (static_cast<::google::protobuf::uint8>(tag) != 90) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::com::alipay::dds::api::v1::ShardsTopologyReference::_InternalParse;
        object = msg->mutable_shards_topology();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .com.alipay.dds.api.v1.ShardsRouterReference shards_router = 12;
      case 12: {
        if (static_cast<::google::protobuf::uint8>(tag) != 98) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::com::alipay::dds::api::v1::ShardsRouterReference::_InternalParse;
        object = msg->mutable_shards_router();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .com.alipay.dds.api.v1.ShardsDistributeReference shards_distribute = 13;
      case 13: {
        if (static_cast<::google::protobuf::uint8>(tag) != 106) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::com::alipay::dds::api::v1::ShardsDistributeReference::_InternalParse;
        object = msg->mutable_shards_distribute();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .com.alipay.dds.api.v1.ShardsConnectorReference shards_connector = 14;
      case 14: {
        if (static_cast<::google::protobuf::uint8>(tag) != 114) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::com::alipay::dds::api::v1::ShardsConnectorReference::_InternalParse;
        object = msg->mutable_shards_connector();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .com.alipay.dds.api.v1.ShardsPropertiesReference shards_properties = 15;
      case 15: {
        if (static_cast<::google::protobuf::uint8>(tag) != 122) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::com::alipay::dds::api::v1::ShardsPropertiesReference::_InternalParse;
        object = msg->mutable_shards_properties();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .com.alipay.dds.api.v1.MarkedMultiReference extension = 16;
      case 16: {
        if (static_cast<::google::protobuf::uint8>(tag) != 130) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::com::alipay::dds::api::v1::MarkedMultiReference::_InternalParse;
        object = msg->mutable_extension();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Database::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.alipay.dds.api.v1.Database)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .com.alipay.dds.api.v1.MetaData metadata = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_metadata()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string cluster_name = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_cluster_name()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->cluster_name().data(), static_cast<int>(this->cluster_name().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.Database.cluster_name"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string tenant_name = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tenant_name()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->tenant_name().data(), static_cast<int>(this->tenant_name().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.Database.tenant_name"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string database_name = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_database_name()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->database_name().data(), static_cast<int>(this->database_name().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.Database.database_name"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string database_mode = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_database_mode()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->database_mode().data(), static_cast<int>(this->database_mode().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.Database.database_mode"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string database_type = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_database_type()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->database_type().data(), static_cast<int>(this->database_type().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.Database.database_type"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // map<string, string> variables = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) {
          Database_VariablesEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              Database_VariablesEntry_DoNotUse,
              ::std::string, ::std::string,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              0 >,
            ::google::protobuf::Map< ::std::string, ::std::string > > parser(&variables_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast<int>(parser.key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.Database.VariablesEntry.key"));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.value().data(), static_cast<int>(parser.value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.alipay.dds.api.v1.Database.VariablesEntry.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.alipay.dds.api.v1.DatabaseAuthoritiesReference database_authorities = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (66 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_database_authorities()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.alipay.dds.api.v1.DatabaseVariablesReference database_variables = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (74 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_database_variables()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.alipay.dds.api.v1.DatabasePropertiesReference database_properties = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (82 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_database_properties()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.alipay.dds.api.v1.ShardsTopologyReference shards_topology = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (90 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_shards_topology()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.alipay.dds.api.v1.ShardsRouterReference shards_router = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (98 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_shards_router()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.alipay.dds.api.v1.ShardsDistributeReference shards_distribute = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (106 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_shards_distribute()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.alipay.dds.api.v1.ShardsConnectorReference shards_connector = 14;
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (114 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_shards_connector()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.alipay.dds.api.v1.ShardsPropertiesReference shards_properties = 15;
      case 15: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (122 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_shards_properties()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.alipay.dds.api.v1.MarkedMultiReference extension = 16;
      case 16: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (130 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_extension()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.alipay.dds.api.v1.Database)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.alipay.dds.api.v1.Database)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Database::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.alipay.dds.api.v1.Database)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.alipay.dds.api.v1.MetaData metadata = 1;
  if (this->has_metadata()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::metadata(this), output);
  }

  // string cluster_name = 2;
  if (this->cluster_name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->cluster_name().data(), static_cast<int>(this->cluster_name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.Database.cluster_name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->cluster_name(), output);
  }

  // string tenant_name = 3;
  if (this->tenant_name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->tenant_name().data(), static_cast<int>(this->tenant_name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.Database.tenant_name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->tenant_name(), output);
  }

  // string database_name = 4;
  if (this->database_name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->database_name().data(), static_cast<int>(this->database_name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.Database.database_name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->database_name(), output);
  }

  // string database_mode = 5;
  if (this->database_mode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->database_mode().data(), static_cast<int>(this->database_mode().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.Database.database_mode");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->database_mode(), output);
  }

  // string database_type = 6;
  if (this->database_type().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->database_type().data(), static_cast<int>(this->database_type().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.Database.database_type");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->database_type(), output);
  }

  // map<string, string> variables = 7;
  if (!this->variables().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "com.alipay.dds.api.v1.Database.VariablesEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "com.alipay.dds.api.v1.Database.VariablesEntry.value");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->variables().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->variables().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->variables().begin();
          it != this->variables().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<Database_VariablesEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(variables_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(7, *entry, output);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Database_VariablesEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->variables().begin();
          it != this->variables().end(); ++it) {
        entry.reset(variables_.NewEntryWrapper(it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(7, *entry, output);
        Utf8Check::Check(&(*it));
      }
    }
  }

  // .com.alipay.dds.api.v1.DatabaseAuthoritiesReference database_authorities = 8;
  if (this->has_database_authorities()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      8, HasBitSetters::database_authorities(this), output);
  }

  // .com.alipay.dds.api.v1.DatabaseVariablesReference database_variables = 9;
  if (this->has_database_variables()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      9, HasBitSetters::database_variables(this), output);
  }

  // .com.alipay.dds.api.v1.DatabasePropertiesReference database_properties = 10;
  if (this->has_database_properties()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      10, HasBitSetters::database_properties(this), output);
  }

  // .com.alipay.dds.api.v1.ShardsTopologyReference shards_topology = 11;
  if (this->has_shards_topology()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      11, HasBitSetters::shards_topology(this), output);
  }

  // .com.alipay.dds.api.v1.ShardsRouterReference shards_router = 12;
  if (this->has_shards_router()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      12, HasBitSetters::shards_router(this), output);
  }

  // .com.alipay.dds.api.v1.ShardsDistributeReference shards_distribute = 13;
  if (this->has_shards_distribute()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      13, HasBitSetters::shards_distribute(this), output);
  }

  // .com.alipay.dds.api.v1.ShardsConnectorReference shards_connector = 14;
  if (this->has_shards_connector()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      14, HasBitSetters::shards_connector(this), output);
  }

  // .com.alipay.dds.api.v1.ShardsPropertiesReference shards_properties = 15;
  if (this->has_shards_properties()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      15, HasBitSetters::shards_properties(this), output);
  }

  // .com.alipay.dds.api.v1.MarkedMultiReference extension = 16;
  if (this->has_extension()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      16, HasBitSetters::extension(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.alipay.dds.api.v1.Database)
}

::google::protobuf::uint8* Database::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.alipay.dds.api.v1.Database)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.alipay.dds.api.v1.MetaData metadata = 1;
  if (this->has_metadata()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::metadata(this), target);
  }

  // string cluster_name = 2;
  if (this->cluster_name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->cluster_name().data(), static_cast<int>(this->cluster_name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.Database.cluster_name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->cluster_name(), target);
  }

  // string tenant_name = 3;
  if (this->tenant_name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->tenant_name().data(), static_cast<int>(this->tenant_name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.Database.tenant_name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->tenant_name(), target);
  }

  // string database_name = 4;
  if (this->database_name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->database_name().data(), static_cast<int>(this->database_name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.Database.database_name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->database_name(), target);
  }

  // string database_mode = 5;
  if (this->database_mode().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->database_mode().data(), static_cast<int>(this->database_mode().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.Database.database_mode");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->database_mode(), target);
  }

  // string database_type = 6;
  if (this->database_type().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->database_type().data(), static_cast<int>(this->database_type().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.alipay.dds.api.v1.Database.database_type");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->database_type(), target);
  }

  // map<string, string> variables = 7;
  if (!this->variables().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "com.alipay.dds.api.v1.Database.VariablesEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "com.alipay.dds.api.v1.Database.VariablesEntry.value");
      }
    };

    if (false &&
        this->variables().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->variables().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->variables().begin();
          it != this->variables().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<Database_VariablesEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(variables_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(7, *entry, target);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Database_VariablesEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->variables().begin();
          it != this->variables().end(); ++it) {
        entry.reset(variables_.NewEntryWrapper(it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(7, *entry, target);
        Utf8Check::Check(&(*it));
      }
    }
  }

  // .com.alipay.dds.api.v1.DatabaseAuthoritiesReference database_authorities = 8;
  if (this->has_database_authorities()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        8, HasBitSetters::database_authorities(this), target);
  }

  // .com.alipay.dds.api.v1.DatabaseVariablesReference database_variables = 9;
  if (this->has_database_variables()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        9, HasBitSetters::database_variables(this), target);
  }

  // .com.alipay.dds.api.v1.DatabasePropertiesReference database_properties = 10;
  if (this->has_database_properties()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        10, HasBitSetters::database_properties(this), target);
  }

  // .com.alipay.dds.api.v1.ShardsTopologyReference shards_topology = 11;
  if (this->has_shards_topology()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        11, HasBitSetters::shards_topology(this), target);
  }

  // .com.alipay.dds.api.v1.ShardsRouterReference shards_router = 12;
  if (this->has_shards_router()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        12, HasBitSetters::shards_router(this), target);
  }

  // .com.alipay.dds.api.v1.ShardsDistributeReference shards_distribute = 13;
  if (this->has_shards_distribute()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        13, HasBitSetters::shards_distribute(this), target);
  }

  // .com.alipay.dds.api.v1.ShardsConnectorReference shards_connector = 14;
  if (this->has_shards_connector()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        14, HasBitSetters::shards_connector(this), target);
  }

  // .com.alipay.dds.api.v1.ShardsPropertiesReference shards_properties = 15;
  if (this->has_shards_properties()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        15, HasBitSetters::shards_properties(this), target);
  }

  // .com.alipay.dds.api.v1.MarkedMultiReference extension = 16;
  if (this->has_extension()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        16, HasBitSetters::extension(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.alipay.dds.api.v1.Database)
  return target;
}

size_t Database::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.alipay.dds.api.v1.Database)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, string> variables = 7;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->variables_size());
  {
    ::std::unique_ptr<Database_VariablesEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
        it = this->variables().begin();
        it != this->variables().end(); ++it) {
      entry.reset(variables_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  // string cluster_name = 2;
  if (this->cluster_name().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->cluster_name());
  }

  // string tenant_name = 3;
  if (this->tenant_name().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->tenant_name());
  }

  // string database_name = 4;
  if (this->database_name().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->database_name());
  }

  // string database_mode = 5;
  if (this->database_mode().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->database_mode());
  }

  // string database_type = 6;
  if (this->database_type().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->database_type());
  }

  // .com.alipay.dds.api.v1.MetaData metadata = 1;
  if (this->has_metadata()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *metadata_);
  }

  // .com.alipay.dds.api.v1.DatabaseAuthoritiesReference database_authorities = 8;
  if (this->has_database_authorities()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *database_authorities_);
  }

  // .com.alipay.dds.api.v1.DatabaseVariablesReference database_variables = 9;
  if (this->has_database_variables()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *database_variables_);
  }

  // .com.alipay.dds.api.v1.DatabasePropertiesReference database_properties = 10;
  if (this->has_database_properties()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *database_properties_);
  }

  // .com.alipay.dds.api.v1.ShardsTopologyReference shards_topology = 11;
  if (this->has_shards_topology()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *shards_topology_);
  }

  // .com.alipay.dds.api.v1.ShardsRouterReference shards_router = 12;
  if (this->has_shards_router()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *shards_router_);
  }

  // .com.alipay.dds.api.v1.ShardsDistributeReference shards_distribute = 13;
  if (this->has_shards_distribute()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *shards_distribute_);
  }

  // .com.alipay.dds.api.v1.ShardsConnectorReference shards_connector = 14;
  if (this->has_shards_connector()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *shards_connector_);
  }

  // .com.alipay.dds.api.v1.ShardsPropertiesReference shards_properties = 15;
  if (this->has_shards_properties()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *shards_properties_);
  }

  // .com.alipay.dds.api.v1.MarkedMultiReference extension = 16;
  if (this->has_extension()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *extension_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Database::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.alipay.dds.api.v1.Database)
  GOOGLE_DCHECK_NE(&from, this);
  const Database* source =
      ::google::protobuf::DynamicCastToGenerated<Database>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.alipay.dds.api.v1.Database)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.alipay.dds.api.v1.Database)
    MergeFrom(*source);
  }
}

void Database::MergeFrom(const Database& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.alipay.dds.api.v1.Database)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  variables_.MergeFrom(from.variables_);
  if (from.cluster_name().size() > 0) {

    cluster_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cluster_name_);
  }
  if (from.tenant_name().size() > 0) {

    tenant_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tenant_name_);
  }
  if (from.database_name().size() > 0) {

    database_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.database_name_);
  }
  if (from.database_mode().size() > 0) {

    database_mode_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.database_mode_);
  }
  if (from.database_type().size() > 0) {

    database_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.database_type_);
  }
  if (from.has_metadata()) {
    mutable_metadata()->::com::alipay::dds::api::v1::MetaData::MergeFrom(from.metadata());
  }
  if (from.has_database_authorities()) {
    mutable_database_authorities()->::com::alipay::dds::api::v1::DatabaseAuthoritiesReference::MergeFrom(from.database_authorities());
  }
  if (from.has_database_variables()) {
    mutable_database_variables()->::com::alipay::dds::api::v1::DatabaseVariablesReference::MergeFrom(from.database_variables());
  }
  if (from.has_database_properties()) {
    mutable_database_properties()->::com::alipay::dds::api::v1::DatabasePropertiesReference::MergeFrom(from.database_properties());
  }
  if (from.has_shards_topology()) {
    mutable_shards_topology()->::com::alipay::dds::api::v1::ShardsTopologyReference::MergeFrom(from.shards_topology());
  }
  if (from.has_shards_router()) {
    mutable_shards_router()->::com::alipay::dds::api::v1::ShardsRouterReference::MergeFrom(from.shards_router());
  }
  if (from.has_shards_distribute()) {
    mutable_shards_distribute()->::com::alipay::dds::api::v1::ShardsDistributeReference::MergeFrom(from.shards_distribute());
  }
  if (from.has_shards_connector()) {
    mutable_shards_connector()->::com::alipay::dds::api::v1::ShardsConnectorReference::MergeFrom(from.shards_connector());
  }
  if (from.has_shards_properties()) {
    mutable_shards_properties()->::com::alipay::dds::api::v1::ShardsPropertiesReference::MergeFrom(from.shards_properties());
  }
  if (from.has_extension()) {
    mutable_extension()->::com::alipay::dds::api::v1::MarkedMultiReference::MergeFrom(from.extension());
  }
}

void Database::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.alipay.dds.api.v1.Database)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Database::CopyFrom(const Database& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.alipay.dds.api.v1.Database)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Database::IsInitialized() const {
  return true;
}

void Database::Swap(Database* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Database::InternalSwap(Database* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  variables_.Swap(&other->variables_);
  cluster_name_.Swap(&other->cluster_name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  tenant_name_.Swap(&other->tenant_name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  database_name_.Swap(&other->database_name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  database_mode_.Swap(&other->database_mode_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  database_type_.Swap(&other->database_type_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(metadata_, other->metadata_);
  swap(database_authorities_, other->database_authorities_);
  swap(database_variables_, other->database_variables_);
  swap(database_properties_, other->database_properties_);
  swap(shards_topology_, other->shards_topology_);
  swap(shards_router_, other->shards_router_);
  swap(shards_distribute_, other->shards_distribute_);
  swap(shards_connector_, other->shards_connector_);
  swap(shards_properties_, other->shards_properties_);
  swap(extension_, other->extension_);
}

::google::protobuf::Metadata Database::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_database_2eproto);
  return ::file_level_metadata_database_2eproto[kIndexInFileMessages];
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace api
}  // namespace dds
}  // namespace alipay
}  // namespace com
namespace google {
namespace protobuf {
template<> PROTOBUF_NOINLINE ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference* Arena::CreateMaybeMessage< ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference >(Arena* arena) {
  return Arena::CreateInternal< ::com::alipay::dds::api::v1::DatabaseAuthoritiesReference >(arena);
}
template<> PROTOBUF_NOINLINE ::com::alipay::dds::api::v1::DatabaseVariablesReference* Arena::CreateMaybeMessage< ::com::alipay::dds::api::v1::DatabaseVariablesReference >(Arena* arena) {
  return Arena::CreateInternal< ::com::alipay::dds::api::v1::DatabaseVariablesReference >(arena);
}
template<> PROTOBUF_NOINLINE ::com::alipay::dds::api::v1::DatabasePropertiesReference* Arena::CreateMaybeMessage< ::com::alipay::dds::api::v1::DatabasePropertiesReference >(Arena* arena) {
  return Arena::CreateInternal< ::com::alipay::dds::api::v1::DatabasePropertiesReference >(arena);
}
template<> PROTOBUF_NOINLINE ::com::alipay::dds::api::v1::ShardsTopologyReference* Arena::CreateMaybeMessage< ::com::alipay::dds::api::v1::ShardsTopologyReference >(Arena* arena) {
  return Arena::CreateInternal< ::com::alipay::dds::api::v1::ShardsTopologyReference >(arena);
}
template<> PROTOBUF_NOINLINE ::com::alipay::dds::api::v1::ShardsRouterReference* Arena::CreateMaybeMessage< ::com::alipay::dds::api::v1::ShardsRouterReference >(Arena* arena) {
  return Arena::CreateInternal< ::com::alipay::dds::api::v1::ShardsRouterReference >(arena);
}
template<> PROTOBUF_NOINLINE ::com::alipay::dds::api::v1::ShardsDistributeReference* Arena::CreateMaybeMessage< ::com::alipay::dds::api::v1::ShardsDistributeReference >(Arena* arena) {
  return Arena::CreateInternal< ::com::alipay::dds::api::v1::ShardsDistributeReference >(arena);
}
template<> PROTOBUF_NOINLINE ::com::alipay::dds::api::v1::ShardsConnectorReference* Arena::CreateMaybeMessage< ::com::alipay::dds::api::v1::ShardsConnectorReference >(Arena* arena) {
  return Arena::CreateInternal< ::com::alipay::dds::api::v1::ShardsConnectorReference >(arena);
}
template<> PROTOBUF_NOINLINE ::com::alipay::dds::api::v1::ShardsPropertiesReference* Arena::CreateMaybeMessage< ::com::alipay::dds::api::v1::ShardsPropertiesReference >(Arena* arena) {
  return Arena::CreateInternal< ::com::alipay::dds::api::v1::ShardsPropertiesReference >(arena);
}
template<> PROTOBUF_NOINLINE ::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse* Arena::CreateMaybeMessage< ::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::com::alipay::dds::api::v1::Database_VariablesEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::com::alipay::dds::api::v1::Database* Arena::CreateMaybeMessage< ::com::alipay::dds::api::v1::Database >(Arena* arena) {
  return Arena::CreateInternal< ::com::alipay::dds::api::v1::Database >(arena);
}
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
