Skip to content

Commit e21f1de

Browse files
doroolegOleg Doronin
and
Oleg Doronin
authored
Merge q ydb stable 24-3 (#9824)
Co-authored-by: Oleg Doronin <[email protected]>
1 parent 3338d2f commit e21f1de

34 files changed

+670
-79
lines changed

ydb/core/external_sources/s3/ut/s3_aws_credentials_ut.cpp

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ Y_UNIT_TEST_SUITE(S3AwsCredentials) {
6161
AWS_ACCESS_KEY_ID_SECRET_NAME="id",
6262
AWS_SECRET_ACCESS_KEY_SECRET_NAME="key",
6363
AWS_REGION="ru-central-1"
64-
);)",
64+
);
65+
GRANT ALL ON `{external_source}` TO `root1@builtin`;
66+
)",
6567
"external_source"_a = externalDataSourceName,
6668
"location"_a = "localhost:" + GetExternalPort("minio", "9000") + "/datalake/"
6769
);
@@ -125,6 +127,64 @@ Y_UNIT_TEST_SUITE(S3AwsCredentials) {
125127
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser(0).GetUtf8(), "2");
126128
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser(1).GetUtf8(), "hello world");
127129
}
130+
131+
{
132+
auto db = kikimr->GetQueryClient(NYdb::NQuery::TClientSettings().AuthToken("root1@builtin"));
133+
{
134+
auto scriptExecutionOperation = db.ExecuteScript(fmt::format(R"(
135+
SELECT * FROM `{external_source}`.`/a/` WITH (
136+
format="json_each_row",
137+
schema(
138+
key Utf8 NOT NULL,
139+
value Utf8 NOT NULL
140+
)
141+
)
142+
)", "external_source"_a = externalDataSourceName)).ExtractValueSync();
143+
UNIT_ASSERT_VALUES_EQUAL_C(scriptExecutionOperation.Status().GetStatus(), EStatus::SUCCESS, scriptExecutionOperation.Status().GetIssues().ToString());
144+
UNIT_ASSERT(scriptExecutionOperation.Metadata().ExecutionId);
145+
146+
NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr->GetDriver());
147+
UNIT_ASSERT_EQUAL_C(readyOp.Metadata().ExecStatus, EExecStatus::Failed, readyOp.Status().GetIssues().ToString());
148+
UNIT_ASSERT_STRING_CONTAINS_C(readyOp.Status().GetIssues().ToString(), "secret with name 'id' not found", readyOp.Status().GetIssues().ToString());
149+
}
150+
{
151+
const TString query = R"(
152+
CREATE OBJECT `id:root1@builtin` (TYPE SECRET_ACCESS);
153+
CREATE OBJECT `key:root1@builtin` (TYPE SECRET_ACCESS);
154+
)";
155+
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
156+
UNIT_ASSERT_C(result.GetStatus() == NYdb::EStatus::SUCCESS, result.GetIssues().ToString());
157+
}
158+
{
159+
auto scriptExecutionOperation = db.ExecuteScript(fmt::format(R"(
160+
SELECT * FROM `{external_source}`.`/a/` WITH (
161+
format="json_each_row",
162+
schema(
163+
key Utf8 NOT NULL,
164+
value Utf8 NOT NULL
165+
)
166+
)
167+
)", "external_source"_a = externalDataSourceName)).ExtractValueSync();
168+
UNIT_ASSERT_VALUES_EQUAL_C(scriptExecutionOperation.Status().GetStatus(), EStatus::SUCCESS, scriptExecutionOperation.Status().GetIssues().ToString());
169+
UNIT_ASSERT(scriptExecutionOperation.Metadata().ExecutionId);
170+
171+
NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), kikimr->GetDriver());
172+
UNIT_ASSERT_EQUAL_C(readyOp.Metadata().ExecStatus, EExecStatus::Completed, readyOp.Status().GetIssues().ToString());
173+
TFetchScriptResultsResult results = db.FetchScriptResults(scriptExecutionOperation.Id(), 0).ExtractValueSync();
174+
UNIT_ASSERT_C(results.IsSuccess(), results.GetIssues().ToString());
175+
176+
TResultSetParser resultSet(results.ExtractResultSet());
177+
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnsCount(), 2);
178+
UNIT_ASSERT_VALUES_EQUAL(resultSet.RowsCount(), 2);
179+
UNIT_ASSERT(resultSet.TryNextRow());
180+
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser(0).GetUtf8(), "1");
181+
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser(1).GetUtf8(), "trololo");
182+
UNIT_ASSERT(resultSet.TryNextRow());
183+
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser(0).GetUtf8(), "2");
184+
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnParser(1).GetUtf8(), "hello world");
185+
}
186+
}
187+
128188
}
129189
}
130190

