@@ -359,23 +359,7 @@ class TTableDescription::TImpl {
359359 }
360360
361361 // read replicas settings
362- if (proto.has_read_replicas_settings ()) {
363- const auto settings = proto.read_replicas_settings ();
364- switch (settings.settings_case ()) {
365- case Ydb::Table::ReadReplicasSettings::kPerAzReadReplicasCount :
366- ReadReplicasSettings_ = TReadReplicasSettings (
367- TReadReplicasSettings::EMode::PerAz,
368- settings.per_az_read_replicas_count ());
369- break ;
370- case Ydb::Table::ReadReplicasSettings::kAnyAzReadReplicasCount :
371- ReadReplicasSettings_ = TReadReplicasSettings (
372- TReadReplicasSettings::EMode::AnyAz,
373- settings.any_az_read_replicas_count ());
374- break ;
375- default :
376- break ;
377- }
378- }
362+ ReadReplicasSettings_ = TReadReplicasSettings::FromProto (proto.read_replicas_settings ());
379363 }
380364
381365public:
@@ -973,16 +957,7 @@ void TTableDescription::SerializeTo(Ydb::Table::CreateTableRequest& request) con
973957 }
974958
975959 if (const auto & settings = Impl_->GetReadReplicasSettings ()) {
976- switch (settings->GetMode ()) {
977- case TReadReplicasSettings::EMode::PerAz:
978- request.mutable_read_replicas_settings ()->set_per_az_read_replicas_count (settings->GetReadReplicasCount ());
979- break ;
980- case TReadReplicasSettings::EMode::AnyAz:
981- request.mutable_read_replicas_settings ()->set_any_az_read_replicas_count (settings->GetReadReplicasCount ());
982- break ;
983- default :
984- break ;
985- }
960+ settings->SerializeTo (*request.mutable_read_replicas_settings ());
986961 }
987962}
988963
@@ -1745,18 +1720,7 @@ static Ydb::Table::AlterTableRequest MakeAlterTableProtoRequest(
17451720
17461721 if (settings.SetReadReplicasSettings_ .has_value ()) {
17471722 const auto & replSettings = settings.SetReadReplicasSettings_ .value ();
1748- switch (replSettings.GetMode ()) {
1749- case TReadReplicasSettings::EMode::PerAz:
1750- request.mutable_set_read_replicas_settings ()->set_per_az_read_replicas_count (
1751- replSettings.GetReadReplicasCount ());
1752- break ;
1753- case TReadReplicasSettings::EMode::AnyAz:
1754- request.mutable_set_read_replicas_settings ()->set_any_az_read_replicas_count (
1755- replSettings.GetReadReplicasCount ());
1756- break ;
1757- default :
1758- break ;
1759- }
1723+ replSettings.SerializeTo (*request.mutable_set_read_replicas_settings ());
17601724 }
17611725
17621726 return request;
@@ -2373,6 +2337,34 @@ uint64_t TIndexDescription::GetSizeBytes() const {
23732337 return SizeBytes_;
23742338}
23752339
2340+ std::optional<TReadReplicasSettings> TReadReplicasSettings::FromProto (const Ydb::Table::ReadReplicasSettings& proto) {
2341+ switch (proto.settings_case ()) {
2342+ case Ydb::Table::ReadReplicasSettings::kPerAzReadReplicasCount :
2343+ return TReadReplicasSettings (
2344+ TReadReplicasSettings::EMode::PerAz,
2345+ proto.per_az_read_replicas_count ());
2346+ case Ydb::Table::ReadReplicasSettings::kAnyAzReadReplicasCount :
2347+ return TReadReplicasSettings (
2348+ TReadReplicasSettings::EMode::AnyAz,
2349+ proto.any_az_read_replicas_count ());
2350+ default :
2351+ return { };
2352+ }
2353+ }
2354+
2355+ void TReadReplicasSettings::SerializeTo (Ydb::Table::ReadReplicasSettings& proto) const {
2356+ switch (GetMode ()) {
2357+ case TReadReplicasSettings::EMode::PerAz:
2358+ proto.set_per_az_read_replicas_count (GetReadReplicasCount ());
2359+ break ;
2360+ case TReadReplicasSettings::EMode::AnyAz:
2361+ proto.set_any_az_read_replicas_count (GetReadReplicasCount ());
2362+ break ;
2363+ default :
2364+ break ;
2365+ }
2366+ }
2367+
23762368TGlobalIndexSettings TGlobalIndexSettings::FromProto (const Ydb::Table::GlobalIndexSettings& proto) {
23772369 auto partitionsFromProto = [](const Ydb::Table::GlobalIndexSettings& proto) -> TUniformOrExplicitPartitions {
23782370 switch (proto.partitions_case ()) {
@@ -2387,7 +2379,8 @@ TGlobalIndexSettings TGlobalIndexSettings::FromProto(const Ydb::Table::GlobalInd
23872379
23882380 return {
23892381 .PartitioningSettings = TPartitioningSettings (proto.partitioning_settings ()),
2390- .Partitions = partitionsFromProto (proto)
2382+ .Partitions = partitionsFromProto (proto),
2383+ .ReadReplicasSettings = TReadReplicasSettings::FromProto (proto.read_replicas_settings ())
23912384 };
23922385}
23932386
@@ -2403,6 +2396,10 @@ void TGlobalIndexSettings::SerializeTo(Ydb::Table::GlobalIndexSettings& settings
24032396 }
24042397 };
24052398 std::visit (std::move (variantVisitor), Partitions);
2399+
2400+ if (ReadReplicasSettings) {
2401+ ReadReplicasSettings->SerializeTo (*settings.mutable_read_replicas_settings ());
2402+ }
24062403}
24072404
24082405TVectorIndexSettings TVectorIndexSettings::FromProto (const Ydb::Table::VectorIndexSettings& proto) {
0 commit comments