Skip to content

Commit ab1a0d2

Browse files
committed
fix tests
1 parent f73c70c commit ab1a0d2

File tree

4 files changed

+47
-30
lines changed

4 files changed

+47
-30
lines changed

ydb/core/tx/schemeshard/ut_olap/ut_olap.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ Y_UNIT_TEST_SUITE(TOlap) {
474474
ColumnName: "timestamp"
475475
ColumnUnit: UNIT_AUTO
476476
Tiers: {
477-
EvictAfterSeconds: 360
477+
ApplyAfterSeconds: 360
478478
StorageName: "Tier1"
479479
}
480480
}
@@ -498,7 +498,7 @@ Y_UNIT_TEST_SUITE(TOlap) {
498498
ColumnName: "timestamp"
499499
ColumnUnit: UNIT_AUTO
500500
Tiers: {
501-
EvictAfterSeconds: 3600000000
501+
ApplyAfterSeconds: 3600000000
502502
StorageName: "Tier1"
503503
}
504504
}
@@ -649,7 +649,7 @@ Y_UNIT_TEST_SUITE(TOlap) {
649649
ColumnName: "timestamp"
650650
ColumnUnit: UNIT_AUTO
651651
Tiers: {
652-
EvictAfterSeconds: 3600000000
652+
ApplyAfterSeconds: 3600000000
653653
StorageName: "Tier1"
654654
}
655655
}

