@@ -6316,6 +6316,20 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6316
6316
);)" ).GetValueSync ();
6317
6317
UNIT_ASSERT_VALUES_EQUAL (result.GetStatus (), EStatus::GENERIC_ERROR);
6318
6318
UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " Failed to parse property concurrent_query_limit:" );
6319
+
6320
+ result = session.ExecuteSchemeQuery (TStringBuilder () << R"(
6321
+ CREATE RESOURCE POOL MyResourcePool WITH (
6322
+ CONCURRENT_QUERY_LIMIT=)" << NResourcePool::POOL_MAX_CONCURRENT_QUERY_LIMIT + 1 << R"(
6323
+ );)" ).GetValueSync ();
6324
+ UNIT_ASSERT_VALUES_EQUAL (result.GetStatus (), EStatus::SCHEME_ERROR);
6325
+ UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), TStringBuilder () << " Invalid resource pool configuration, concurrent_query_limit is " << NResourcePool::POOL_MAX_CONCURRENT_QUERY_LIMIT + 1 << " , that exceeds limit in " << NResourcePool::POOL_MAX_CONCURRENT_QUERY_LIMIT);
6326
+
6327
+ result = session.ExecuteSchemeQuery (R"(
6328
+ CREATE RESOURCE POOL MyResourcePool WITH (
6329
+ QUEUE_SIZE=1
6330
+ );)" ).GetValueSync ();
6331
+ UNIT_ASSERT_VALUES_EQUAL (result.GetStatus (), EStatus::SCHEME_ERROR);
6332
+ UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " Invalid resource pool configuration, queue_size unsupported without concurrent_query_limit or database_load_cpu_threshold" );
6319
6333
}
6320
6334
6321
6335
Y_UNIT_TEST (CreateResourcePool) {
@@ -6536,8 +6550,8 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6536
6550
// ALTER RESOURCE POOL CLASSIFIER
6537
6551
checkDisabled (R"(
6538
6552
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6539
- SET (RANK = 1, MEMBERNAME = "test@user "),
6540
- RESET (RESOURCE_POOL );
6553
+ SET (RANK = 1, RESOURCE_POOL = "test"),
6554
+ RESET (MEMBERNAME );
6541
6555
)" );
6542
6556
6543
6557
// DROP RESOURCE POOL CLASSIFIER
@@ -6570,8 +6584,8 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6570
6584
6571
6585
const auto & alterSql = R"(
6572
6586
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6573
- SET (RANK = 1, MEMBERNAME = "test@user "),
6574
- RESET (RESOURCE_POOL );
6587
+ SET (RANK = 1, RESOURCE_POOL = "test"),
6588
+ RESET (MEMBERNAME );
6575
6589
)" ;
6576
6590
6577
6591
const auto & dropSql = " DROP RESOURCE POOL CLASSIFIER MyResourcePoolClassifier;" ;
@@ -6610,6 +6624,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6610
6624
6611
6625
auto result = session.ExecuteSchemeQuery (R"(
6612
6626
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6627
+ RESOURCE_POOL="test",
6613
6628
ANOTHER_PROPERTY=20
6614
6629
);)" ).GetValueSync ();
6615
6630
UNIT_ASSERT_VALUES_EQUAL (result.GetStatus (), EStatus::GENERIC_ERROR);
@@ -6625,10 +6640,40 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6625
6640
6626
6641
result = session.ExecuteSchemeQuery (R"(
6627
6642
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6643
+ RESOURCE_POOL="test",
6628
6644
RANK="StringValue"
6629
6645
);)" ).GetValueSync ();
6630
6646
UNIT_ASSERT_VALUES_EQUAL (result.GetStatus (), EStatus::GENERIC_ERROR);
6631
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);
6632
6677
}
6633
6678
6634
6679
Y_UNIT_TEST (ResourcePoolClassifiersRankValidation) {
@@ -6645,13 +6690,15 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6645
6690
// Create with sample rank
6646
6691
auto result = session.ExecuteSchemeQuery (R"(
6647
6692
CREATE RESOURCE POOL CLASSIFIER ClassifierRank42 WITH (
6693
+ RESOURCE_POOL="test_pool",
6648
6694
RANK=42
6649
6695
);)" ).GetValueSync ();
6650
6696
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToOneLineString ());
6651
6697
6652
6698
// Try to create with same rank
6653
6699
result = session.ExecuteSchemeQuery (R"(
6654
6700
CREATE RESOURCE POOL CLASSIFIER AnotherClassifierRank42 WITH (
6701
+ RESOURCE_POOL="test_pool",
6655
6702
RANK=42
6656
6703
);)" ).GetValueSync ();
6657
6704
UNIT_ASSERT_VALUES_EQUAL (result.GetStatus (), EStatus::GENERIC_ERROR);
@@ -6660,13 +6707,15 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6660
6707
// Create with high rank
6661
6708
result = session.ExecuteSchemeQuery (R"(
6662
6709
CREATE RESOURCE POOL CLASSIFIER `ClassifierRank2^63` WITH (
6710
+ RESOURCE_POOL="test_pool",
6663
6711
RANK=9223372036854775807
6664
6712
);)" ).GetValueSync ();
6665
6713
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToOneLineString ());
6666
6714
6667
6715
// Try to create with auto rank
6668
6716
result = session.ExecuteSchemeQuery (R"(
6669
6717
CREATE RESOURCE POOL CLASSIFIER ClassifierRankAuto WITH (
6718
+ RESOURCE_POOL="test_pool",
6670
6719
MEMBERNAME="test@user"
6671
6720
);)" ).GetValueSync ();
6672
6721
UNIT_ASSERT_VALUES_EQUAL (result.GetStatus (), EStatus::GENERIC_ERROR);
@@ -6724,11 +6773,12 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6724
6773
// Auto rank
6725
6774
query = R"(
6726
6775
CREATE RESOURCE POOL CLASSIFIER AnotherResourcePoolClassifier WITH (
6776
+ RESOURCE_POOL="test_pool",
6727
6777
MEMBERNAME="another@user"
6728
6778
);)" ;
6729
6779
result = session.ExecuteSchemeQuery (query).GetValueSync ();
6730
6780
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToString ());
6731
- 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\" }]}" );
6732
6782
}
6733
6783
6734
6784
Y_UNIT_TEST (DoubleCreateResourcePoolClassifier) {
@@ -6745,6 +6795,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6745
6795
{
6746
6796
auto query = R"(
6747
6797
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6798
+ RESOURCE_POOL="test_pool",
6748
6799
RANK=20
6749
6800
);)" ;
6750
6801
auto result = session.ExecuteSchemeQuery (query).GetValueSync ();
@@ -6754,6 +6805,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6754
6805
{
6755
6806
auto query = R"(
6756
6807
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6808
+ RESOURCE_POOL="test_pool",
6757
6809
RANK=1
6758
6810
);)" ;
6759
6811
auto result = session.ExecuteSchemeQuery (query).GetValueSync ();
@@ -6800,22 +6852,23 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6800
6852
{
6801
6853
auto query = R"(
6802
6854
CREATE RESOURCE POOL CLASSIFIER AnotherResourcePoolClassifier WITH (
6855
+ RESOURCE_POOL="test_pool",
6803
6856
RANK=42
6804
6857
);)" ;
6805
6858
auto result = session.ExecuteSchemeQuery (query).GetValueSync ();
6806
6859
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToString ());
6807
- 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\" }]}" );
6808
6861
}
6809
6862
6810
6863
// Test reset
6811
6864
{
6812
6865
auto query = R"(
6813
6866
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6814
- RESET (RANK, RESOURCE_POOL );
6867
+ RESET (RANK, MEMBERNAME );
6815
6868
)" ;
6816
6869
auto result = session.ExecuteSchemeQuery (query).GetValueSync ();
6817
6870
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToString ());
6818
- 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\" }]}" );
6819
6872
}
6820
6873
}
6821
6874
@@ -6832,8 +6885,8 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6832
6885
6833
6886
auto query = R"(
6834
6887
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6835
- SET (MEMBERNAME = "test@user ", RANK = 100),
6836
- RESET (RESOURCE_POOL );
6888
+ SET (RESOURCE_POOL = "test", RANK = 100),
6889
+ RESET (MEMBERNAME );
6837
6890
)" ;
6838
6891
auto result = session.ExecuteSchemeQuery (query).GetValueSync ();
6839
6892
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::GENERIC_ERROR, result.GetIssues ().ToString ());
@@ -6854,11 +6907,12 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
6854
6907
{
6855
6908
auto query = R"(
6856
6909
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6910
+ RESOURCE_POOL="test_pool",
6857
6911
RANK=20
6858
6912
);)" ;
6859
6913
auto result = session.ExecuteSchemeQuery (query).GetValueSync ();
6860
6914
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToString ());
6861
- 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\" }]}" );
6862
6916
}
6863
6917
6864
6918
{
0 commit comments