Skip to content

Commit 0559195

Browse files
committed
Fixed sqs tests
1 parent 35b0b1f commit 0559195

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

ydb/core/kqp/workload_service/actors/scheme_actors.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ class TPoolFetcherActor : public TSchemeActorBase<TPoolFetcherActor> {
180180
LOG_D("Start pool fetching");
181181
auto event = NTableCreator::BuildSchemeCacheNavigateRequest(
182182
{{".metadata/workload_manager/pools", PoolId}},
183-
Database,
183+
Database ? Database : AppData()->TenantName,
184184
UserToken
185185
);
186186
event->ResultSet[0].Access |= NACLib::SelectRow;
@@ -326,7 +326,7 @@ class TPoolCreatorActor : public TSchemeActorBase<TPoolCreatorActor> {
326326
auto event = std::make_unique<TEvTxUserProxy::TEvProposeTransaction>();
327327

328328
auto& schemeTx = *event->Record.MutableTransaction()->MutableModifyScheme();
329-
schemeTx.SetWorkingDir(JoinPath({Database, ".metadata/workload_manager/pools"}));
329+
schemeTx.SetWorkingDir(JoinPath({Database ? Database : AppData()->TenantName, ".metadata/workload_manager/pools"}));
330330
schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateResourcePool);
331331
schemeTx.SetInternal(true);
332332

@@ -483,7 +483,13 @@ class TDatabaseFetcherActor : public TSchemeActorBase<TDatabaseFetcherActor> {
483483
}
484484
return;
485485
case EStatus::Ok:
486-
Serverless = result.DomainInfo && result.DomainInfo->IsServerless();
486+
if (result.DomainInfo) {
487+
Serverless = result.DomainInfo->IsServerless();
488+
if (result.Self->Info.GetPathId() != result.DomainInfo->DomainKey.LocalPathId) {
489+
Reply(Ydb::StatusIds::UNSUPPORTED, TStringBuilder() << "Invalid database " << Database << ", domain path id is different");
490+
return;
491+
}
492+
}
487493
Reply(Ydb::StatusIds::SUCCESS);
488494
return;
489495
}
@@ -500,7 +506,11 @@ class TDatabaseFetcherActor : public TSchemeActorBase<TDatabaseFetcherActor> {
500506
protected:
501507
void StartRequest() override {
502508
LOG_D("Start database fetching");
503-
auto event = NTableCreator::BuildSchemeCacheNavigateRequest({{}}, Database, UserToken);
509+
auto event = NTableCreator::BuildSchemeCacheNavigateRequest(
510+
{{}},
511+
Database ? Database : AppData()->TenantName,
512+
UserToken
513+
);
504514
event->ResultSet[0].Operation = NSchemeCache::TSchemeCacheNavigate::OpPath;
505515
event->ResultSet[0].Access |= CheckAccess;
506516
Send(MakeSchemeCacheID(), new TEvTxProxySchemeCache::TEvNavigateKeySet(event.Release()), IEventHandle::FlagTrackDelivery);

ydb/core/kqp/workload_service/kqp_workload_service_impl.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ struct TDatabaseState {
2222
std::unordered_map<TString, std::unordered_set<TActorId>> PendingSubscriptions = {};
2323
bool HasDefaultPool = false;
2424
bool Serverless = false;
25+
bool DatabaseUnsupported = false;
2526

2627
TInstant LastUpdateTime = TInstant::Zero();
2728

@@ -41,8 +42,10 @@ struct TDatabaseState {
4142

4243
if (!EnabledResourcePoolsOnServerless && (TInstant::Now() - LastUpdateTime) > IDLE_DURATION) {
4344
ActorContext.Register(CreateDatabaseFetcherActor(ActorContext.SelfID, database));
44-
} else {
45+
} else if (!DatabaseUnsupported) {
4546
StartPendingRequests();
47+
} else {
48+
ReplyContinueError(Ydb::StatusIds::UNSUPPORTED, {NYql::TIssue(TStringBuilder() << "Unsupported database: " << database)});
4649
}
4750
}
4851

@@ -65,6 +68,7 @@ struct TDatabaseState {
6568
}
6669

6770
void UpdateDatabaseInfo(const TEvPrivate::TEvFetchDatabaseResponse::TPtr& ev) {
71+
DatabaseUnsupported = ev->Get()->Status == Ydb::StatusIds::UNSUPPORTED;
6872
if (ev->Get()->Status != Ydb::StatusIds::SUCCESS) {
6973
ReplyContinueError(ev->Get()->Status, GroupIssues(ev->Get()->Issues, "Failed to fetch database info"));
7074
return;

0 commit comments

Comments
 (0)