@@ -6550,8 +6550,8 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6550
6550
// ALTER RESOURCE POOL CLASSIFIER
6551
6551
checkDisabled(R"(
6552
6552
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6553
- SET (RANK = 1, MEMBERNAME = "test@user "),
6554
- RESET (RESOURCE_POOL );
6553
+ SET (RANK = 1, RESOURCE_POOL = "test"),
6554
+ RESET (MEMBERNAME );
6555
6555
)");
6556
6556
6557
6557
// DROP RESOURCE POOL CLASSIFIER
@@ -6584,8 +6584,8 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6584
6584
6585
6585
const auto& alterSql = R"(
6586
6586
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6587
- SET (RANK = 1, MEMBERNAME = "test@user "),
6588
- RESET (RESOURCE_POOL );
6587
+ SET (RANK = 1, RESOURCE_POOL = "test"),
6588
+ RESET (MEMBERNAME );
6589
6589
)";
6590
6590
6591
6591
const auto& dropSql = "DROP RESOURCE POOL CLASSIFIER MyResourcePoolClassifier;";
@@ -6624,6 +6624,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6624
6624
6625
6625
auto result = session.ExecuteSchemeQuery(R"(
6626
6626
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6627
+ RESOURCE_POOL="test",
6627
6628
ANOTHER_PROPERTY=20
6628
6629
);)").GetValueSync();
6629
6630
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
@@ -6639,10 +6640,40 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6639
6640
6640
6641
result = session.ExecuteSchemeQuery(R"(
6641
6642
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6643
+ RESOURCE_POOL="test",
6642
6644
RANK="StringValue"
6643
6645
);)").GetValueSync();
6644
6646
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
6645
6647
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Failed to parse property rank:");
6648
+
6649
+ result = session.ExecuteSchemeQuery(R"(
6650
+ CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6651
+ RANK="0"
6652
+ );)").GetValueSync();
6653
+ UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
6654
+ UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Missing required property resource_pool");
6655
+
6656
+ result = session.ExecuteSchemeQuery(R"(
6657
+ ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6658
+ RESET (RESOURCE_POOL);
6659
+ )").GetValueSync();
6660
+ UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
6661
+ UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Cannot reset required property resource_pool");
6662
+
6663
+ result = session.ExecuteSchemeQuery(R"(
6664
+ CREATE RESOURCE POOL CLASSIFIER `MyResource/PoolClassifier` WITH (
6665
+ RESOURCE_POOL="test"
6666
+ );)").GetValueSync();
6667
+ UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
6668
+ UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Symbol '/' is not allowed in the resource pool classifier name 'MyResource/PoolClassifier'");
6669
+
6670
+ result = session.ExecuteSchemeQuery(TStringBuilder() << R"(
6671
+ CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6672
+ RESOURCE_POOL="test",
6673
+ MEMBERNAME=")" << BUILTIN_ACL_METADATA << R"("
6674
+ );)").GetValueSync();
6675
+ UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
6676
+ UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), TStringBuilder() << "Invalid resource pool classifier configuration, cannot create classifier for system user " << BUILTIN_ACL_METADATA);
6646
6677
}
6647
6678
6648
6679
Y_UNIT_TEST(ResourcePoolClassifiersRankValidation) {
@@ -6659,13 +6690,15 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6659
6690
// Create with sample rank
6660
6691
auto result = session.ExecuteSchemeQuery(R"(
6661
6692
CREATE RESOURCE POOL CLASSIFIER ClassifierRank42 WITH (
6693
+ RESOURCE_POOL="test_pool",
6662
6694
RANK=42
6663
6695
);)").GetValueSync();
6664
6696
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToOneLineString());
6665
6697
6666
6698
// Try to create with same rank
6667
6699
result = session.ExecuteSchemeQuery(R"(
6668
6700
CREATE RESOURCE POOL CLASSIFIER AnotherClassifierRank42 WITH (
6701
+ RESOURCE_POOL="test_pool",
6669
6702
RANK=42
6670
6703
);)").GetValueSync();
6671
6704
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
@@ -6674,13 +6707,15 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6674
6707
// Create with high rank
6675
6708
result = session.ExecuteSchemeQuery(R"(
6676
6709
CREATE RESOURCE POOL CLASSIFIER `ClassifierRank2^63` WITH (
6710
+ RESOURCE_POOL="test_pool",
6677
6711
RANK=9223372036854775807
6678
6712
);)").GetValueSync();
6679
6713
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToOneLineString());
6680
6714
6681
6715
// Try to create with auto rank
6682
6716
result = session.ExecuteSchemeQuery(R"(
6683
6717
CREATE RESOURCE POOL CLASSIFIER ClassifierRankAuto WITH (
6718
+ RESOURCE_POOL="test_pool",
6684
6719
MEMBERNAME="test@user"
6685
6720
);)").GetValueSync();
6686
6721
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
@@ -6738,11 +6773,12 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6738
6773
// Auto rank
6739
6774
query = R"(
6740
6775
CREATE RESOURCE POOL CLASSIFIER AnotherResourcePoolClassifier WITH (
6776
+ RESOURCE_POOL="test_pool",
6741
6777
MEMBERNAME="another@user"
6742
6778
);)";
6743
6779
result = session.ExecuteSchemeQuery(query).GetValueSync();
6744
6780
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6745
- 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\"},\"database\":\"\\/Root\"}]}");
6781
+ 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\"}]}");
6746
6782
}
6747
6783
6748
6784
Y_UNIT_TEST(DoubleCreateResourcePoolClassifier) {
@@ -6759,6 +6795,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6759
6795
{
6760
6796
auto query = R"(
6761
6797
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6798
+ RESOURCE_POOL="test_pool",
6762
6799
RANK=20
6763
6800
);)";
6764
6801
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
@@ -6768,6 +6805,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6768
6805
{
6769
6806
auto query = R"(
6770
6807
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6808
+ RESOURCE_POOL="test_pool",
6771
6809
RANK=1
6772
6810
);)";
6773
6811
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
@@ -6814,22 +6852,23 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6814
6852
{
6815
6853
auto query = R"(
6816
6854
CREATE RESOURCE POOL CLASSIFIER AnotherResourcePoolClassifier WITH (
6855
+ RESOURCE_POOL="test_pool",
6817
6856
RANK=42
6818
6857
);)";
6819
6858
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
6820
6859
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6821
- 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\":{},\"database\":\"\\/Root\"}]}");
6860
+ 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\"}]}");
6822
6861
}
6823
6862
6824
6863
// Test reset
6825
6864
{
6826
6865
auto query = R"(
6827
6866
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6828
- RESET (RANK, RESOURCE_POOL );
6867
+ RESET (RANK, MEMBERNAME );
6829
6868
)";
6830
6869
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
6831
6870
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6832
- UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":1042,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"test@user \",\"resource_pool\":\"default \"},\"database\":\"\\/Root\"},{\"rank\":42,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{},\"database\":\"\\/Root\"}]}");
6871
+ 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\"}]}");
6833
6872
}
6834
6873
}
6835
6874
@@ -6846,8 +6885,8 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6846
6885
6847
6886
auto query = R"(
6848
6887
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6849
- SET (MEMBERNAME = "test@user ", RANK = 100),
6850
- RESET (RESOURCE_POOL );
6888
+ SET (RESOURCE_POOL = "test", RANK = 100),
6889
+ RESET (MEMBERNAME );
6851
6890
)";
6852
6891
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
6853
6892
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
@@ -6868,11 +6907,12 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6868
6907
{
6869
6908
auto query = R"(
6870
6909
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6910
+ RESOURCE_POOL="test_pool",
6871
6911
RANK=20
6872
6912
);)";
6873
6913
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
6874
6914
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6875
- UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{},\"database\":\"\\/Root\"}]}");
6915
+ UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"resource_pool\":\"test_pool\" },\"database\":\"\\/Root\"}]}");
6876
6916
}
6877
6917
6878
6918
{
0 commit comments