diff options
author | vvvv <[email protected]> | 2025-10-06 11:26:09 +0300 |
---|---|---|
committer | vvvv <[email protected]> | 2025-10-06 11:53:26 +0300 |
commit | 60f45e69a4d7dbc6131208e16c45faf35aa5a985 (patch) | |
tree | 4daa45b52c295a178c7620e4c93921465fcf7950 /yql/essentials/utils/docs/name.cpp | |
parent | 1bded1a65a7e6e9171418f3e1c691d390125b64e (diff) |
YQL-20086 utils
init
commit_hash:54feccd520ebd0ab23612bc0cb830914dff9d0e8
Diffstat (limited to 'yql/essentials/utils/docs/name.cpp')
-rw-r--r-- | yql/essentials/utils/docs/name.cpp | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/yql/essentials/utils/docs/name.cpp b/yql/essentials/utils/docs/name.cpp index 570bf23f313..9ebf04d06bd 100644 --- a/yql/essentials/utils/docs/name.cpp +++ b/yql/essentials/utils/docs/name.cpp @@ -7,43 +7,43 @@ namespace NYql::NDocs { - const RE2 NormalizedNameRegex(R"re([a-z_]{1,2}[a-z0-9]*)re"); +const RE2 NormalizedNameRegex(R"re([a-z_]{1,2}[a-z0-9]*)re"); - bool IsNormalizedName(TStringBuf name) { - return RE2::FullMatch(name, NormalizedNameRegex); +bool IsNormalizedName(TStringBuf name) { + return RE2::FullMatch(name, NormalizedNameRegex); +} + +TMaybe<TString> NormalizedName(TString name) { + if (TMaybe<TIssue> issue = NormalizeName(TPosition(), name)) { + return Nothing(); } - TMaybe<TString> NormalizedName(TString name) { - if (TMaybe<TIssue> issue = NormalizeName(TPosition(), name)) { - return Nothing(); - } + if (!IsNormalizedName(name)) { + return Nothing(); + } - if (!IsNormalizedName(name)) { - return Nothing(); - } + return name; +} - return name; - } +bool IsUDF(TStringBuf name) { + return name.Contains("::"); +} - bool IsUDF(TStringBuf name) { - return name.Contains("::"); +TMaybe<std::pair<TString, TString>> SplitUDF(TString name) { + if (!IsUDF(name)) { + return Nothing(); } - TMaybe<std::pair<TString, TString>> SplitUDF(TString name) { - if (!IsUDF(name)) { - return Nothing(); - } + TVector<TString> words; + words.reserve(2); + StringSplitter(name).SplitByString("::").Collect(&words); + YQL_ENSURE(words.size() == 2, "Invalid UDF pattern: " << name); - TVector<TString> words; - words.reserve(2); - StringSplitter(name).SplitByString("::").Collect(&words); - YQL_ENSURE(words.size() == 2, "Invalid UDF pattern: " << name); + TMaybe<TString> module = NormalizedName(std::move(words[0])); + TMaybe<TString> function = NormalizedName(std::move(words[1])); + YQL_ENSURE(module && function, "Unable to normalize " << name); - TMaybe<TString> module = NormalizedName(std::move(words[0])); - TMaybe<TString> function = NormalizedName(std::move(words[1])); - YQL_ENSURE(module && function, "Unable to normalize " << name); - - return std::make_pair(*module, *function); - } + return std::make_pair(*module, *function); +} } // namespace NYql::NDocs |