summaryrefslogtreecommitdiffstats
path: root/yql/essentials/tools/sql2yql/sql2yql.cpp
diff options
context:
space:
mode:
authorkndrvt <[email protected]>2025-06-20 15:36:52 +0300
committerkndrvt <[email protected]>2025-06-20 16:07:13 +0300
commit935e53d2a9ee4b43cc0548ba836b23c003c8078e (patch)
tree99fa1a3b091548f8f2d974f443b45847b9e66a1b /yql/essentials/tools/sql2yql/sql2yql.cpp
parent532fb55c30629ecb7b2720b02d446ea89ac76917 (diff)
YQL-17269: support INTERSECT and EXCEPT without PositionalUnionAll
commit_hash:632e24794e8bcf6ef0502b7e8c031e964d28d36a
Diffstat (limited to 'yql/essentials/tools/sql2yql/sql2yql.cpp')
-rw-r--r--yql/essentials/tools/sql2yql/sql2yql.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/yql/essentials/tools/sql2yql/sql2yql.cpp b/yql/essentials/tools/sql2yql/sql2yql.cpp
index 7ac7615fb40..03198612fdb 100644
--- a/yql/essentials/tools/sql2yql/sql2yql.cpp
+++ b/yql/essentials/tools/sql2yql/sql2yql.cpp
@@ -204,11 +204,20 @@ int BuildAST(int argc, char* argv[]) {
TString queryString;
ui16 syntaxVersion;
TString outFileNameFormat;
+ NYql::TLangVersion langVer;
THashMap<TString, TString> clusterMapping;
clusterMapping["plato"] = NYql::YtProviderName;
clusterMapping["pg_catalog"] = NYql::PgProviderName;
clusterMapping["information_schema"] = NYql::PgProviderName;
+ auto langVerHandler = [&langVer](const TString& str) {
+ if (str == "unknown") {
+ langVer = NYql::UnknownLangVersion;
+ } else if (!NYql::ParseLangVersion(str, langVer)) {
+ throw yexception() << "Failed to parse language version: " << str;
+ }
+ };
+
THashSet<TString> flags;
opts.AddLongOption('o', "output", "save output to file").RequiredArgument("file").StoreResult(&outFileName);
@@ -234,6 +243,7 @@ int BuildAST(int argc, char* argv[]) {
opts.AddLongOption("test-lexers", "check other lexers").NoArgument();
opts.AddLongOption("test-complete", "check completion engine").NoArgument();
opts.AddLongOption("format-output", "Saves formatted query to it").RequiredArgument("format-output").StoreResult(&outFileNameFormat);
+ opts.AddLongOption("langver", "Set current language version").Optional().RequiredArgument("VER").Handler1T<TString>(langVerHandler);
opts.SetFreeArgDefaultTitle("query file");
opts.AddHelpOption();
@@ -310,6 +320,7 @@ int BuildAST(int argc, char* argv[]) {
google::protobuf::Arena arena;
NSQLTranslation::TTranslationSettings settings;
settings.Arena = &arena;
+ settings.LangVer = langVer;
settings.ClusterMapping = clusterMapping;
settings.Flags = flags;
settings.SyntaxVersion = syntaxVersion;