Skip to content

Commit 57c5606

Browse files
committed
Intermediate changes
commit_hash:112bf21627e2883a424e58d1a65caf7af62c24c8
1 parent 3fbc0ac commit 57c5606

File tree

4 files changed

+30
-2
lines changed

4 files changed

+30
-2
lines changed

yql/essentials/public/fastcheck/format.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ class TFormatRunner : public TCheckRunnerBase {
8383
settings.File = request.File;
8484
settings.Antlr4Parser = true;
8585
settings.AnsiLexer = request.IsAnsiLexer;
86+
settings.LangVer = request.LangVer;
8687

8788
NSQLTranslationV1::TLexers lexers;
8889
lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory();

yql/essentials/tools/sql_formatter/sql_formatter.cpp

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include <yql/essentials/sql/v1/lexer/antlr4_ansi/lexer.h>
44
#include <yql/essentials/sql/v1/proto_parser/antlr4/proto_parser.h>
55
#include <yql/essentials/sql/v1/proto_parser/antlr4_ansi/proto_parser.h>
6+
#include <yql/essentials/public/langver/yql_langver.h>
7+
#include <yql/essentials/core/langver/yql_core_langver.h>
68

79
#include <library/cpp/getopt/last_getopt.h>
810
#include <google/protobuf/arena.h>
@@ -15,15 +17,28 @@ int RunFormat(int argc, char* argv[]) {
1517
TString outFileName;
1618
TString inFileName;
1719
TString queryString;
20+
NYql::TLangVersion langver = NYql::GetMaxReleasedLangVersion();
1821

1922
opts.AddLongOption('o', "output", "save output to file").RequiredArgument("file").StoreResult(&outFileName);
2023
opts.AddLongOption('i', "input", "input file").RequiredArgument("input").StoreResult(&inFileName);
2124
opts.AddLongOption('p', "print-query", "print given query before parsing").NoArgument();
2225
opts.AddLongOption('f', "obfuscate", "obfuscate query").NoArgument();
2326
opts.AddLongOption("ansi-lexer", "use ansi lexer").NoArgument();
27+
opts.AddLongOption("langver", "Set current language version").Optional().RequiredArgument("VER")
28+
.Handler1T<TString>([&](const TString& str) {
29+
if (!NYql::ParseLangVersion(str, langver)) {
30+
throw yexception() << "Failed to parse language version: " << str;
31+
}
32+
});
33+
34+
opts.SetFreeArgsNum(0);
2435
opts.AddHelpOption();
2536

2637
NLastGetopt::TOptsParseResult res(&opts, argc, argv);
38+
TMaybe<NYql::TIssue> verIssue;
39+
if (!NYql::CheckLangVersion(langver, NYql::GetMaxReleasedLangVersion(), verIssue)) {
40+
throw yexception() << verIssue->ToString();
41+
}
2742

2843
THolder<TFixedBufferFileOutput> outFile;
2944
if (!outFileName.empty()) {
@@ -45,6 +60,7 @@ int RunFormat(int argc, char* argv[]) {
4560
}
4661
google::protobuf::Arena arena;
4762
NSQLTranslation::TTranslationSettings settings;
63+
settings.LangVer = langver;
4864
settings.Arena = &arena;
4965
settings.AnsiLexer = res.Has("ansi-lexer");
5066
NSQLTranslationV1::TLexers lexers;
@@ -72,7 +88,7 @@ int main(int argc, char* argv[]) {
7288
try {
7389
return RunFormat(argc, argv);
7490
} catch (const yexception& e) {
75-
Cerr << "Caught exception:" << e.what() << Endl;
91+
Cerr << "Caught exception: " << e.what() << Endl;
7692
return 1;
7793
} catch (...) {
7894
Cerr << CurrentExceptionMessage() << Endl;

yql/essentials/tools/sql_formatter/ya.make

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ PEERDIR(
1010
yql/essentials/sql/v1/lexer/antlr4_ansi
1111
yql/essentials/sql/v1/proto_parser/antlr4
1212
yql/essentials/sql/v1/proto_parser/antlr4_ansi
13+
yql/essentials/public/langver
14+
yql/essentials/core/langver
1315
)
1416

1517
SRCS(

yql/essentials/tools/yql_linter/yql_linter.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ int Run(int argc, char* argv[]) {
2020
TString syntaxStr = "YQL";
2121
TString clusterModeStr = "Many";
2222
TString clusterSystem;
23+
NYql::TLangVersion langver = NYql::GetMaxReleasedLangVersion();
2324

2425
opts.AddLongOption('i', "input", "input file").RequiredArgument("input").StoreResult(&inFileName);
2526
opts.AddLongOption('v', "verbose", "show lint issues").NoArgument();
@@ -39,6 +40,13 @@ int Run(int argc, char* argv[]) {
3940
opts.AddLongOption("cluster-system", "cluster system").StoreResult(&clusterSystem);
4041
opts.AddLongOption("ansi-lexer", "use ansi lexer").NoArgument();
4142
opts.AddLongOption("no-colors", "disable colors for output").NoArgument();
43+
opts.AddLongOption("langver", "Set current language version").Optional().RequiredArgument("VER")
44+
.Handler1T<TString>([&](const TString& str) {
45+
if (!NYql::ParseLangVersion(str, langver)) {
46+
throw yexception() << "Failed to parse language version: " << str;
47+
}
48+
});
49+
4250
opts.SetFreeArgsNum(0);
4351
opts.AddHelpOption();
4452

@@ -77,6 +85,7 @@ int Run(int argc, char* argv[]) {
7785
int errors = 0;
7886
TString queryFile("query");
7987

88+
checkReq.LangVer = langver;
8089
checkReq.IsAnsiLexer = res.Has("ansi-lexer");
8190
checkReq.Program = queryString;
8291
checkReq.Syntax = NYql::NFastCheck::ESyntax::YQL;
@@ -118,7 +127,7 @@ int main(int argc, char* argv[]) {
118127
try {
119128
return Run(argc, argv);
120129
} catch (const yexception& e) {
121-
Cerr << "Caught exception:" << e.what() << Endl;
130+
Cerr << "Caught exception: " << e.what() << Endl;
122131
return 1;
123132
} catch (...) {
124133
Cerr << CurrentExceptionMessage() << Endl;

0 commit comments

Comments
 (0)