ydb/core/kqp/federated_query/kqp_federated_query_actors.cpp

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,31 @@ class TDescribeSecretsActor: public NActors::TActorBootstrapped<TDescribeSecrets
2020
secretValues.reserve(SecretIds.size());
2121
for (const auto& secretId: SecretIds) {
2222
TString secretValue;
23-
const bool isFound = snapshot->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(secretId), secretValue);
24-
if (!isFound) {
25-
if (!AskSent) {
26-
AskSent = true;
27-
Send(NMetadata::NProvider::MakeServiceId(SelfId().NodeId()), new NMetadata::NProvider::TEvAskSnapshot(GetSecretsSnapshotParser()));
28-
} else {
29-
CompleteAndPassAway(TEvDescribeSecretsResponse::TDescription(Ydb::StatusIds::BAD_REQUEST, { NYql::TIssue("secret with name '" + secretId.GetSecretId() + "' not found") }));
30-
}
23+
bool isFound = snapshot->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(secretId), secretValue);
24+
if (isFound) {
25+
secretValues.push_back(secretValue);
26+
continue;
27+
}
28+
29+
auto secretIds = snapshot->GetSecretIds(UserToken, secretId.GetSecretId());
30+
if (secretIds.size() > 1) {
31+
CompleteAndPassAway(TEvDescribeSecretsResponse::TDescription(Ydb::StatusIds::BAD_REQUEST, { NYql::TIssue("several secrets with name '" + secretId.GetSecretId() + "' were found") }));
3132
return;
3233
}
33-
secretValues.push_back(secretValue);
34+
35+
isFound = !secretIds.empty() && snapshot->GetSecretValue(NMetadata::NSecret::TSecretIdOrValue::BuildAsId(secretIds[0]), secretValue);
36+
if (isFound) {
37+
secretValues.push_back(secretValue);
38+
continue;
39+
}
40+
41+
if (!AskSent) {
42+
AskSent = true;
43+
Send(NMetadata::NProvider::MakeServiceId(SelfId().NodeId()), new NMetadata::NProvider::TEvAskSnapshot(GetSecretsSnapshotParser()));
44+
} else {
45+
CompleteAndPassAway(TEvDescribeSecretsResponse::TDescription(Ydb::StatusIds::BAD_REQUEST, { NYql::TIssue("secret with name '" + secretId.GetSecretId() + "' not found") }));
46+
}
47+
return;
3448
}
3549

3650
CompleteAndPassAway(TEvDescribeSecretsResponse::TDescription(secretValues));
@@ -49,7 +63,8 @@ class TDescribeSecretsActor: public NActors::TActorBootstrapped<TDescribeSecrets
4963

5064
public:
5165
TDescribeSecretsActor(const TString& ownerUserId, const std::vector<TString>& secretIds, NThreading::TPromise<TEvDescribeSecretsResponse::TDescription> promise)
52-
: SecretIds(CreateSecretIds(ownerUserId, secretIds))
66+
: UserToken(NACLib::TUserToken{ownerUserId, TVector<NACLib::TSID>{}})
67+
, SecretIds(CreateSecretIds(ownerUserId, secretIds))
5368
, Promise(promise)
5469
{}
5570

@@ -74,6 +89,7 @@ class TDescribeSecretsActor: public NActors::TActorBootstrapped<TDescribeSecrets
7489
}
7590

7691
private:
92+
std::optional<NACLib::TUserToken> UserToken;
7793
const std::vector<NMetadata::NSecret::TSecretId> SecretIds;
7894
NThreading::TPromise<TEvDescribeSecretsResponse::TDescription> Promise;
7995
bool AskSent = false;

