Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 23 additions & 36 deletions ydb/core/kqp/provider/yql_kikimr_datasink.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,9 +200,8 @@ class TKiSinkIntentDeterminationTransformer: public TKiSinkVisitorTransformer {
}

TStatus HandleModifyPermissions(TKiModifyPermissions node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "ModifyPermissions is not yet implemented for intent determination transformer"));
return TStatus::Error;
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleCreateBackupCollection(TKiCreateBackupCollection node, TExprContext& ctx) override {
Expand Down Expand Up @@ -242,27 +241,23 @@ class TKiSinkIntentDeterminationTransformer: public TKiSinkVisitorTransformer {
}

TStatus HandleCreateUser(TKiCreateUser node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "CreateUser is not yet implemented for intent determination transformer"));
return TStatus::Error;
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleAlterUser(TKiAlterUser node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "AlterUser is not yet implemented for intent determination transformer"));
return TStatus::Error;
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleDropUser(TKiDropUser node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "DropUser is not yet implemented for intent determination transformer"));
return TStatus::Error;
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleUpsertObject(TKiUpsertObject node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "UpsertObject is not yet implemented for intent determination transformer"));
return TStatus::Error;
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleCreateObject(TKiCreateObject node, TExprContext& ctx) override {
Expand All @@ -284,50 +279,42 @@ class TKiSinkIntentDeterminationTransformer: public TKiSinkVisitorTransformer {
}

TStatus HandleCreateGroup(TKiCreateGroup node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "CreateGroup is not yet implemented for intent determination transformer"));
return TStatus::Error;
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleAlterGroup(TKiAlterGroup node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "AlterGroup is not yet implemented for intent determination transformer"));
return TStatus::Error;
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleRenameGroup(TKiRenameGroup node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "RenameGroup is not yet implemented for intent determination transformer"));
return TStatus::Error;
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleDropGroup(TKiDropGroup node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "DropGroup is not yet implemented for intent determination transformer"));
return TStatus::Error;
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandlePgDropObject(TPgDropObject node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "PgDropObject is not yet implemented for intent determination transformer"));
return TStatus::Error;
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleCreateSecret(TKiCreateSecret node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "CreateSecret is not yet implemented for intent determination transformer"));
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleAlterSecret(TKiAlterSecret node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "AlterSecret is not yet implemented for intent determination transformer"));
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

TStatus HandleDropSecret(TKiDropSecret node, TExprContext& ctx) override {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
<< "DropSecret is not yet implemented for intent determination transformer"));
Y_UNUSED(ctx, node);
return TStatus::Ok;
}

Expand Down
11 changes: 10 additions & 1 deletion ydb/core/kqp/ut/federated_query/datastreams/datastreams_ut.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1382,7 +1382,7 @@ Y_UNIT_TEST_SUITE(KqpFederatedQueryDatastreams) {
}

Y_UNIT_TEST_SUITE(KqpStreamingQueriesDdl) {
Y_UNIT_TEST_F(CreateAndAlterStreamingQuery, TStreamingTestFixture) {
Y_UNIT_TEST_F(CreateAndAlterStreamingQuery, TStreamingWithSchemaSecretsTestFixture) {
constexpr char inputTopicName[] = "createAndAlterStreamingQueryInputTopic";
constexpr char outputTopicName[] = "createAndAlterStreamingQueryOutputTopic";
CreateTopic(inputTopicName);
Expand All @@ -1393,7 +1393,9 @@ Y_UNIT_TEST_SUITE(KqpStreamingQueriesDdl) {

constexpr char queryName[] = "streamingQuery";
ExecQuery(fmt::format(R"(
CREATE SECRET test_secret WITH (value = "1234");
CREATE TABLE test_table1 (Key Int32 NOT NULL, PRIMARY KEY (Key));
GRANT ALL ON `/Root/test_table1` TO `test@builtin`;
CREATE STREAMING QUERY `{query_name}` AS
DO BEGIN
INSERT INTO `{pq_source}`.`{output_topic}`
Expand All @@ -1412,6 +1414,13 @@ Y_UNIT_TEST_SUITE(KqpStreamingQueriesDdl) {
"output_topic"_a = outputTopicName
));

{
const auto tableDesc = Navigate(GetRuntime(), GetRuntime().AllocateEdgeActor(), "/Root/test_table1", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
const auto& table = tableDesc->ResultSet.at(0);
UNIT_ASSERT_VALUES_EQUAL(table.Kind, NSchemeCache::TSchemeCacheNavigate::EKind::KindTable);
UNIT_ASSERT(table.SecurityObject->CheckAccess(NACLib::GenericFull, NACLib::TUserToken("test@builtin", {})));
}

CheckScriptExecutionsCount(1, 1);
Sleep(TDuration::Seconds(1));

Expand Down
Loading