@@ -327,23 +327,8 @@ class TTableDescription::TImpl {
327327 }
328328
329329 // ttl settings
330- switch (proto.ttl_settings ().mode_case ()) {
331- case Ydb::Table::TtlSettings::kDateTypeColumn :
332- TtlSettings_ = TTtlSettings (
333- proto.ttl_settings ().date_type_column (),
334- proto.ttl_settings ().run_interval_seconds ()
335- );
336- break ;
337-
338- case Ydb::Table::TtlSettings::kValueSinceUnixEpoch :
339- TtlSettings_ = TTtlSettings (
340- proto.ttl_settings ().value_since_unix_epoch (),
341- proto.ttl_settings ().run_interval_seconds ()
342- );
343- break ;
344-
345- default :
346- break ;
330+ if (auto ttlSettings = TTtlSettings::DeserializeFromProto (proto.ttl_settings ())) {
331+ TtlSettings_ = std::move (*ttlSettings);
347332 }
348333
349334 if (proto.store_type ()) {
@@ -2938,12 +2923,12 @@ TVector<TTtlTierSettings> DeserializeTiers(const NProtoBuf::RepeatedPtrField<Ydb
29382923} // namespace
29392924
29402925TTtlTierSettings::TTtlTierSettings (TDuration evictionDelay, const TAction& action)
2941- : EvictionDelay_ (evictionDelay)
2926+ : EvictAfter_ (evictionDelay)
29422927 , Action_(action) {
29432928}
29442929
29452930TTtlTierSettings::TTtlTierSettings (const Ydb::Table::TtlTier& tier)
2946- : EvictionDelay_ (TDuration::Seconds(tier.evict_after_seconds())) {
2931+ : EvictAfter_ (TDuration::Seconds(tier.evict_after_seconds())) {
29472932 switch (tier.action_case ()) {
29482933 case Ydb::Table::TtlTier::kDelete :
29492934 Action_ = TTtlDeleteAction ();
@@ -2957,7 +2942,7 @@ TTtlTierSettings::TTtlTierSettings(const Ydb::Table::TtlTier& tier)
29572942}
29582943
29592944void TTtlTierSettings::SerializeTo (Ydb::Table::TtlTier& proto) const {
2960- proto.set_evict_after_seconds (EvictionDelay_ .Seconds ());
2945+ proto.set_evict_after_seconds (EvictAfter_ .Seconds ());
29612946
29622947 std::visit (TOverloaded{
29632948 [&proto](const TTtlDeleteAction&) { proto.mutable_delete_ (); },
@@ -2969,8 +2954,8 @@ void TTtlTierSettings::SerializeTo(Ydb::Table::TtlTier& proto) const {
29692954 Action_);
29702955}
29712956
2972- TDuration TTtlTierSettings::GetEvictionDelay () const {
2973- return EvictionDelay_ ;
2957+ TDuration TTtlTierSettings::GetEvictAfter () const {
2958+ return EvictAfter_ ;
29742959}
29752960
29762961const TTtlTierSettings::TAction& TTtlTierSettings::GetAction () const {
@@ -2984,7 +2969,6 @@ TDateTypeColumnModeSettings::TDateTypeColumnModeSettings(const TString& columnNa
29842969
29852970void TDateTypeColumnModeSettings::SerializeTo (Ydb::Table::DateTypeColumnModeSettings& proto) const {
29862971 proto.set_column_name (ColumnName_);
2987- proto.set_expire_after_seconds (Min ((TDuration::TValue)std::numeric_limits<uint32_t >::max (), DeprecatedExpireAfter_.Seconds ()));
29882972}
29892973
29902974const TString& TDateTypeColumnModeSettings::GetColumnName () const {
@@ -3004,7 +2988,6 @@ TValueSinceUnixEpochModeSettings::TValueSinceUnixEpochModeSettings(const TString
30042988void TValueSinceUnixEpochModeSettings::SerializeTo (Ydb::Table::ValueSinceUnixEpochModeSettings& proto) const {
30052989 proto.set_column_name (ColumnName_);
30062990 proto.set_column_unit (TProtoAccessor::GetProto (ColumnUnit_));
3007- proto.set_expire_after_seconds (Min ((TDuration::TValue)std::numeric_limits<uint32_t >::max (), DeprecatedExpireAfter_.Seconds ()));
30082991}
30092992
30102993const TString& TValueSinceUnixEpochModeSettings::GetColumnName () const {
@@ -3060,14 +3043,14 @@ TValueSinceUnixEpochModeSettings::EUnit TValueSinceUnixEpochModeSettings::UnitFr
30603043}
30613044
30623045TTtlSettings::TTtlSettings (const TString& columnName, const TVector<TTtlTierSettings>& tiers)
3063- : Mode_(TDateTypeColumnModeSettings(columnName, GetExpirationDelay (tiers).value_or(TDuration::Max())))
3046+ : Mode_(TDateTypeColumnModeSettings(columnName, GetExpireAfterFrom (tiers).value_or(TDuration::Max())))
30643047{}
30653048
30663049TTtlSettings::TTtlSettings (const TString& columnName, const TDuration& expireAfter)
30673050 : TTtlSettings(columnName, {TTtlTierSettings (expireAfter, TTtlDeleteAction ())})
30683051{}
30693052
3070- TTtlSettings::TTtlSettings (const Ydb::Table::DateTypeColumnModeSettings & mode, ui32 runIntervalSeconds)
3053+ TTtlSettings::TTtlSettings (const Ydb::Table::DeprecatedDateTypeColumnModeSettings & mode, ui32 runIntervalSeconds)
30713054 : TTtlSettings(mode.column_name(), TDuration::Seconds(mode.expire_after_seconds())) {
30723055 RunInterval_ = TDuration::Seconds (runIntervalSeconds);
30733056}
@@ -3077,14 +3060,14 @@ const TDateTypeColumnModeSettings& TTtlSettings::GetDateTypeColumn() const {
30773060}
30783061
30793062TTtlSettings::TTtlSettings (const TString& columnName, EUnit columnUnit, const TVector<TTtlTierSettings>& tiers)
3080- : Mode_(TValueSinceUnixEpochModeSettings(columnName, columnUnit, GetExpirationDelay (tiers).value_or(TDuration::Max())))
3063+ : Mode_(TValueSinceUnixEpochModeSettings(columnName, columnUnit, GetExpireAfterFrom (tiers).value_or(TDuration::Max())))
30813064{}
30823065
30833066TTtlSettings::TTtlSettings (const TString& columnName, EUnit columnUnit, const TDuration& expireAfter)
30843067 : TTtlSettings(columnName, columnUnit, {TTtlTierSettings (expireAfter, TTtlDeleteAction ())})
30853068{}
30863069
3087- TTtlSettings::TTtlSettings (const Ydb::Table::ValueSinceUnixEpochModeSettings & mode, ui32 runIntervalSeconds)
3070+ TTtlSettings::TTtlSettings (const Ydb::Table::DeprecatedValueSinceUnixEpochModeSettings & mode, ui32 runIntervalSeconds)
30883071 : TTtlSettings(mode.column_name(), TProtoAccessor::FromProto(mode.column_unit()), TDuration::Seconds(mode.expire_after_seconds())) {
30893072 RunInterval_ = TDuration::Seconds (runIntervalSeconds);
30903073}
@@ -3094,28 +3077,21 @@ const TValueSinceUnixEpochModeSettings& TTtlSettings::GetValueSinceUnixEpoch() c
30943077}
30953078
30963079std::optional<TTtlSettings> TTtlSettings::DeserializeFromProto (const Ydb::Table::TtlSettings& proto) {
3097- if (proto.tiers_size () == 0 ) {
3098- // legacy schema
3099- switch (proto.mode_case ()) {
3100- case Ydb::Table::TtlSettings::kDateTypeColumn :
3101- return TTtlSettings (proto.date_type_column (), proto.run_interval_seconds ());
3102- case Ydb::Table::TtlSettings::kValueSinceUnixEpoch :
3103- return TTtlSettings (proto.value_since_unix_epoch (), proto.run_interval_seconds ());
3104- case Ydb::Table::TtlSettings::MODE_NOT_SET:
3105- return std::nullopt ;
3106- }
3107- }
3108-
31093080 auto tiers = DeserializeTiers (proto.tiers ());
3110- const TDuration legacyExpireAfter = GetExpirationDelay (tiers).value_or (TDuration::Max ());
3081+ const TDuration legacyExpireAfter = GetExpireAfterFrom (tiers).value_or (TDuration::Max ());
31113082
31123083 switch (proto.mode_case ()) {
3084+ case Ydb::Table::TtlSettings::kDeprecatedDateTypeColumn :
3085+ return TTtlSettings (proto.deprecated_date_type_column (), proto.run_interval_seconds ());
3086+ case Ydb::Table::TtlSettings::kDeprecatedValueSinceUnixEpoch :
3087+ return TTtlSettings (proto.deprecated_value_since_unix_epoch (), proto.run_interval_seconds ());
31133088 case Ydb::Table::TtlSettings::kDateTypeColumn :
31143089 return TTtlSettings (TDateTypeColumnModeSettings (proto.date_type_column ().column_name (), legacyExpireAfter), proto.run_interval_seconds ());
31153090 case Ydb::Table::TtlSettings::kValueSinceUnixEpoch :
31163091 return TTtlSettings (TValueSinceUnixEpochModeSettings (proto.date_type_column ().column_name (), TProtoAccessor::FromProto (proto.value_since_unix_epoch ().column_unit ()), legacyExpireAfter), proto.run_interval_seconds ());
31173092 case Ydb::Table::TtlSettings::MODE_NOT_SET:
31183093 return std::nullopt ;
3094+ break ;
31193095 }
31203096}
31213097
@@ -3151,10 +3127,14 @@ const TVector<TTtlTierSettings>& TTtlSettings::GetTiers() const {
31513127 return Tiers_;
31523128}
31533129
3154- std::optional<TDuration> TTtlSettings::GetExpirationDelay (const TVector<TTtlTierSettings>& tiers) {
3130+ std::optional<TDuration> TTtlSettings::GetExpireAfter () const {
3131+ return GetExpireAfterFrom (Tiers_);
3132+ }
3133+
3134+ std::optional<TDuration> TTtlSettings::GetExpireAfterFrom (const TVector<TTtlTierSettings>& tiers) {
31553135 for (const auto & tier : tiers) {
31563136 if (std::holds_alternative<TTtlDeleteAction>(tier.GetAction ())) {
3157- return tier.GetEvictionDelay ();
3137+ return tier.GetEvictAfter ();
31583138 }
31593139 }
31603140 return std::nullopt ;
0 commit comments