@@ -32,7 +32,7 @@ namespace NSQLTranslationV1 {
32
32
33
33
using namespace NSQLv1Generated ;
34
34
35
- void ValidateMessages (const google::protobuf::Message* msg1, const google::protobuf::Message* msg2, bool & hasNonAscii) {
35
+ void ValidateMessagesImpl (const google::protobuf::Message* msg1, const google::protobuf::Message* msg2, bool hasNonAscii) {
36
36
YQL_ENSURE (!msg1 == !msg2);
37
37
if (!msg1) {
38
38
return ;
@@ -47,7 +47,6 @@ void ValidateMessages(const google::protobuf::Message* msg1, const google::proto
47
47
const bool isEof2 = token2.GetId () == Max<ui32>();
48
48
YQL_ENSURE (isEof1 == isEof2);
49
49
YQL_ENSURE (token1.GetValue () == token2.GetValue ());
50
- hasNonAscii = hasNonAscii || AnyOf (token1.GetValue (), [](char c) { return !isascii (c);});
51
50
if (!isEof1) {
52
51
YQL_ENSURE (token1.GetLine () == token2.GetLine ());
53
52
if (!hasNonAscii) {
@@ -66,12 +65,17 @@ void ValidateMessages(const google::protobuf::Message* msg1, const google::proto
66
65
if (field1.IsMessage ()) {
67
66
YQL_ENSURE (field1.Size () == field2.Size ());
68
67
for (size_t j = 0 ; j < field1.Size (); ++j) {
69
- ValidateMessages (field1.template Get <NProtoBuf::Message>(j), field2.template Get <NProtoBuf::Message>(j), hasNonAscii);
68
+ ValidateMessagesImpl (field1.template Get <NProtoBuf::Message>(j), field2.template Get <NProtoBuf::Message>(j), hasNonAscii);
70
69
}
71
70
}
72
71
}
73
72
}
74
73
74
+ void ValidateMessages (const TString& query, const google::protobuf::Message* msg1, const google::protobuf::Message* msg2) {
75
+ const bool hasNonAscii = AnyOf (query, [](char c) { return !isascii (c);});
76
+ return ValidateMessagesImpl (msg1, msg2, hasNonAscii);
77
+ }
78
+
75
79
google::protobuf::Message* SqlAST (const TString& query, const TString& queryName, TIssues& err,
76
80
size_t maxErrors, bool ansiLexer, bool anlr4Parser, bool testAntlr4, google::protobuf::Arena* arena) {
77
81
YQL_ENSURE (arena);
@@ -85,8 +89,7 @@ google::protobuf::Message* SqlAST(const TString& query, const TString& queryName
85
89
if (testAntlr4) {
86
90
NProtoAST::TProtoASTBuilder<NALPAnsiAntlr4::SQLv1Antlr4Parser, NALPAnsiAntlr4::SQLv1Antlr4Lexer> builder (query, queryName, arena);
87
91
auto res2 = builder.BuildAST (collector);
88
- bool hasNonAscii = false ;
89
- ValidateMessages (res, res2, hasNonAscii);
92
+ ValidateMessages (query, res, res2);
90
93
}
91
94
92
95
return res;
@@ -96,8 +99,7 @@ google::protobuf::Message* SqlAST(const TString& query, const TString& queryName
96
99
if (testAntlr4) {
97
100
NProtoAST::TProtoASTBuilder<NALPDefaultAntlr4::SQLv1Antlr4Parser, NALPDefaultAntlr4::SQLv1Antlr4Lexer> builder (query, queryName, arena);
98
101
auto res2 = builder.BuildAST (collector);
99
- bool hasNonAscii = false ;
100
- ValidateMessages (res, res2, hasNonAscii);
102
+ ValidateMessages (query, res, res2);
101
103
}
102
104
103
105
return res;
@@ -122,8 +124,7 @@ google::protobuf::Message* SqlAST(const TString& query, const TString& queryName
122
124
if (testAntlr4) {
123
125
NProtoAST::TProtoASTBuilder<NALPAnsiAntlr4::SQLv1Antlr4Parser, NALPAnsiAntlr4::SQLv1Antlr4Lexer> builder (query, queryName, arena);
124
126
auto res2 = builder.BuildAST (err);
125
- bool hasNonAscii = false ;
126
- ValidateMessages (res, res2, hasNonAscii);
127
+ ValidateMessages (query, res, res2);
127
128
}
128
129
129
130
return res;
@@ -133,8 +134,7 @@ google::protobuf::Message* SqlAST(const TString& query, const TString& queryName
133
134
if (testAntlr4) {
134
135
NProtoAST::TProtoASTBuilder<NALPDefaultAntlr4::SQLv1Antlr4Parser, NALPDefaultAntlr4::SQLv1Antlr4Lexer> builder (query, queryName, arena);
135
136
auto res2 = builder.BuildAST (err);
136
- bool hasNonAscii = false ;
137
- ValidateMessages (res, res2, hasNonAscii);
137
+ ValidateMessages (query, res, res2);
138
138
}
139
139
140
140
return res;
0 commit comments