diff options
author | vvvv <[email protected]> | 2025-10-06 13:26:25 +0300 |
---|---|---|
committer | vvvv <[email protected]> | 2025-10-06 14:06:25 +0300 |
commit | eca8ce9cb1613d5c983185c4e43c20651a9638aa (patch) | |
tree | 61ee5ae779948e61af9a7691d19eaa2c09869121 /yql/essentials/udfs/common/url_base/lib/url_parse.cpp | |
parent | 4adf7eecae16a9b228b28cc5f64c27ef69ad5ec2 (diff) |
YQL-20086 udfs
init
commit_hash:f9684778bf1ea956965f2360b80b91edb7d4ffbe
Diffstat (limited to 'yql/essentials/udfs/common/url_base/lib/url_parse.cpp')
-rw-r--r-- | yql/essentials/udfs/common/url_base/lib/url_parse.cpp | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/yql/essentials/udfs/common/url_base/lib/url_parse.cpp b/yql/essentials/udfs/common/url_base/lib/url_parse.cpp index 34485970ee0..c892bf25f6f 100644 --- a/yql/essentials/udfs/common/url_base/lib/url_parse.cpp +++ b/yql/essentials/udfs/common/url_base/lib/url_parse.cpp @@ -1,53 +1,53 @@ #include "url_parse.h" #define FIELD_ADD(name) structBuilder->AddField(#name, optionalStringType, &urlParseIndexes.name); -#define FIELD_FILL(name) \ - if (value.FldIsSet(TUri::Field##name)) { \ +#define FIELD_FILL(name) \ + if (value.FldIsSet(TUri::Field##name)) { \ fields[UrlParseIndexes_.name] = valueBuilder->NewString(value.GetField(TUri::Field##name)); \ } namespace NUrlUdf { - using namespace NUri; - using namespace NKikimr; - using namespace NUdf; +using namespace NUri; +using namespace NKikimr; +using namespace NUdf; - TUnboxedValue TParse::Run( - const IValueBuilder* valueBuilder, - const TUnboxedValuePod* args) const { - TUri value; - const auto ParseError = value.ParseAbs(args[0].AsStringRef(), ParseFlags_); - TUnboxedValue* fields = nullptr; - const auto result = valueBuilder->NewArray(FieldsCount, fields); - if (ParseError == TUri::ParsedOK) { - FIELD_MAP(FIELD_FILL) - } else { - fields[UrlParseIndexes_.ParseError] = valueBuilder->NewString(TStringBuilder() << ParseError); - } - return result; +TUnboxedValue TParse::Run( + const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const { + TUri value; + const auto ParseError = value.ParseAbs(args[0].AsStringRef(), ParseFlags_); + TUnboxedValue* fields = nullptr; + const auto result = valueBuilder->NewArray(FieldsCount, fields); + if (ParseError == TUri::ParsedOK) { + FIELD_MAP(FIELD_FILL) + } else { + fields[UrlParseIndexes_.ParseError] = valueBuilder->NewString(TStringBuilder() << ParseError); } + return result; +} - bool TParse::DeclareSignature( - const TStringRef& name, - TType* userType, - IFunctionTypeInfoBuilder& builder, - bool typesOnly) { - Y_UNUSED(userType); - if (Name() == name) { - TUrlParseIndexes urlParseIndexes; +bool TParse::DeclareSignature( + const TStringRef& name, + TType* userType, + IFunctionTypeInfoBuilder& builder, + bool typesOnly) { + Y_UNUSED(userType); + if (Name() == name) { + TUrlParseIndexes urlParseIndexes; - builder.Args(1)->Add<TAutoMap<char*>>(); - const auto optionalStringType = builder.Optional()->Item<char*>().Build(); - const auto structBuilder = builder.Struct(FieldsCount); - structBuilder->AddField("ParseError", optionalStringType, &urlParseIndexes.ParseError); - FIELD_MAP(FIELD_ADD) - builder.Returns(structBuilder->Build()); + builder.Args(1)->Add<TAutoMap<char*>>(); + const auto optionalStringType = builder.Optional()->Item<char*>().Build(); + const auto structBuilder = builder.Struct(FieldsCount); + structBuilder->AddField("ParseError", optionalStringType, &urlParseIndexes.ParseError); + FIELD_MAP(FIELD_ADD) + builder.Returns(structBuilder->Build()); - if (!typesOnly) { - builder.Implementation(new TParse(urlParseIndexes)); - } - return true; - } else { - return false; + if (!typesOnly) { + builder.Implementation(new TParse(urlParseIndexes)); } + return true; + } else { + return false; } } +} // namespace NUrlUdf |