aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraneporada <aneporada@ydb.tech>2023-01-20 11:32:56 +0300
committeraneporada <aneporada@ydb.tech>2023-01-20 11:32:56 +0300
commit9fe36a164e3a650600e1d3bdb1c97c37ac2ce8da (patch)
tree7ab3eacb95038dad9322fc13fd87dce717700a07
parent21bc1d98eb564a4e03b7ca1c064dc3e68519e2f1 (diff)
downloadydb-9fe36a164e3a650600e1d3bdb1c97c37ac2ce8da.tar.gz
Minor refactoring of IFunctionTypeInfoBuilder. Add helper for strict udfs
-rw-r--r--ydb/library/yql/minikql/mkql_type_builder.cpp6
-rw-r--r--ydb/library/yql/minikql/mkql_type_builder.h4
-rw-r--r--ydb/library/yql/public/udf/udf_helpers.h3
-rw-r--r--ydb/library/yql/public/udf/udf_type_builder.h4
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