summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql_query.cpp
diff options
context:
space:
mode:
authorAlexander Smirnov <[email protected]>2025-02-06 12:45:05 +0000
committerAlexander Smirnov <[email protected]>2025-02-06 12:45:05 +0000
commit877eef3e6cb697bdc2fa280c8a87a65a9ed98d51 (patch)
tree1e9a34db7a9b777ea1cbfcb071009da9da1232d7 /yql/essentials/sql/v1/sql_query.cpp
parent60b0993921e4b80febdd8b09dee27c04484f18f3 (diff)
parent25f0f292fefc390b49ac937c2e2326fb576b62c2 (diff)
Merge pull request #14243 from ydb-platform/merge-libs-250206-0050
Diffstat (limited to 'yql/essentials/sql/v1/sql_query.cpp')
-rw-r--r--yql/essentials/sql/v1/sql_query.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/sql_query.cpp b/yql/essentials/sql/v1/sql_query.cpp
index 7510acc4679..5db4995768d 100644
--- a/yql/essentials/sql/v1/sql_query.cpp
+++ b/yql/essentials/sql/v1/sql_query.cpp
@@ -1925,6 +1925,30 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core&
node.HasBlock4(), context));
break;
}
+ case TRule_sql_stmt_core::kAltSqlStmtCore61: {
+ // alter_database_stmt: ALTER DATABASE an_id_schema OWNER TO role_name
+ auto& node = core.GetAlt_sql_stmt_core61().GetRule_alter_database_stmt1();
+
+ TDeferredAtom roleName;
+ {
+ bool allowSystemRoles = true;
+ if (!RoleNameClause(node.GetRule_role_name6(), roleName, allowSystemRoles)) {
+ return false;
+ }
+ }
+
+ TAlterDatabaseParameters alterDatabaseParams;
+ alterDatabaseParams.Owner = roleName;
+ alterDatabaseParams.DbPath = Id(node.GetRule_an_id_schema3(), *this);
+
+ const TPosition pos = Ctx.Pos();
+ TString service = Ctx.Scoped->CurrService;
+ TDeferredAtom cluster = Ctx.Scoped->CurrCluster;
+
+ auto stmt = BuildAlterDatabase(pos, service, cluster, alterDatabaseParams, Ctx.Scoped);
+ AddStatementToBlocks(blocks, stmt);
+ break;
+ }
case TRule_sql_stmt_core::ALT_NOT_SET:
Ctx.IncrementMonCounter("sql_errors", "UnknownStatement" + internalStatementName);
AltNotImplemented("sql_stmt_core", core);