diff options
| author | s-berdnikov <[email protected]> | 2026-02-18 18:39:56 +0300 |
|---|---|---|
| committer | s-berdnikov <[email protected]> | 2026-02-18 19:36:18 +0300 |
| commit | 64d130d1514e8c12e827c5b2ed726dc88ac90ca8 (patch) | |
| tree | e14651060e72e0481b186cc20c953622e329b7b1 /yt/cpp/mapreduce/interface/serialize.cpp | |
| parent | 80feb38637cfcd598a0d734105f1ffb10dc124a2 (diff) | |
YT-21148 Serialize deleted columns according to new design
* Changelog entry
Type: fix
Component: master
Deleted columns are now stored in table schema attributes instead of being represented as regular columns with `deleted` field.
commit_hash:bbcf72019585ce99df10ce93efe3995111f50f58
Diffstat (limited to 'yt/cpp/mapreduce/interface/serialize.cpp')
| -rw-r--r-- | yt/cpp/mapreduce/interface/serialize.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/yt/cpp/mapreduce/interface/serialize.cpp b/yt/cpp/mapreduce/interface/serialize.cpp index 44e168704d7..955ea116b53 100644 --- a/yt/cpp/mapreduce/interface/serialize.cpp +++ b/yt/cpp/mapreduce/interface/serialize.cpp @@ -270,9 +270,6 @@ void Serialize(const TColumnSchema& columnSchema, NYson::IYsonConsumer* consumer .DoIf(columnSchema.StableName().Defined(), [&] (TFluentMap fluent) { fluent.Item("stable_name").Value(*columnSchema.StableName()); }) - .DoIf(columnSchema.Deleted().Defined(), [&] (TFluentMap fluent) { - fluent.Item("deleted").Value(*columnSchema.Deleted()); - }) .EndMap(); } @@ -287,7 +284,6 @@ void Deserialize(TColumnSchema& columnSchema, const TNode& node) DESERIALIZE_ITEM("aggregate", columnSchema.Aggregate_); DESERIALIZE_ITEM("group", columnSchema.Group_); DESERIALIZE_ITEM("stable_name", columnSchema.StableName_); - DESERIALIZE_ITEM("deleted", columnSchema.Deleted_); if (nodeMap.contains("type_v3")) { NTi::TTypePtr type; @@ -302,11 +298,29 @@ void Deserialize(TColumnSchema& columnSchema, const TNode& node) } } +void Serialize(const TDeletedColumnSchema& columnSchema, NYson::IYsonConsumer* consumer) +{ + BuildYsonFluently(consumer).BeginMap() + .Item("stable_name").Value(*columnSchema.StableName()) + .EndMap(); +} + +void Deserialize(TDeletedColumnSchema& columnSchema, const TNode& node) +{ + const auto& nodeMap = node.AsMap(); + DESERIALIZE_ITEM("stable_name", columnSchema.StableName_); +} + void Serialize(const TTableSchema& tableSchema, NYson::IYsonConsumer* consumer) { + const auto& deletedColumns = tableSchema.DeletedColumns(); + BuildYsonFluently(consumer).BeginAttributes() .Item("strict").Value(tableSchema.Strict()) .Item("unique_keys").Value(tableSchema.UniqueKeys()) + .DoIf(!deletedColumns.empty(), [&] (auto fluent) { + fluent.Item("deleted_columns").List(deletedColumns); + }) .EndAttributes() .List(tableSchema.Columns()); } @@ -316,6 +330,7 @@ void Deserialize(TTableSchema& tableSchema, const TNode& node) const auto& attributesMap = node.GetAttributes().AsMap(); DESERIALIZE_ATTR("strict", tableSchema.Strict_); DESERIALIZE_ATTR("unique_keys", tableSchema.UniqueKeys_); + DESERIALIZE_ATTR("deleted_columns", tableSchema.DeletedColumns_); Deserialize(tableSchema.Columns_, node); } |
