aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorepbugaev <epbugaev@yandex-team.com>2023-02-27 18:29:04 +0300
committerepbugaev <epbugaev@yandex-team.com>2023-02-27 18:29:04 +0300
commit61873221e9ca9532a18a6df26b404701965a0eb7 (patch)
tree0b8de7542f99f0198bcd7e7fe0f588a277442907
parent48dc59fa1f145b49cff87965fbca3b376e857def (diff)
downloadydb-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.h30
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);