ydb/core/kqp/proxy_service/kqp_proxy_service_impl.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -420,12 +420,12 @@ class TLocalSessionsRegistry {
420420

421421
class TResourcePoolsCache {
422422
struct TClassifierInfo {
423-
const TString Membername;
423+
const TString MemberName;
424424
const TString PoolId;
425425
const i64 Rank;
426426

427427
TClassifierInfo(const NResourcePool::TClassifierSettings& classifierSettings)
428-
: Membername(classifierSettings.Membername)
428+
: MemberName(classifierSettings.MemberName)
429429
, PoolId(classifierSettings.ResourcePool)
430430
, Rank(classifierSettings.Rank)
431431
{}
@@ -593,7 +593,7 @@ class TResourcePoolsCache {
593593
TString poolId = "";
594594
i64 rank = -1;
595595
for (const auto& [_, classifier] : databaseInfo.RankToClassifierInfo) {
596-
if (classifier.Membername != userSID) {
596+
if (classifier.MemberName != userSID) {
597597
continue;
598598
}
599599

ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6611,7 +6611,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
66116611
checkDisabled(R"(
66126612
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
66136613
SET (RANK = 1, RESOURCE_POOL = "test"),
6614-
RESET (MEMBERNAME);
6614+
RESET (MEMBER_NAME);
66156615
)");
66166616

66176617
// DROP RESOURCE POOL CLASSIFIER
@@ -6645,7 +6645,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
66456645
const auto& alterSql = R"(
66466646
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
66476647
SET (RANK = 1, RESOURCE_POOL = "test"),
6648-
RESET (MEMBERNAME);
6648+
RESET (MEMBER_NAME);
66496649
)";
66506650

66516651
const auto& dropSql = "DROP RESOURCE POOL CLASSIFIER MyResourcePoolClassifier;";
@@ -6730,7 +6730,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
67306730
result = session.ExecuteSchemeQuery(TStringBuilder() << R"(
67316731
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
67326732
RESOURCE_POOL="test",
6733-
MEMBERNAME=")" << BUILTIN_ACL_METADATA << R"("
6733+
MEMBER_NAME=")" << BUILTIN_ACL_METADATA << R"("
67346734
);)").GetValueSync();
67356735
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
67366736
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), TStringBuilder() << "Invalid resource pool classifier configuration, cannot create classifier for system user " << BUILTIN_ACL_METADATA);
@@ -6776,7 +6776,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
67766776
result = session.ExecuteSchemeQuery(R"(
67776777
CREATE RESOURCE POOL CLASSIFIER ClassifierRankAuto WITH (
67786778
RESOURCE_POOL="test_pool",
6779-
MEMBERNAME="test@user"
6779+
MEMBER_NAME="test@user"
67806780
);)").GetValueSync();
67816781
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
67826782
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "The rank could not be set automatically, the maximum rank of the resource pool classifier is too high: 9223372036854775807");
@@ -6824,21 +6824,21 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
68246824
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
68256825
RANK=20,
68266826
RESOURCE_POOL="test_pool",
6827-
MEMBERNAME="test@user"
6827+
MEMBER_NAME="test@user"
68286828
);)";
68296829
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
68306830
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6831-
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
6831+
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"member_name\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
68326832

68336833
// Auto rank
68346834
query = R"(
68356835
CREATE RESOURCE POOL CLASSIFIER AnotherResourcePoolClassifier WITH (
68366836
RESOURCE_POOL="test_pool",
6837-
MEMBERNAME="another@user"
6837+
MEMBER_NAME="another@user"
68386838
);)";
68396839
result = session.ExecuteSchemeQuery(query).GetValueSync();
68406840
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6841-
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":1020,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{\"membername\":\"another@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
6841+
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"member_name\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":1020,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{\"member_name\":\"another@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
68426842
}
68436843

68446844
Y_UNIT_TEST(DoubleCreateResourcePoolClassifier) {
@@ -6901,11 +6901,11 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
69016901
{
69026902
auto query = R"(
69036903
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6904-
SET (MEMBERNAME = "test@user")
6904+
SET (MEMBER_NAME = "test@user")
69056905
)";
69066906
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
69076907
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6908-
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
6908+
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"member_name\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
69096909
}
69106910

69116911
// Create another pool
@@ -6917,18 +6917,18 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
69176917
);)";
69186918
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
69196919
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6920-
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":42,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
6920+
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"member_name\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":42,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
69216921
}
69226922

