diff options
author | aneporada <aneporada@ydb.tech> | 2023-01-20 11:32:56 +0300 |
---|---|---|
committer | aneporada <aneporada@ydb.tech> | 2023-01-20 11:32:56 +0300 |
commit | 9fe36a164e3a650600e1d3bdb1c97c37ac2ce8da (patch) | |
tree | 7ab3eacb95038dad9322fc13fd87dce717700a07 | |
parent | 21bc1d98eb564a4e03b7ca1c064dc3e68519e2f1 (diff) | |
download | ydb-9fe36a164e3a650600e1d3bdb1c97c37ac2ce8da.tar.gz |
Minor refactoring of IFunctionTypeInfoBuilder. Add helper for strict udfs
-rw-r--r-- | ydb/library/yql/minikql/mkql_type_builder.cpp | 6 | ||||
-rw-r--r-- | ydb/library/yql/minikql/mkql_type_builder.h | 4 | ||||
-rw-r--r-- | ydb/library/yql/public/udf/udf_helpers.h | 3 | ||||
-rw-r--r-- | ydb/library/yql/public/udf/udf_type_builder.h | 4 |
4 files changed, 11 insertions, 6 deletions
diff --git a/ydb/library/yql/minikql/mkql_type_builder.cpp b/ydb/library/yql/minikql/mkql_type_builder.cpp index 903e073e787..773e52a93eb 100644 --- a/ydb/library/yql/minikql/mkql_type_builder.cpp +++ b/ydb/library/yql/minikql/mkql_type_builder.cpp @@ -1510,12 +1510,14 @@ void TFunctionTypeInfoBuilder::Unused2() { void TFunctionTypeInfoBuilder::Unused3() { } -void TFunctionTypeInfoBuilder::SupportsBlocks() { +NUdf::IFunctionTypeInfoBuilder15& TFunctionTypeInfoBuilder::SupportsBlocks() { SupportsBlocks_ = true; + return *this; } -void TFunctionTypeInfoBuilder::IsStrict() { +NUdf::IFunctionTypeInfoBuilder15& TFunctionTypeInfoBuilder::IsStrict() { IsStrict_ = true; + return *this; } bool TFunctionTypeInfoBuilder::GetSecureParam(NUdf::TStringRef key, NUdf::TStringRef& value) const { diff --git a/ydb/library/yql/minikql/mkql_type_builder.h b/ydb/library/yql/minikql/mkql_type_builder.h index af8f5c2c249..0d1fe867992 100644 --- a/ydb/library/yql/minikql/mkql_type_builder.h +++ b/ydb/library/yql/minikql/mkql_type_builder.h @@ -143,8 +143,8 @@ public: void Unused2() override; void Unused3() override; - void SupportsBlocks() override; - void IsStrict() override; + NUdf::IFunctionTypeInfoBuilder15& SupportsBlocks() override; + NUdf::IFunctionTypeInfoBuilder15& IsStrict() override; bool GetSecureParam(NUdf::TStringRef key, NUdf::TStringRef& value) const override; diff --git a/ydb/library/yql/public/udf/udf_helpers.h b/ydb/library/yql/public/udf/udf_helpers.h index 9a659fc97a7..8d7e812772e 100644 --- a/ydb/library/yql/public/udf/udf_helpers.h +++ b/ydb/library/yql/public/udf/udf_helpers.h @@ -177,6 +177,9 @@ namespace NUdf { #define SIMPLE_UDF(udfName, signature) \ UDF(udfName, builder.SimpleSignature<signature>();) +#define SIMPLE_STRICT_UDF(udfName, signature) \ + UDF(udfName, builder.SimpleSignature<signature>().IsStrict();) + #define SIMPLE_UDF_WITH_IR(udfName, signature, irResourceId, irFunctionName) \ UDF_IMPL(udfName, builder.SimpleSignature<signature>();, ;, ;, irResourceId, irFunctionName) diff --git a/ydb/library/yql/public/udf/udf_type_builder.h b/ydb/library/yql/public/udf/udf_type_builder.h index ce282ef2c13..d38e7163688 100644 --- a/ydb/library/yql/public/udf/udf_type_builder.h +++ b/ydb/library/yql/public/udf/udf_type_builder.h @@ -638,8 +638,8 @@ public: #if UDF_ABI_COMPATIBILITY_VERSION_CURRENT >= UDF_ABI_COMPATIBILITY_VERSION(2, 28) class IFunctionTypeInfoBuilder15: public IFunctionTypeInfoBuilder14 { public: - virtual void SupportsBlocks() = 0; - virtual void IsStrict() = 0; + virtual IFunctionTypeInfoBuilder15& SupportsBlocks() = 0; + virtual IFunctionTypeInfoBuilder15& IsStrict() = 0; }; #endif |