@@ -359,23 +359,7 @@ class TTableDescription::TImpl {
359
359
}
360
360
361
361
// 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 ());
379
363
}
380
364
381
365
public:
@@ -973,16 +957,7 @@ void TTableDescription::SerializeTo(Ydb::Table::CreateTableRequest& request) con
973
957
}
974
958
975
959
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 ());
986
961
}
987
962
}
988
963
@@ -1745,18 +1720,7 @@ static Ydb::Table::AlterTableRequest MakeAlterTableProtoRequest(
1745
1720
1746
1721
if (settings.SetReadReplicasSettings_ .has_value ()) {
1747
1722
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 ());
1760
1724
}
1761
1725
1762
1726
return request;
@@ -2373,6 +2337,34 @@ uint64_t TIndexDescription::GetSizeBytes() const {
2373
2337
return SizeBytes_;
2374
2338
}
2375
2339
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
+
2376
2368
TGlobalIndexSettings TGlobalIndexSettings::FromProto (const Ydb::Table::GlobalIndexSettings& proto) {
2377
2369
auto partitionsFromProto = [](const Ydb::Table::GlobalIndexSettings& proto) -> TUniformOrExplicitPartitions {
2378
2370
switch (proto.partitions_case ()) {
@@ -2387,7 +2379,8 @@ TGlobalIndexSettings TGlobalIndexSettings::FromProto(const Ydb::Table::GlobalInd
2387
2379
2388
2380
return {
2389
2381
.PartitioningSettings = TPartitioningSettings (proto.partitioning_settings ()),
2390
- .Partitions = partitionsFromProto (proto)
2382
+ .Partitions = partitionsFromProto (proto),
2383
+ .ReadReplicasSettings = TReadReplicasSettings::FromProto (proto.read_replicas_settings ())
2391
2384
};
2392
2385
}
2393
2386
@@ -2403,6 +2396,10 @@ void TGlobalIndexSettings::SerializeTo(Ydb::Table::GlobalIndexSettings& settings
2403
2396
}
2404
2397
};
2405
2398
std::visit (std::move (variantVisitor), Partitions);
2399
+
2400
+ if (ReadReplicasSettings) {
2401
+ ReadReplicasSettings->SerializeTo (*settings.mutable_read_replicas_settings ());
2402
+ }
2406
2403
}
2407
2404
2408
2405
TVectorIndexSettings TVectorIndexSettings::FromProto (const Ydb::Table::VectorIndexSettings& proto) {
0 commit comments