@@ -32,8 +32,7 @@ class TtlTier;
32
32
class TableIndex ;
33
33
class TableIndexDescription ;
34
34
class ValueSinceUnixEpochModeSettings ;
35
- class DateTypeColumnModeSettingsV1 ;
36
- class ValueSinceUnixEpochModeSettingsV1 ;
35
+ class EvictionToExternalStorageSettings ;
37
36
38
37
} // namespace Table
39
38
} // namespace Ydb
@@ -434,46 +433,17 @@ struct TPartitionStats {
434
433
uint32_t LeaderNodeId = 0 ;
435
434
};
436
435
437
- struct TTtlDeleteAction {};
438
-
439
- struct TTtlEvictToExternalStorageAction {
440
- std::string StorageName;
441
- };
442
-
443
- class TTtlTierSettings {
444
- public:
445
- using TAction = std::variant<
446
- std::monostate,
447
- TTtlDeleteAction,
448
- TTtlEvictToExternalStorageAction
449
- >;
450
-
451
- public:
452
- explicit TTtlTierSettings (TDuration applyAfter, const TAction& action);
453
- explicit TTtlTierSettings (const Ydb::Table::TtlTier& tier);
454
- void SerializeTo (Ydb::Table::TtlTier& proto) const ;
455
-
456
- TDuration GetApplyAfter () const ;
457
- const TAction& GetAction () const ;
458
-
459
- private:
460
- TDuration ApplyAfter_;
461
- TAction Action_;
462
- };
463
-
464
436
class TDateTypeColumnModeSettings {
465
437
public:
466
- explicit TDateTypeColumnModeSettings (const std::string& columnName, const TDuration& deprecatedExpireAfter = TDuration::Max() );
438
+ explicit TDateTypeColumnModeSettings (const std::string& columnName, const TDuration& applyAfter );
467
439
void SerializeTo (Ydb::Table::DateTypeColumnModeSettings& proto) const ;
468
- void SerializeTo (Ydb::Table::DateTypeColumnModeSettingsV1& proto) const ;
469
440
470
441
const std::string& GetColumnName () const ;
471
- // Deprecated. Use TTtlSettings::GetExpireAfter()
472
442
const TDuration& GetExpireAfter () const ;
473
443
474
444
private:
475
445
std::string ColumnName_;
476
- TDuration DeprecatedExpireAfter_ ;
446
+ TDuration ApplyAfter_ ;
477
447
};
478
448
479
449
class TValueSinceUnixEpochModeSettings {
@@ -488,9 +458,8 @@ class TValueSinceUnixEpochModeSettings {
488
458
};
489
459
490
460
public:
491
- explicit TValueSinceUnixEpochModeSettings (const std::string& columnName, EUnit columnUnit, const TDuration& deprecatedExpireAfter = TDuration::Max() );
461
+ explicit TValueSinceUnixEpochModeSettings (const std::string& columnName, EUnit columnUnit, const TDuration& applyAfter );
492
462
void SerializeTo (Ydb::Table::ValueSinceUnixEpochModeSettings& proto) const ;
493
- void SerializeTo (Ydb::Table::ValueSinceUnixEpochModeSettingsV1& proto) const ;
494
463
495
464
const std::string& GetColumnName () const ;
496
465
EUnit GetColumnUnit () const ;
@@ -503,7 +472,45 @@ class TValueSinceUnixEpochModeSettings {
503
472
private:
504
473
std::string ColumnName_;
505
474
EUnit ColumnUnit_;
506
- TDuration DeprecatedExpireAfter_;
475
+ TDuration ApplyAfter_;
476
+ };
477
+
478
+ class TTtlDeleteAction {};
479
+ class TTtlEvictToExternalStorageAction {
480
+ public:
481
+ TTtlEvictToExternalStorageAction (const std::string& storageName);
482
+ void SerializeTo (Ydb::Table::EvictionToExternalStorageSettings& proto) const ;
483
+
484
+ std::string GetStorage () const ;
485
+
486
+ private:
487
+ std::string Storage_;
488
+ };
489
+
490
+ class TTtlTierSettings {
491
+ public:
492
+ using TExpression = std::variant<
493
+ TDateTypeColumnModeSettings,
494
+ TValueSinceUnixEpochModeSettings
495
+ >;
496
+
497
+ using TAction = std::variant<
498
+ TTtlDeleteAction,
499
+ TTtlEvictToExternalStorageAction
500
+ >;
501
+
502
+ public:
503
+ explicit TTtlTierSettings (const TExpression& expression, const TAction& action);
504
+
505
+ static std::optional<TTtlTierSettings> FromProto (const Ydb::Table::TtlTier& tier);
506
+ void SerializeTo (Ydb::Table::TtlTier& proto) const ;
507
+
508
+ const TExpression& GetExpression () const ;
509
+ const TAction& GetAction () const ;
510
+
511
+ private:
512
+ TExpression Expression_;
513
+ TAction Action_;
507
514
};
508
515
509
516
// ! Represents ttl settings
@@ -522,16 +529,14 @@ class TTtlSettings {
522
529
ValueSinceUnixEpoch = 1 ,
523
530
};
524
531
525
- explicit TTtlSettings (const std::string& columnName, const std::vector<TTtlTierSettings>& tiers);
532
+ explicit TTtlSettings (const std::vector<TTtlTierSettings>& tiers);
533
+
526
534
explicit TTtlSettings (const std::string& columnName, const TDuration& expireAfter);
527
535
const TDateTypeColumnModeSettings& GetDateTypeColumn () const ;
528
- // Deprecated. Use FromProto()
529
536
explicit TTtlSettings (const Ydb::Table::DateTypeColumnModeSettings& mode, uint32_t runIntervalSeconds);
530
537
531
- explicit TTtlSettings (const std::string& columnName, EUnit columnUnit, const std::vector<TTtlTierSettings>& tiers);
532
538
explicit TTtlSettings (const std::string& columnName, EUnit columnUnit, const TDuration& expireAfter);
533
539
const TValueSinceUnixEpochModeSettings& GetValueSinceUnixEpoch () const ;
534
- // Deprecated. Use FromProto()
535
540
explicit TTtlSettings (const Ydb::Table::ValueSinceUnixEpochModeSettings& mode, uint32_t runIntervalSeconds);
536
541
537
542
static std::optional<TTtlSettings> FromProto (const Ydb::Table::TtlSettings& proto);
@@ -542,14 +547,8 @@ class TTtlSettings {
542
547
const TDuration& GetRunInterval () const ;
543
548
544
549
const std::vector<TTtlTierSettings>& GetTiers () const ;
545
- std::optional<TDuration> GetExpireAfter () const ;
546
-
547
- private:
548
- explicit TTtlSettings (TMode mode, const std::vector<TTtlTierSettings>& tiers, ui32 runIntervalSeconds);
549
- static std::optional<TDuration> GetExpireAfterFrom (const std::vector<TTtlTierSettings>& tiers);
550
550
551
551
private:
552
- TMode Mode_;
553
552
std::vector<TTtlTierSettings> Tiers_;
554
553
TDuration RunInterval_ = TDuration::Zero();
555
554
};
0 commit comments