aboutsummaryrefslogtreecommitdiffstats
path: root/yql
diff options
context:
space:
mode:
authorflown4qqqq <flown4qqqq@yandex-team.com>2025-02-11 18:13:29 +0300
committerflown4qqqq <flown4qqqq@yandex-team.com>2025-02-11 18:34:41 +0300
commit5c6755b60fea0490015fbd14787ea4431736b3f9 (patch)
treeac05ac804e398e4022b352cdd73531aef9f953fa /yql
parent8b363a039a2bc94a03da342d5cffe4b723e63a21 (diff)
downloadydb-5c6755b60fea0490015fbd14787ea4431736b3f9.tar.gz
Fix bugs with parsing alter database (+add ut on compiling)
commit_hash:7e6d742dce448b1c5f815abebd781049e7b22b46
Diffstat (limited to 'yql')
-rw-r--r--yql/essentials/sql/v1/node.h2
-rw-r--r--yql/essentials/sql/v1/query.cpp6
-rw-r--r--yql/essentials/sql/v1/sql_query.cpp2
-rw-r--r--yql/essentials/sql/v1/sql_ut.cpp2
-rw-r--r--yql/essentials/sql/v1/sql_ut_antlr4.cpp2
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"))))"
));
};