aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvvvv <vvvv@yandex-team.com>2024-12-23 17:51:14 +0300
committervvvv <vvvv@yandex-team.com>2024-12-23 18:10:13 +0300
commitfc66f0bfe6ea1d138f46d189bc38c3af935de5a8 (patch)
tree30f41a0270c9cd4bca7b38fc13c9eb2cd75a273a
parent20435752ae45e3a6b88385518fe9c1400b7ffd1f (diff)
downloadydb-fc66f0bfe6ea1d138f46d189bc38c3af935de5a8.tar.gz
Support of Void for Yson::From
commit_hash:1729f478498628bf64ce6767ee87419997f13b77
-rw-r--r--yql/essentials/minikql/dom/make.cpp1
-rw-r--r--yql/essentials/udfs/common/yson2/test/canondata/test.test_From_/results.txt10
-rw-r--r--yql/essentials/udfs/common/yson2/test/cases/From.sql1
-rw-r--r--yql/essentials/udfs/common/yson2/yson2_udf.cpp1
4 files changed, 12 insertions, 1 deletions
diff --git a/yql/essentials/minikql/dom/make.cpp b/yql/essentials/minikql/dom/make.cpp
index ca6864f759..8c1bfecfd0 100644
--- a/yql/essentials/minikql/dom/make.cpp
+++ b/yql/essentials/minikql/dom/make.cpp
@@ -133,6 +133,7 @@ TUnboxedValuePod MakeVariant(const ITypeInfoHelper* typeHelper, const TType* sha
TUnboxedValuePod MakeDom(const ITypeInfoHelper* typeHelper, const TType* shape, const TUnboxedValuePod value, const IValueBuilder* valueBuilder) {
switch (const auto kind = typeHelper->GetTypeKind(shape)) {
case ETypeKind::Null:
+ case ETypeKind::Void:
return MakeEntity();
case ETypeKind::EmptyList:
return SetNodeType<ENodeType::List>(TUnboxedValuePod::Void());
diff --git a/yql/essentials/udfs/common/yson2/test/canondata/test.test_From_/results.txt b/yql/essentials/udfs/common/yson2/test/canondata/test.test_From_/results.txt
index d1e62592cc..ddddb74752 100644
--- a/yql/essentials/udfs/common/yson2/test/canondata/test.test_From_/results.txt
+++ b/yql/essentials/udfs/common/yson2/test/canondata/test.test_From_/results.txt
@@ -32,7 +32,7 @@
"column3";
[
"DataType";
- "Yson"
+ "Bool"
]
];
[
@@ -118,6 +118,13 @@
"DataType";
"Yson"
]
+ ];
+ [
+ "column16";
+ [
+ "DataType";
+ "Yson"
+ ]
]
]
]
@@ -126,6 +133,7 @@
[
%true;
%true;
+ %true;
%false;
{
"$type" = "boolean";
diff --git a/yql/essentials/udfs/common/yson2/test/cases/From.sql b/yql/essentials/udfs/common/yson2/test/cases/From.sql
index 2a1f6ed15a..97b0fff53c 100644
--- a/yql/essentials/udfs/common/yson2/test/cases/From.sql
+++ b/yql/essentials/udfs/common/yson2/test/cases/From.sql
@@ -1,6 +1,7 @@
/* syntax version 1 */
select
Yson::IsEntity(Yson::From(NULL)),
+Yson::IsEntity(Yson::From(Void())),
Yson::IsEntity(Yson::Parse(Yson("#"))),
Yson::IsEntity(Yson::Parse(Yson("1"))),
diff --git a/yql/essentials/udfs/common/yson2/yson2_udf.cpp b/yql/essentials/udfs/common/yson2/yson2_udf.cpp
index 76dbe07c55..997b0cecf1 100644
--- a/yql/essentials/udfs/common/yson2/yson2_udf.cpp
+++ b/yql/essentials/udfs/common/yson2/yson2_udf.cpp
@@ -795,6 +795,7 @@ protected:
static const TType* CheckType(const ITypeInfoHelper::TPtr typeHelper, const TType* shape) {
switch (const auto kind = typeHelper->GetTypeKind(shape)) {
case ETypeKind::Null:
+ case ETypeKind::Void:
case ETypeKind::EmptyList:
case ETypeKind::EmptyDict:
return MoreTypesAllowed ? nullptr : shape;