diff options
author | aneporada <aneporada@yandex-team.ru> | 2022-04-17 00:03:07 +0300 |
---|---|---|
committer | aneporada <aneporada@yandex-team.ru> | 2022-04-17 00:03:07 +0300 |
commit | a6be2749ad3f1b9e05a784f58e60fdfeb4176bb9 (patch) | |
tree | b01dc43aa01f0443ee2ad61868ef8ea839da96aa | |
parent | fa87633fc88e14dc94e6777a8ec35e2e72618da8 (diff) | |
download | ydb-a6be2749ad3f1b9e05a784f58e60fdfeb4176bb9.tar.gz |
[YQL-14290] Do not clear issues in lexer
ref:733b2a8f6bca73d465dfe165538d3584bbd81092
-rw-r--r-- | ydb/library/yql/sql/v0/lexer/lexer.cpp | 7 | ||||
-rw-r--r-- | ydb/library/yql/sql/v1/lexer/lexer.cpp | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/ydb/library/yql/sql/v0/lexer/lexer.cpp b/ydb/library/yql/sql/v0/lexer/lexer.cpp index b28fb5536d2..bc6d8fc0cd6 100644 --- a/ydb/library/yql/sql/v0/lexer/lexer.cpp +++ b/ydb/library/yql/sql/v0/lexer/lexer.cpp @@ -27,14 +27,15 @@ public: TV0Lexer() = default; bool Tokenize(const TString& query, const TString& queryName, const TTokenCallback& onNextToken, NYql::TIssues& issues, size_t maxErrors) override { - issues.Clear(); + NYql::TIssues newIssues; #if defined(_tsan_enabled_) TGuard<TMutex> grd(SanitizerSQLTranslationMutex); #endif - NSQLTranslation::TErrorCollectorOverIssues collector(issues, maxErrors, ""); + NSQLTranslation::TErrorCollectorOverIssues collector(newIssues, maxErrors, ""); NProtoAST::TLexerTokensCollector<NALP::SQLLexer> tokensCollector(query, (const char**)NALP::SQLParserTokenNames, queryName); tokensCollector.CollectTokens(collector, onNextToken); - return !AnyOf(issues.begin(), issues.end(), [](auto issue) { return issue.GetSeverity() == NYql::ESeverity::TSeverityIds_ESeverityId_S_ERROR; }); + issues.AddIssues(newIssues); + return !AnyOf(newIssues.begin(), newIssues.end(), [](auto issue) { return issue.GetSeverity() == NYql::ESeverity::TSeverityIds_ESeverityId_S_ERROR; }); } }; diff --git a/ydb/library/yql/sql/v1/lexer/lexer.cpp b/ydb/library/yql/sql/v1/lexer/lexer.cpp index 81b58e3db9d..9f82c77b0b4 100644 --- a/ydb/library/yql/sql/v1/lexer/lexer.cpp +++ b/ydb/library/yql/sql/v1/lexer/lexer.cpp @@ -35,11 +35,11 @@ public: } bool Tokenize(const TString& query, const TString& queryName, const TTokenCallback& onNextToken, NYql::TIssues& issues, size_t maxErrors) override { - issues.Clear(); + NYql::TIssues newIssues; #if defined(_tsan_enabled_) TGuard<TMutex> grd(SanitizerSQLTranslationMutex); #endif - NSQLTranslation::TErrorCollectorOverIssues collector(issues, maxErrors, ""); + NSQLTranslation::TErrorCollectorOverIssues collector(newIssues, maxErrors, ""); if (Ansi) { NProtoAST::TLexerTokensCollector<NALPAnsi::SQLv1Lexer> tokensCollector(query, (const char**)NALPAnsi::SQLv1ParserTokenNames, queryName); tokensCollector.CollectTokens(collector, onNextToken); @@ -48,7 +48,8 @@ public: tokensCollector.CollectTokens(collector, onNextToken); } - return !AnyOf(issues.begin(), issues.end(), [](auto issue) { return issue.GetSeverity() == NYql::ESeverity::TSeverityIds_ESeverityId_S_ERROR; }); + issues.AddIssues(newIssues); + return !AnyOf(newIssues.begin(), newIssues.end(), [](auto issue) { return issue.GetSeverity() == NYql::ESeverity::TSeverityIds_ESeverityId_S_ERROR; }); } private: |