diff options
author | epbugaev <epbugaev@yandex-team.com> | 2023-02-27 18:29:04 +0300 |
---|---|---|
committer | epbugaev <epbugaev@yandex-team.com> | 2023-02-27 18:29:04 +0300 |
commit | 61873221e9ca9532a18a6df26b404701965a0eb7 (patch) | |
tree | 0b8de7542f99f0198bcd7e7fe0f588a277442907 | |
parent | 48dc59fa1f145b49cff87965fbca3b376e857def (diff) | |
download | ydb-61873221e9ca9532a18a6df26b404701965a0eb7.tar.gz |
Add new block url_base udfs
Add new block base_url udfs
Block versions of:
GetHostPort,
GetSchemeHost,
GetSchemeHostPort
-rw-r--r-- | ydb/library/yql/udfs/common/url_base/lib/url_base_udf.h | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/ydb/library/yql/udfs/common/url_base/lib/url_base_udf.h b/ydb/library/yql/udfs/common/url_base/lib/url_base_udf.h index ddb38c38ce7..8e3de1aca1f 100644 --- a/ydb/library/yql/udfs/common/url_base/lib/url_base_udf.h +++ b/ydb/library/yql/udfs/common/url_base/lib/url_base_udf.h @@ -67,30 +67,24 @@ SIMPLE_UDF(TGetScheme, char*(TAutoMap<char*>)) { ARROW_UDF_SINGLE_STRING_FUNCTION_FOR_URL(TGetHost, GetOnlyHost) -SIMPLE_UDF(TGetHostPort, TOptional<char*>(TOptional<char*>)) { - EMPTY_RESULT_ON_EMPTY_ARG(0); - const std::string_view url(args[0].AsStringRef()); - const std::string_view host(GetHostAndPort(CutSchemePrefix(url))); - return host.empty() ? TUnboxedValue() : - valueBuilder->SubString(args[0], std::distance(url.begin(), host.begin()), host.size()); +std::string_view GetHostAndPortAfterCut(const std::string_view url) { + return GetHostAndPort(CutSchemePrefix(url)); } -SIMPLE_UDF(TGetSchemeHost, TOptional<char*>(TOptional<char*>)) { - EMPTY_RESULT_ON_EMPTY_ARG(0); - const std::string_view url(args[0].AsStringRef()); - const std::string_view host(GetSchemeHost(url, /* trimHttp */ false)); - return host.empty() ? TUnboxedValue() : - valueBuilder->SubString(args[0], 0U, std::distance(url.begin(), host.end())); +ARROW_UDF_SINGLE_STRING_FUNCTION_FOR_URL(TGetHostPort, GetHostAndPortAfterCut) + +std::string_view GetSchemeHostParameterized(const std::string_view url) { + return GetSchemeHost(url, /* trimHttp */ false); } -SIMPLE_UDF(TGetSchemeHostPort, TOptional<char*>(TOptional<char*>)) { - EMPTY_RESULT_ON_EMPTY_ARG(0); - const std::string_view url(args[0].AsStringRef()); - const std::string_view host(GetSchemeHostAndPort(url, /* trimHttp */ false, /* trimDefaultPort */ false)); - return host.empty() ? TUnboxedValue() : - valueBuilder->SubString(args[0], 0U, std::distance(url.begin(), host.end())); +ARROW_UDF_SINGLE_STRING_FUNCTION_FOR_URL(TGetSchemeHost, GetSchemeHostParameterized); + +std::string_view GetSchemeHostPortParameterized(const std::string_view url) { + return GetSchemeHostAndPort(url, /* trimHttp */ false, /* trimDefaultPort */ false); } +ARROW_UDF_SINGLE_STRING_FUNCTION_FOR_URL(TGetSchemeHostPort, GetSchemeHostPortParameterized); + SIMPLE_UDF(TGetPort, TOptional<ui64>(TOptional<char*>)) { EMPTY_RESULT_ON_EMPTY_ARG(0); Y_UNUSED(valueBuilder); |