diff options
author | vvvv <vvvv@yandex-team.com> | 2024-12-23 17:51:14 +0300 |
---|---|---|
committer | vvvv <vvvv@yandex-team.com> | 2024-12-23 18:10:13 +0300 |
commit | fc66f0bfe6ea1d138f46d189bc38c3af935de5a8 (patch) | |
tree | 30f41a0270c9cd4bca7b38fc13c9eb2cd75a273a | |
parent | 20435752ae45e3a6b88385518fe9c1400b7ffd1f (diff) | |
download | ydb-fc66f0bfe6ea1d138f46d189bc38c3af935de5a8.tar.gz |
Support of Void for Yson::From
commit_hash:1729f478498628bf64ce6767ee87419997f13b77
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; |