69236923
// Test reset
69246924
{
69256925
auto query = R"(
69266926
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6927-
RESET (RANK, MEMBERNAME);
6927+
RESET (RANK, MEMBER_NAME);
69286928
)";
69296929
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
69306930
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6931-
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":1042,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":42,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
6931+
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":1042,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"member_name\":\"\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":42,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
69326932
}
69336933
}
69346934

@@ -6946,7 +6946,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
69466946
auto query = R"(
69476947
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
69486948
SET (RESOURCE_POOL = "test", RANK = 100),
6949-
RESET (MEMBERNAME);
6949+
RESET (MEMBER_NAME);
69506950
)";
69516951
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
69526952
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());

ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
284284
);
285285
CREATE RESOURCE POOL CLASSIFIER MyPoolClassifier WITH (
286286
RESOURCE_POOL="MyPool",
287-
MEMBERNAME=")" << userSID << R"("
287+
MEMBER_NAME=")" << userSID << R"("
288288
);
289289
GRANT ALL ON `/Root` TO `)" << userSID << R"(`;
290290
)";

ydb/core/kqp/workload_service/ut/kqp_workload_service_ut.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,7 @@ Y_UNIT_TEST_SUITE(ResourcePoolClassifiersDdl) {
623623
);
624624
CREATE RESOURCE POOL CLASSIFIER )" << classifierId << R"( WITH (
625625
RESOURCE_POOL=")" << poolId << R"(",
626-
MEMBERNAME=")" << userSID << R"("
626+
MEMBER_NAME=")" << userSID << R"("
627627
);
628628
)");
629629
}
@@ -726,7 +726,7 @@ Y_UNIT_TEST_SUITE(ResourcePoolClassifiersDdl) {
726726
CREATE RESOURCE POOL CLASSIFIER )" << classifierId << R"( WITH (
727727
RANK="1",
728728
RESOURCE_POOL=")" << NResourcePool::DEFAULT_POOL_ID << R"(",
729-
MEMBERNAME=")" << settings.UserSID_ << R"("
729+
MEMBER_NAME=")" << settings.UserSID_ << R"("
730730
);
731731
)");
732732

@@ -766,12 +766,12 @@ Y_UNIT_TEST_SUITE(ResourcePoolClassifiersDdl) {
766766
);
767767
CREATE RESOURCE POOL CLASSIFIER first_classifier WITH (
768768
RESOURCE_POOL=")" << poolId << R"(",
769-
MEMBERNAME=")" << firstSID << R"(",
769+
MEMBER_NAME=")" << firstSID << R"(",
770770
RANK=1
771771
);
772772
CREATE RESOURCE POOL CLASSIFIER second_classifier WITH (
773773
RESOURCE_POOL=")" << NResourcePool::DEFAULT_POOL_ID << R"(",
774-
MEMBERNAME=")" << secondSID << R"(",
774+
MEMBER_NAME=")" << secondSID << R"(",
775775
RANK=2
776776
);
777777
)");

ydb/core/resource_pools/resource_pool_classifier_settings.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ std::unordered_map<TString, TClassifierSettings::TProperty> TClassifierSettings:
3434
std::unordered_map<TString, TProperty> properties = {
3535
{"rank", &Rank},
3636
{"resource_pool", &ResourcePool},
37-
{"membername", &Membername}
37+
{"member_name", &MemberName}
3838
};
3939
return properties;
4040
}
4141

4242
void TClassifierSettings::Validate() const {
43-
NACLib::TUserToken token(Membername, TVector<NACLib::TSID>{});
43+
NACLib::TUserToken token(MemberName, TVector<NACLib::TSID>{});
4444
if (token.IsSystemUser()) {
45-
throw yexception() << "Invalid resource pool classifier configuration, cannot create classifier for system user " << Membername;
45+
throw yexception() << "Invalid resource pool classifier configuration, cannot create classifier for system user " << MemberName;
4646
}
4747
}
4848

ydb/core/resource_pools/resource_pool_classifier_settings.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ struct TClassifierSettings : public TSettingsBase {
3131

3232
i64 Rank = -1; // -1 = max rank + CLASSIFIER_RANK_OFFSET
3333
TString ResourcePool = DEFAULT_POOL_ID;
34-
TString Membername = "";
34+
TString MemberName = "";
3535
};
3636

3737
} // namespace NKikimr::NResourcePool

0 commit comments

Comments
 (0)