summaryrefslogtreecommitdiffstats
path: root/library/cpp
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-04-11 12:48:16 +0300
committerrobot-piglet <[email protected]>2025-04-11 13:13:08 +0300
commitb6b2ed1703f13a750993297a29862b818a781ced (patch)
treed9093ebc2909768a2806ae4ff532af5a7935bbdd /library/cpp
parent2d1a7b6b3b9b3e7e70aace2c33caf5cb965e9c66 (diff)
Intermediate changes
commit_hash:3ca33ca3ca1c17f83267938f846bee0cb3c3461b
Diffstat (limited to 'library/cpp')
-rw-r--r--library/cpp/protobuf/yql/descriptor.cpp5
-rw-r--r--library/cpp/protobuf/yql/descriptor.h4
2 files changed, 9 insertions, 0 deletions
diff --git a/library/cpp/protobuf/yql/descriptor.cpp b/library/cpp/protobuf/yql/descriptor.cpp
index e5e1c8e28bd..3a0d0d8b47c 100644
--- a/library/cpp/protobuf/yql/descriptor.cpp
+++ b/library/cpp/protobuf/yql/descriptor.cpp
@@ -232,6 +232,9 @@ TString GenerateProtobufTypeConfig(
case ERecursionTraits::Bytes:
ret["view"]["recursion"] = "bytes";
break;
+ case ERecursionTraits::BytesV2:
+ ret["view"]["recursion"] = "bytesV2";
+ break;
}
if (options.YtMode) {
@@ -314,6 +317,8 @@ TProtoTypeConfig ParseTypeConfig(const TStringBuf& config) {
result.Recursion = ERecursionTraits::Ignore;
} else if (recursion == "bytes") {
result.Recursion = ERecursionTraits::Bytes;
+ } else if (recursion == "bytesV2") {
+ result.Recursion = ERecursionTraits::BytesV2;
} else {
ythrow yexception() << "unsupported recursion trait "
<< recursion;
diff --git a/library/cpp/protobuf/yql/descriptor.h b/library/cpp/protobuf/yql/descriptor.h
index f5f51add0bc..3a864f20267 100644
--- a/library/cpp/protobuf/yql/descriptor.h
+++ b/library/cpp/protobuf/yql/descriptor.h
@@ -27,6 +27,10 @@ enum class ERecursionTraits {
Ignore = 1,
//! Возвращать поля с рекурсивным типом в виде сериализованной строки
Bytes = 2,
+ //! Возвращать поля с рекурсивным типом в виде сериализованной строки.
+ //! В этом режиме пофиксен баг, в котором
+ //! |optional RecursiveMessage field = 1| превращалось в байтовую строку, а не в опциональную байтовую строку.
+ BytesV2 = 3,
};
struct TProtoTypeConfig {