1
1
#include < ydb/core/kqp/ut/common/kqp_ut_common.h>
2
2
#include < ydb/core/kqp/ut/common/columnshard.h>
3
+ #include < ydb/core/tx/columnshard/hooks/testing/controller.h>
3
4
#include < ydb/core/formats/arrow/arrow_helpers.h>
4
5
#include < ydb/core/tx/tx_proxy/proxy.h>
5
6
#include < ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
@@ -5258,6 +5259,52 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
5258
5259
}
5259
5260
}
5260
5261
5262
+ Y_UNIT_TEST (InvalidColumnInTieringRule) {
5263
+ auto csController = NYDBTest::TControllers::RegisterCSControllerGuard<NYDBTest::NColumnShard::TController>();
5264
+
5265
+ TKikimrSettings runnerSettings;
5266
+ runnerSettings.WithSampleTables = false ;
5267
+ TTestHelper testHelper (runnerSettings);
5268
+ Tests::NCommon::TLoggerInit (testHelper.GetKikimr ()).Initialize ();
5269
+
5270
+ const TString tableName = " /Root/ColumnTableTest" ;
5271
+
5272
+ TVector<TTestHelper::TColumnSchema> schema = {
5273
+ TTestHelper::TColumnSchema ().SetName (" id" ).SetType (NScheme::NTypeIds::Int32).SetNullable (false ),
5274
+ TTestHelper::TColumnSchema ().SetName (" id_second" ).SetType (NScheme::NTypeIds::Int32).SetNullable (false ),
5275
+ TTestHelper::TColumnSchema ().SetName (" level" ).SetType (NScheme::NTypeIds::Int32),
5276
+ TTestHelper::TColumnSchema ().SetName (" created_at" ).SetType (NScheme::NTypeIds::Timestamp).SetNullable (false )
5277
+ };
5278
+
5279
+ TTestHelper::TColumnTable testTable;
5280
+ testTable.SetName (tableName).SetPrimaryKey ({" id" , " id_second" }).SetSharding ({" id" }).SetSchema (schema).SetTTL (" created_at" , " Interval(\" PT1H\" )" );
5281
+ testHelper.CreateTable (testTable);
5282
+ testHelper.CreateTier (" tier1" );
5283
+
5284
+ {
5285
+ TTestHelper::TUpdatesBuilder tableInserter (testTable.GetArrowSchema (schema));
5286
+ tableInserter.AddRow ().Add (1 ).Add (1 ).Add (7 ).Add ((TInstant::Now () - TDuration::Days (30 )).MilliSeconds ());
5287
+ tableInserter.AddRow ().Add (1 ).Add (2 ).Add (7 ).Add ((TInstant::Now () - TDuration::Days (30 )).MilliSeconds ());
5288
+ testHelper.BulkUpsert (testTable, tableInserter);
5289
+ }
5290
+
5291
+ while (csController->GetIndexations ().Val () == 0 ) {
5292
+ Cout << " Wait indexation..." << Endl;
5293
+ Sleep (TDuration::Seconds (2 ));
5294
+ }
5295
+
5296
+ // const auto ruleName = testHelper.CreateTieringRule("tier1", "created_att");
5297
+ const auto ruleName = testHelper.CreateTieringRule (" tier1" , " created_at" );
5298
+ testHelper.SetTiering (tableName, ruleName);
5299
+
5300
+ while (csController->GetTieringUpdates ().Val () == 0 ) {
5301
+ Cout << " Wait tiering..." << Endl;
5302
+ Sleep (TDuration::Seconds (2 ));
5303
+ }
5304
+
5305
+ testHelper.RebootTablets (tableName);
5306
+ }
5307
+
5261
5308
Y_UNIT_TEST (AddColumnWithTtl) {
5262
5309
TKikimrSettings runnerSettings;
5263
5310
runnerSettings.WithSampleTables = false ;
@@ -5290,7 +5337,6 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
5290
5337
UNIT_ASSERT_VALUES_EQUAL (description.GetTtlSettings ()->GetDateTypeColumn ().GetExpireAfter (), TDuration::Hours (1 ));
5291
5338
}
5292
5339
{
5293
- schema.push_back (TTestHelper::TColumnSchema ().SetName (" new_column" ).SetType (NScheme::NTypeIds::Uint64));
5294
5340
auto alterQuery = TStringBuilder () << " ALTER TABLE `" << testTable.GetName () << " ` ADD COLUMN new_column Uint64;" ;
5295
5341
auto alterResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQuery).GetValueSync ();
5296
5342
UNIT_ASSERT_VALUES_EQUAL_C (alterResult.GetStatus (), EStatus::SUCCESS, alterResult.GetIssues ().ToString ());
@@ -5305,12 +5351,7 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
5305
5351
UNIT_ASSERT_VALUES_EQUAL (columns.size (), 5 );
5306
5352
UNIT_ASSERT_VALUES_EQUAL (description.GetTtlSettings ()->GetDateTypeColumn ().GetExpireAfter (), TDuration::Hours (1 ));
5307
5353
}
5308
- {
5309
- schema.push_back (TTestHelper::TColumnSchema ().SetName (" new_column" ).SetType (NScheme::NTypeIds::Uint64));
5310
- auto alterQuery = TStringBuilder () << " ALTER TABLE `" << testTable.GetName () << R"( ` SET(TIERING = 'tiering1');)" ;
5311
- auto alterResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQuery).GetValueSync ();
5312
- UNIT_ASSERT_VALUES_EQUAL_C (alterResult.GetStatus (), EStatus::SUCCESS, alterResult.GetIssues ().ToString ());
5313
- }
5354
+ testHelper.SetTiering (" /Root/ColumnTableTest" , " tiering1" );
5314
5355
{
5315
5356
auto settings = TDescribeTableSettings ().WithTableStatistics (true );
5316
5357
auto describeResult = testHelper.GetSession ().DescribeTable (" /Root/ColumnTableTest" , settings).GetValueSync ();
@@ -5322,7 +5363,6 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
5322
5363
UNIT_ASSERT_VALUES_EQUAL (description.GetTtlSettings ()->GetDateTypeColumn ().GetExpireAfter (), TDuration::Hours (1 ));
5323
5364
}
5324
5365
{
5325
- schema.push_back (TTestHelper::TColumnSchema ().SetName (" new_column" ).SetType (NScheme::NTypeIds::Uint64));
5326
5366
auto alterQuery = TStringBuilder () << " ALTER TABLE `" << testTable.GetName () << R"( ` RESET (TTL);)" ;
5327
5367
auto alterResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQuery).GetValueSync ();
5328
5368
UNIT_ASSERT_VALUES_EQUAL_C (alterResult.GetStatus (), EStatus::SUCCESS, alterResult.GetIssues ().ToString ());
@@ -5337,12 +5377,7 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
5337
5377
UNIT_ASSERT_VALUES_EQUAL (*description.GetTiering (), " tiering1" );
5338
5378
UNIT_ASSERT (!description.GetTtlSettings ());
5339
5379
}
5340
- {
5341
- schema.push_back (TTestHelper::TColumnSchema ().SetName (" new_column" ).SetType (NScheme::NTypeIds::Uint64));
5342
- auto alterQuery = TStringBuilder () << " ALTER TABLE `" << testTable.GetName () << R"( ` RESET (TIERING);)" ;
5343
- auto alterResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQuery).GetValueSync ();
5344
- UNIT_ASSERT_VALUES_EQUAL_C (alterResult.GetStatus (), EStatus::SUCCESS, alterResult.GetIssues ().ToString ());
5345
- }
5380
+ testHelper.ResetTiering (" /Root/ColumnTableTest" );
5346
5381
{
5347
5382
auto settings = TDescribeTableSettings ().WithTableStatistics (true );
5348
5383
auto describeResult = testHelper.GetSession ().DescribeTable (" /Root/ColumnTableTest" , settings).GetValueSync ();
@@ -5416,7 +5451,7 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
5416
5451
TTestHelper::TColumnSchema ().SetName (" resource_id" ).SetType (NScheme::NTypeIds::Utf8),
5417
5452
TTestHelper::TColumnSchema ().SetName (" level" ).SetType (NScheme::NTypeIds::Int32)
5418
5453
};
5419
-
5454
+
5420
5455
Tests::NCommon::TLoggerInit (testHelper.GetKikimr ()).Initialize ();
5421
5456
TTestHelper::TColumnTable testTable;
5422
5457
@@ -5581,8 +5616,8 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
5581
5616
testHelper.ReadData (" SELECT resource_id FROM `/Root/TableStoreTest/ColumnTableTest` WHERE id=3" , " [[[\" test_res_3\" ]]]" );
5582
5617
testHelper.ReadData (" SELECT new_column FROM `/Root/TableStoreTest/ColumnTableTest`" , " [[#];[#];[[200u]]]" );
5583
5618
5584
- // testHelper.RebootTablets(testTable.GetName());
5585
- // testHelper.ReadData("SELECT new_column FROM `/Root/TableStoreTest/ColumnTableTest`", "[[#];[#];[[200u]]]");
5619
+ testHelper.RebootTablets (testTable.GetName ());
5620
+ testHelper.ReadData (" SELECT new_column FROM `/Root/TableStoreTest/ColumnTableTest`" , " [[#];[#];[[200u]]]" );
5586
5621
}
5587
5622
5588
5623
Y_UNIT_TEST (AddColumnErrors) {
0 commit comments