diff options
author | flown4qqqq <flown4qqqq@yandex-team.com> | 2025-02-11 18:13:29 +0300 |
---|---|---|
committer | flown4qqqq <flown4qqqq@yandex-team.com> | 2025-02-11 18:34:41 +0300 |
commit | 5c6755b60fea0490015fbd14787ea4431736b3f9 (patch) | |
tree | ac05ac804e398e4022b352cdd73531aef9f953fa | |
parent | 8b363a039a2bc94a03da342d5cffe4b723e63a21 (diff) | |
download | ydb-5c6755b60fea0490015fbd14787ea4431736b3f9.tar.gz |
Fix bugs with parsing alter database (+add ut on compiling)
commit_hash:7e6d742dce448b1c5f815abebd781049e7b22b46
-rw-r--r-- | yql/essentials/sql/v1/node.h | 2 | ||||
-rw-r--r-- | yql/essentials/sql/v1/query.cpp | 6 | ||||
-rw-r--r-- | yql/essentials/sql/v1/sql_query.cpp | 2 | ||||
-rw-r--r-- | yql/essentials/sql/v1/sql_ut.cpp | 2 | ||||
-rw-r--r-- | yql/essentials/sql/v1/sql_ut_antlr4.cpp | 2 |
5 files changed, 6 insertions, 8 deletions
diff --git a/yql/essentials/sql/v1/node.h b/yql/essentials/sql/v1/node.h index 027b37bb69..30564dc858 100644 --- a/yql/essentials/sql/v1/node.h +++ b/yql/essentials/sql/v1/node.h @@ -1278,7 +1278,7 @@ namespace NSQLTranslationV1 { }; struct TAlterDatabaseParameters { - TString DbPath; + TDeferredAtom DbPath; std::optional<TDeferredAtom> Owner; }; diff --git a/yql/essentials/sql/v1/query.cpp b/yql/essentials/sql/v1/query.cpp index cac9b5aaf5..780f7bb99e 100644 --- a/yql/essentials/sql/v1/query.cpp +++ b/yql/essentials/sql/v1/query.cpp @@ -1337,15 +1337,13 @@ public: auto options = Y(Q(Y(Q("mode"), Q("alterDatabase")))); - options = L(options, Q(Y(Q("dbPath"), Q(Params.DbPath)))); - if (Params.Owner.has_value()) { - options = L(options, Q(Y(Q("owner"), Q(Params.Owner.value().Build())))); + options = L(options, Q(Y(Q("owner"), Params.Owner.value().Build()))); } Add("block", Q(Y( Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Service), cluster)), - Y("let", "world", Y(TString(WriteName), "world", "sink", Q(options))), + Y("let", "world", Y(TString(WriteName), "world", "sink", Y("Key", Q(Y(Q("databasePath"), Y("String", Params.DbPath.Build())))), Y("Void"), Q(options))), Y("return", ctx.PragmaAutoCommit ? Y(TString(CommitName), "world", "sink") : AstNode("world")) ))); diff --git a/yql/essentials/sql/v1/sql_query.cpp b/yql/essentials/sql/v1/sql_query.cpp index 6728270395..34f137016a 100644 --- a/yql/essentials/sql/v1/sql_query.cpp +++ b/yql/essentials/sql/v1/sql_query.cpp @@ -1939,7 +1939,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& TAlterDatabaseParameters alterDatabaseParams; alterDatabaseParams.Owner = roleName; - alterDatabaseParams.DbPath = Id(node.GetRule_an_id_schema3(), *this); + alterDatabaseParams.DbPath = TDeferredAtom(Ctx.Pos(), Id(node.GetRule_an_id_schema3(), *this)); const TPosition pos = Ctx.Pos(); TString service = Ctx.Scoped->CurrService; diff --git a/yql/essentials/sql/v1/sql_ut.cpp b/yql/essentials/sql/v1/sql_ut.cpp index fcaeb12781..03d7c1e99a 100644 --- a/yql/essentials/sql/v1/sql_ut.cpp +++ b/yql/essentials/sql/v1/sql_ut.cpp @@ -977,7 +977,7 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { Y_UNUSED(word); UNIT_ASSERT_VALUES_UNEQUAL(TString::npos, line.find( - R"(let world (Write! world sink '('('mode 'alterDatabase) '('dbPath '/Root/test) '('owner ''"user1"))))" + R"(let world (Write! world sink (Key '('databasePath (String '"/Root/test"))) (Void) '('('mode 'alterDatabase) '('owner '"user1"))))" )); }; diff --git a/yql/essentials/sql/v1/sql_ut_antlr4.cpp b/yql/essentials/sql/v1/sql_ut_antlr4.cpp index e4f9fb6d60..9472e01543 100644 --- a/yql/essentials/sql/v1/sql_ut_antlr4.cpp +++ b/yql/essentials/sql/v1/sql_ut_antlr4.cpp @@ -1095,7 +1095,7 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { Y_UNUSED(word); UNIT_ASSERT_VALUES_UNEQUAL(TString::npos, line.find( - R"(let world (Write! world sink '('('mode 'alterDatabase) '('dbPath '/Root/test) '('owner ''"user1"))))" + R"(let world (Write! world sink (Key '('databasePath (String '"/Root/test"))) (Void) '('('mode 'alterDatabase) '('owner '"user1"))))" )); }; |