@@ -48,8 +48,6 @@ THashSet<EAlterOperationKind> GetAlterOperationKinds(const Ydb::Table::AlterTabl
4848 req->alter_columns_size () ||
4949 req->ttl_action_case () !=
5050 Ydb::Table::AlterTableRequest::TTL_ACTION_NOT_SET ||
51- req->tiering_action_case () !=
52- Ydb::Table::AlterTableRequest::TIERING_ACTION_NOT_SET ||
5351 req->has_alter_storage_settings () || req->add_column_families_size () ||
5452 req->alter_column_families_size () || req->set_compaction_policy () ||
5553 req->has_alter_partitioning_settings () ||
@@ -509,11 +507,42 @@ Ydb::Type* AddColumn<NKikimrSchemeOp::TColumnDescription>(Ydb::Table::ColumnMeta
509507
510508template <typename TYdbProto, typename TTtl>
511509static void AddTtl (TYdbProto& out, const TTtl& inTTL) {
510+ static const auto & fillCommonFields = []<class TModeSettings >(TModeSettings& out, const TTtl& in) {
511+ out.set_column_name (in.GetColumnName ());
512+ if (in.TiersSize ()) {
513+ std::optional<ui32> expireInSeconds;
514+ for (const auto & inTier : in.GetTiers ()) {
515+ if (inTier.HasDelete ()) {
516+ expireInSeconds = inTier.GetEvictAfterSeconds ();
517+ break ;
518+ }
519+ }
520+ out.set_expire_after_seconds (expireInSeconds.value_or (std::numeric_limits<uint32_t >::max ()));
521+ } else {
522+ // legacy schema
523+ out.set_expire_after_seconds (in.GetExpireAfterSeconds ());
524+ }
525+ };
526+
527+ for (const auto & inTier : inTTL.GetTiers ()) {
528+ auto * outTier = out.mutable_ttl_settings ()->add_tiers ();
529+ outTier->set_evict_after_seconds (inTier.GetEvictAfterSeconds ());
530+ switch (inTier.GetActionCase ()) {
531+ case NKikimrSchemeOp::TTTLSettings::TTier::ActionCase::kDelete :
532+ outTier->mutable_delete_ ();
533+ break ;
534+ case NKikimrSchemeOp::TTTLSettings::TTier::ActionCase::kEvictToExternalStorage :
535+ outTier->mutable_evict_to_external_storage ()->set_storage_name (inTier.GetEvictToExternalStorage ().GetStorageName ());
536+ break ;
537+ case NKikimrSchemeOp::TTTLSettings::TTier::ActionCase::ACTION_NOT_SET:
538+ break ;
539+ }
540+ }
541+
512542 switch (inTTL.GetColumnUnit ()) {
513543 case NKikimrSchemeOp::TTTLSettings::UNIT_AUTO: {
514544 auto & outTTL = *out.mutable_ttl_settings ()->mutable_date_type_column ();
515- outTTL.set_column_name (inTTL.GetColumnName ());
516- outTTL.set_expire_after_seconds (inTTL.GetExpireAfterSeconds ());
545+ fillCommonFields (outTTL, inTTL);
517546 break ;
518547 }
519548
@@ -522,9 +551,8 @@ static void AddTtl(TYdbProto& out, const TTtl& inTTL) {
522551 case NKikimrSchemeOp::TTTLSettings::UNIT_MICROSECONDS:
523552 case NKikimrSchemeOp::TTTLSettings::UNIT_NANOSECONDS: {
524553 auto & outTTL = *out.mutable_ttl_settings ()->mutable_value_since_unix_epoch ();
525- outTTL. set_column_name ( inTTL. GetColumnName () );
554+ fillCommonFields (outTTL, inTTL);
526555 outTTL.set_column_unit (static_cast <Ydb::Table::ValueSinceUnixEpochModeSettings::Unit>(inTTL.GetColumnUnit ()));
527- outTTL.set_expire_after_seconds (inTTL.GetExpireAfterSeconds ());
528556 break ;
529557 }
530558
@@ -572,10 +600,6 @@ void FillColumnDescriptionImpl(TYdbProto& out,
572600 if (in.GetTTLSettings ().HasEnabled ()) {
573601 AddTtl (out, in.GetTTLSettings ().GetEnabled ());
574602 }
575-
576- if (in.GetTTLSettings ().HasUseTiering ()) {
577- out.set_tiering (in.GetTTLSettings ().GetUseTiering ());
578- }
579603 }
580604}
581605
@@ -612,10 +636,6 @@ void FillColumnDescription(Ydb::Table::DescribeTableResult& out, const NKikimrSc
612636 if (in.GetTtlSettings ().HasEnabled ()) {
613637 AddTtl (out, in.GetTtlSettings ().GetEnabled ());
614638 }
615-
616- if (in.GetTtlSettings ().HasUseTiering ()) {
617- out.set_tiering (in.GetTtlSettings ().GetUseTiering ());
618- }
619639 }
620640
621641 out.set_store_type (Ydb::Table::StoreType::STORE_TYPE_COLUMN);
@@ -829,12 +849,6 @@ bool BuildAlterColumnTableModifyScheme(const TString& path, const Ydb::Table::Al
829849 } else if (req->has_drop_ttl_settings ()) {
830850 alterColumnTable->MutableAlterTtlSettings ()->MutableDisabled ();
831851 }
832-
833- if (req->has_set_tiering ()) {
834- alterColumnTable->MutableAlterTtlSettings ()->SetUseTiering (req->set_tiering ());
835- } else if (req->has_drop_tiering ()) {
836- alterColumnTable->MutableAlterTtlSettings ()->SetUseTiering (" " );
837- }
838852 }
839853
840854 return true ;
0 commit comments