ydb/public/lib/experimental/ydb_logstore.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace NYdb {
1616
namespace NLogStore {
1717

1818
TMaybe<TTtlSettings> TtlSettingsFromProto(const Ydb::Table::TtlSettings& proto) {
19-
if (auto settings = TTtlSettings::DeserializeFromProto(proto)) {
19+
if (auto settings = TTtlSettings::FromProto(proto)) {
2020
return *settings;
2121
}
2222
return Nothing();

ydb/public/sdk/cpp/client/ydb_table/table.cpp

Lines changed: 39 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ class TTableDescription::TImpl {
327327
}
328328

329329
// ttl settings
330-
if (auto ttlSettings = TTtlSettings::DeserializeFromProto(proto.ttl_settings())) {
330+
if (auto ttlSettings = TTtlSettings::FromProto(proto.ttl_settings())) {
331331
TtlSettings_ = std::move(*ttlSettings);
332332
}
333333

@@ -2913,8 +2913,8 @@ bool operator!=(const TChangefeedDescription& lhs, const TChangefeedDescription&
29132913

29142914
TTtlTierSettings::TTtlTierSettings(TDuration evictionDelay, const TAction& action)
29152915
: ApplyAfter_(evictionDelay)
2916-
, Action_(action) {
2917-
}
2916+
, Action_(action)
2917+
{ }
29182918

29192919
TTtlTierSettings::TTtlTierSettings(const Ydb::Table::TtlTier& tier)
29202920
: ApplyAfter_(TDuration::Seconds(tier.apply_after_seconds())) {
@@ -3078,42 +3078,55 @@ const TValueSinceUnixEpochModeSettings& TTtlSettings::GetValueSinceUnixEpoch() c
30783078
return std::get<TValueSinceUnixEpochModeSettings>(Mode_);
30793079
}
30803080

3081-
std::optional<TTtlSettings> TTtlSettings::DeserializeFromProto(const Ydb::Table::TtlSettings& proto) {
3082-
TDuration legacyExpireAfter = TDuration::Max();
3081+
std::optional<TTtlSettings> TTtlSettings::FromProto(const Ydb::Table::TtlSettings& proto) {
3082+
TVector<TTtlTierSettings> tiers;
30833083
for (const auto& tier : proto.tiers()) {
3084-
if (tier.has_delete_()) {
3085-
legacyExpireAfter = TDuration::Seconds(tier.apply_after_seconds());
3086-
break;
3087-
}
3084+
tiers.emplace_back(tier);
30883085
}
3086+
TDuration legacyExpireAfter = GetExpireAfterFrom(tiers).value_or(TDuration::Max());
30893087

30903088
switch(proto.mode_case()) {
30913089
case Ydb::Table::TtlSettings::kDateTypeColumn:
30923090
return TTtlSettings(proto.date_type_column(), proto.run_interval_seconds());
30933091
case Ydb::Table::TtlSettings::kValueSinceUnixEpoch:
30943092
return TTtlSettings(proto.value_since_unix_epoch(), proto.run_interval_seconds());
30953093
case Ydb::Table::TtlSettings::kDateTypeColumnV1:
3096-
return TTtlSettings(TDateTypeColumnModeSettings(proto.date_type_column_v1().column_name(), legacyExpireAfter), proto.run_interval_seconds());
3094+
return TTtlSettings(
3095+
TDateTypeColumnModeSettings(proto.date_type_column_v1().column_name(), legacyExpireAfter), tiers, proto.run_interval_seconds());
30973096
case Ydb::Table::TtlSettings::kValueSinceUnixEpochV1:
3098-
return TTtlSettings(TValueSinceUnixEpochModeSettings(proto.value_since_unix_epoch_v1().column_name(), TProtoAccessor::FromProto(proto.value_since_unix_epoch_v1().column_unit()), legacyExpireAfter), proto.run_interval_seconds());
3097+
return TTtlSettings(TValueSinceUnixEpochModeSettings(proto.value_since_unix_epoch_v1().column_name(),
3098+
TProtoAccessor::FromProto(proto.value_since_unix_epoch_v1().column_unit()), legacyExpireAfter),
3099+
tiers, proto.run_interval_seconds());
30993100
case Ydb::Table::TtlSettings::MODE_NOT_SET:
31003101
return std::nullopt;
31013102
break;
31023103
}
31033104
}
31043105

31053106
void TTtlSettings::SerializeTo(Ydb::Table::TtlSettings& proto) const {
3106-
switch (GetMode()) {
3107-
case EMode::DateTypeColumn:
3108-
GetDateTypeColumn().SerializeTo(*proto.mutable_date_type_column_v1());
3109-
break;
3110-
case EMode::ValueSinceUnixEpoch:
3111-
GetValueSinceUnixEpoch().SerializeTo(*proto.mutable_value_since_unix_epoch_v1());
3112-
break;
3113-
}
3107+
if (Tiers_.size() == 1 && std::holds_alternative<TTtlDeleteAction>(Tiers_.back().GetAction())) {
3108+
// serialize DELETE-only TTL to legacy format for backwards-compatibility
3109+
switch (GetMode()) {
3110+
case EMode::DateTypeColumn:
3111+
GetDateTypeColumn().SerializeTo(*proto.mutable_date_type_column());
3112+
break;
3113+
case EMode::ValueSinceUnixEpoch:
3114+
GetValueSinceUnixEpoch().SerializeTo(*proto.mutable_value_since_unix_epoch());
3115+
break;
3116+
}
3117+
} else {
3118+
switch (GetMode()) {
3119+
case EMode::DateTypeColumn:
3120+
GetDateTypeColumn().SerializeTo(*proto.mutable_date_type_column_v1());
3121+
break;
3122+
case EMode::ValueSinceUnixEpoch:
3123+
GetValueSinceUnixEpoch().SerializeTo(*proto.mutable_value_since_unix_epoch_v1());
3124+
break;
3125+
}
31143126

3115-
for (const auto& tier : Tiers_) {
3116-
tier.SerializeTo(*proto.add_tiers());
3127+
for (const auto& tier : Tiers_) {
3128+
tier.SerializeTo(*proto.add_tiers());
3129+
}
31173130
}
31183131

31193132
if (RunInterval_) {
@@ -3151,7 +3164,11 @@ std::optional<TDuration> TTtlSettings::GetExpireAfterFrom(const TVector<TTtlTier
31513164
return std::nullopt;
31523165
}
31533166

3154-
TTtlSettings::TTtlSettings(TMode mode, ui32 runIntervalSeconds) : Mode_(std::move(mode)), RunInterval_(TDuration::Seconds(runIntervalSeconds)) {}
3167+
TTtlSettings::TTtlSettings(TMode mode, const TVector<TTtlTierSettings>& tiers, ui32 runIntervalSeconds)
3168+
: Mode_(std::move(mode))
3169+
, Tiers_(tiers)
3170+
, RunInterval_(TDuration::Seconds(runIntervalSeconds))
3171+
{}
31553172

31563173
TAlterTtlSettings::EAction TAlterTtlSettings::GetAction() const {
31573174
return static_cast<EAction>(Action_.index());

ydb/public/sdk/cpp/client/ydb_table/table.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -516,16 +516,16 @@ class TTtlSettings {
516516
explicit TTtlSettings(const TString& columnName, const TVector<TTtlTierSettings>& tiers);
517517
explicit TTtlSettings(const TString& columnName, const TDuration& expireAfter);
518518
const TDateTypeColumnModeSettings& GetDateTypeColumn() const;
519-
// Deprecated. Use DeserializeFromProto()
519+
// Deprecated. Use FromProto()
520520
explicit TTtlSettings(const Ydb::Table::DateTypeColumnModeSettings& mode, ui32 runIntervalSeconds);
521521

522522
explicit TTtlSettings(const TString& columnName, EUnit columnUnit, const TVector<TTtlTierSettings>& tiers);
523523
explicit TTtlSettings(const TString& columnName, EUnit columnUnit, const TDuration& expireAfter);
524524
const TValueSinceUnixEpochModeSettings& GetValueSinceUnixEpoch() const;
525-
// Deprecated. Use DeserializeFromProto()
525+
// Deprecated. Use FromProto()
526526
explicit TTtlSettings(const Ydb::Table::ValueSinceUnixEpochModeSettings& mode, ui32 runIntervalSeconds);
527527

528-
static std::optional<TTtlSettings> DeserializeFromProto(const Ydb::Table::TtlSettings& proto);
528+
static std::optional<TTtlSettings> FromProto(const Ydb::Table::TtlSettings& proto);
529529
void SerializeTo(Ydb::Table::TtlSettings& proto) const;
530530
EMode GetMode() const;
531531

@@ -536,7 +536,7 @@ class TTtlSettings {
536536
std::optional<TDuration> GetExpireAfter() const;
537537

538538
private:
539-
explicit TTtlSettings(TMode mode, ui32 runIntervalSeconds);
539+
explicit TTtlSettings(TMode mode, const TVector<TTtlTierSettings>& tiers, ui32 runIntervalSeconds);
540540
static std::optional<TDuration> GetExpireAfterFrom(const TVector<TTtlTierSettings>& tiers);
541541

542542
private:

0 commit comments

Comments
 (0)