summaryrefslogtreecommitdiffstats
path: root/yt/cpp/mapreduce/interface/serialize.cpp
diff options
context:
space:
mode:
authors-berdnikov <[email protected]>2026-02-18 18:39:56 +0300
committers-berdnikov <[email protected]>2026-02-18 19:36:18 +0300
commit64d130d1514e8c12e827c5b2ed726dc88ac90ca8 (patch)
treee14651060e72e0481b186cc20c953622e329b7b1 /yt/cpp/mapreduce/interface/serialize.cpp
parent80feb38637cfcd598a0d734105f1ffb10dc124a2 (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.cpp23
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);
}