summaryrefslogtreecommitdiffstats
path: root/yql/essentials/udfs/examples/lists/lists_udf.cpp
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-10-06 13:26:25 +0300
committervvvv <[email protected]>2025-10-06 14:06:25 +0300
commiteca8ce9cb1613d5c983185c4e43c20651a9638aa (patch)
tree61ee5ae779948e61af9a7691d19eaa2c09869121 /yql/essentials/udfs/examples/lists/lists_udf.cpp
parent4adf7eecae16a9b228b28cc5f64c27ef69ad5ec2 (diff)
YQL-20086 udfs
init commit_hash:f9684778bf1ea956965f2360b80b91edb7d4ffbe
Diffstat (limited to 'yql/essentials/udfs/examples/lists/lists_udf.cpp')
-rw-r--r--yql/essentials/udfs/examples/lists/lists_udf.cpp44
1 files changed, 20 insertions, 24 deletions
diff --git a/yql/essentials/udfs/examples/lists/lists_udf.cpp b/yql/essentials/udfs/examples/lists/lists_udf.cpp
index 35dbb57dfa3..e310cde3e3b 100644
--- a/yql/essentials/udfs/examples/lists/lists_udf.cpp
+++ b/yql/essentials/udfs/examples/lists/lists_udf.cpp
@@ -15,8 +15,7 @@ namespace {
//////////////////////////////////////////////////////////////////////////////
// TNumbersList
//////////////////////////////////////////////////////////////////////////////
-class TNumbers: public TBoxedValue
-{
+class TNumbers: public TBoxedValue {
public:
static TStringRef Name() {
static auto name = TStringRef::Of("Numbers");
@@ -25,9 +24,8 @@ public:
private:
TUnboxedValue Run(
- const IValueBuilder* valueBuilder,
- const TUnboxedValuePod* args) const override
- {
+ const IValueBuilder* valueBuilder,
+ const TUnboxedValuePod* args) const override {
const auto appendPrepend = args[0].AsStringRef();
const auto count = args[1].Get<ui32>();
std::vector<TUnboxedValue> list(count);
@@ -36,8 +34,7 @@ private:
for (auto it = list.begin(); list.end() != it; ++it) {
*it = TUnboxedValuePod(i++);
}
- }
- else if (TStringRef::Of("Prepend") == appendPrepend) {
+ } else if (TStringRef::Of("Prepend") == appendPrepend) {
for (auto it = list.rbegin(); list.rend() != it; ++it) {
*it = TUnboxedValuePod(i++);
}
@@ -50,8 +47,7 @@ private:
//////////////////////////////////////////////////////////////////////////////
// TExtend
//////////////////////////////////////////////////////////////////////////////
-class TExtend: public TBoxedValue
-{
+class TExtend: public TBoxedValue {
public:
static TStringRef Name() {
static auto name = TStringRef::Of("Extend");
@@ -60,9 +56,8 @@ public:
private:
TUnboxedValue Run(
- const IValueBuilder* valueBuilder,
- const TUnboxedValuePod* args) const override
- {
+ const IValueBuilder* valueBuilder,
+ const TUnboxedValuePod* args) const override {
std::array<TUnboxedValue, 2U> list = {{TUnboxedValuePod(args[0]), TUnboxedValuePod(args[1])}};
return valueBuilder->NewList(list.data(), list.size());
}
@@ -71,14 +66,14 @@ private:
//////////////////////////////////////////////////////////////////////////////
// TListsModule
//////////////////////////////////////////////////////////////////////////////
-class TListsModule: public IUdfModule
-{
+class TListsModule: public IUdfModule {
public:
TStringRef Name() const {
return TStringRef::Of("Lists");
}
- void CleanupOnTerminate() const final {}
+ void CleanupOnTerminate() const final {
+ }
void GetAllFunctions(IFunctionsSink& sink) const final {
sink.Add(TNumbers::Name());
@@ -86,12 +81,11 @@ public:
}
void BuildFunctionTypeInfo(
- const TStringRef& name,
- TType* userType,
- const TStringRef& typeConfig,
- ui32 flags,
- IFunctionTypeInfoBuilder& builder) const final
- {
+ const TStringRef& name,
+ TType* userType,
+ const TStringRef& typeConfig,
+ ui32 flags,
+ IFunctionTypeInfoBuilder& builder) const final {
try {
Y_UNUSED(userType);
Y_UNUSED(typeConfig);
@@ -107,14 +101,16 @@ public:
if (!typesOnly) {
builder.Implementation(new TNumbers);
}
- }
- else if (TExtend::Name() == name) {
+ } else if (TExtend::Name() == name) {
// function signature:
// List<ui32> Numbers(List<ui32>, List<ui32>)
// runConfig: void
auto listType = builder.List()->Item<ui32>().Build();
builder.Returns(listType)
- .Args()->Add(listType).Add(listType).Done();
+ .Args()
+ ->Add(listType)
+ .Add(listType)
+ .Done();
if (!typesOnly) {
builder.Implementation(new TExtend);