aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraneporada <aneporada@yandex-team.ru>2022-04-17 00:03:07 +0300
committeraneporada <aneporada@yandex-team.ru>2022-04-17 00:03:07 +0300
commita6be2749ad3f1b9e05a784f58e60fdfeb4176bb9 (patch)
treeb01dc43aa01f0443ee2ad61868ef8ea839da96aa
parentfa87633fc88e14dc94e6777a8ec35e2e72618da8 (diff)
downloadydb-a6be2749ad3f1b9e05a784f58e60fdfeb4176bb9.tar.gz
[YQL-14290] Do not clear issues in lexer
ref:733b2a8f6bca73d465dfe165538d3584bbd81092
-rw-r--r--ydb/library/yql/sql/v0/lexer/lexer.cpp7
-rw-r--r--ydb/library/yql/sql/v1/lexer/lexer.cpp7
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: