diff options
author | babenko <babenko@yandex-team.com> | 2025-05-31 14:27:56 +0300 |
---|---|---|
committer | babenko <babenko@yandex-team.com> | 2025-05-31 14:41:24 +0300 |
commit | d6c153db03fa831e84b97affbd6d6e2ffb1d4b4e (patch) | |
tree | 83caa2d6c7031257580f7eaa26fe4c58d630d6f7 | |
parent | f1873d0f1bb38aa209678e2a986967083cd24e05 (diff) | |
download | ydb-d6c153db03fa831e84b97affbd6d6e2ffb1d4b4e.tar.gz |
YT-25204: Don't suggest cluster:// YPath syntax to anyone
commit_hash:960629a477acd49eaae950e553a7e2e45cea9796
-rw-r--r-- | yt/yt/client/ypath/parser_detail.cpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/yt/yt/client/ypath/parser_detail.cpp b/yt/yt/client/ypath/parser_detail.cpp index 30739dde0c8..e68553ee8a0 100644 --- a/yt/yt/client/ypath/parser_detail.cpp +++ b/yt/yt/client/ypath/parser_detail.cpp @@ -34,6 +34,8 @@ const NYson::ETokenType RangeSeparatorToken = NYson::ETokenType::Comma; //////////////////////////////////////////////////////////////////////////////// +namespace { + void ThrowUnexpectedToken(const TToken& token) { THROW_ERROR_EXCEPTION("Unexpected token %Qv", @@ -128,37 +130,30 @@ TString ParseCluster(TString str, const IAttributeDictionaryPtr& attributes) auto clusterSeparatorIndex = str.find_first_of(':'); if (clusterSeparatorIndex == TString::npos) { THROW_ERROR_EXCEPTION( - "Path %Qv does not start with a valid root-designator, cluster://path short-form assumed; " - "no \':\' separator symbol found to parse cluster", + "Path %Qv does not start with a valid root-designator", str); } const auto clusterName = str.substr(0, clusterSeparatorIndex); - if (clusterName.empty()) { THROW_ERROR_EXCEPTION( - "Path %Qv does not start with a valid root-designator, cluster://path short-form assumed; " - "cluster name cannot be empty", + "Path %Qv does not start with a valid root-designator", str); } auto illegalSymbolIt = std::find_if_not(clusterName.begin(), clusterName.end(), &IsValidClusterSymbol); if (illegalSymbolIt != clusterName.end()) { THROW_ERROR_EXCEPTION( - "Path %Qv does not start with a valid root-designator, cluster://path short-form assumed; " - "cluster name contains illegal symbol %Qv", + "Possible cluster name in path %Qv contains illegal symbol %Qv", str, *illegalSymbolIt); } auto remainingString = str.substr(clusterSeparatorIndex + 1); - if (!StartsWithRootDesignator(remainingString)) { THROW_ERROR_EXCEPTION( - "Path %Qv does not start with a valid root-designator, cluster://path short-form assumed; " - "path %Qv after cluster-separator does not start with a valid root-designator", - str, - remainingString); + "Path %Qv does not start with a valid root-designator", + str); } attributes->Set("cluster", clusterName); @@ -405,6 +400,8 @@ void ParseRowRanges(NYson::TTokenizer& tokenizer, IAttributeDictionary* attribut } } +} // namespace + //////////////////////////////////////////////////////////////////////////////// TRichYPath ParseRichYPathImpl(const TString& str) |