@@ -8326,6 +8326,105 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
8326
8326
testHelper.CreateTable (testTable, EStatus::SCHEME_ERROR);
8327
8327
}
8328
8328
8329
+ Y_UNIT_TEST (DropColumnAfterScan) {
8330
+ using namespace NArrow ;
8331
+
8332
+ auto csController = NYDBTest::TControllers::RegisterCSControllerGuard<NOlap::TWaitCompactionController>();
8333
+ csController->DisableBackground (NYDBTest::ICSController::EBackground::Indexation);
8334
+
8335
+ TKikimrSettings runnerSettings;
8336
+ runnerSettings.WithSampleTables = false ;
8337
+ TTestHelper testHelper (runnerSettings);
8338
+
8339
+ TVector<TTestHelper::TColumnSchema> schema = {
8340
+ TTestHelper::TColumnSchema ().SetName (" id" ).SetType (NScheme::NTypeIds::Uint64).SetNullable (false )
8341
+ };
8342
+
8343
+ TTestHelper::TColumnTable testTable;
8344
+ testTable.SetName (" /Root/ColumnTableTest" ).SetPrimaryKey ({ " id" }).SetSchema (schema);
8345
+ testHelper.CreateTable (testTable);
8346
+
8347
+ TVector<NConstruction::IArrayBuilder::TPtr> dataBuilders;
8348
+ dataBuilders.push_back (
8349
+ NConstruction::TSimpleArrayConstructor<NConstruction::TIntSeqFiller<arrow::UInt64Type>>::BuildNotNullable (" id" , false ));
8350
+ auto batch = NConstruction::TRecordBatchConstructor (dataBuilders).BuildBatch (100 );
8351
+ testHelper.BulkUpsert (testTable, batch);
8352
+
8353
+ {
8354
+ auto alterQueryAdd = TStringBuilder ()
8355
+ << " ALTER TABLE `" << testTable.GetName () << " ` ADD COLUMN column" << schema.size () + 1 << " Uint64;" ;
8356
+ Cerr << alterQueryAdd << Endl;
8357
+ auto alterAddResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQueryAdd).GetValueSync ();
8358
+ UNIT_ASSERT_VALUES_EQUAL_C (alterAddResult.GetStatus (), EStatus::SUCCESS, alterAddResult.GetIssues ().ToString ());
8359
+
8360
+ testHelper.BulkUpsert (testTable, batch);
8361
+ testHelper.ReadData (" SELECT COUNT(*) FROM `/Root/ColumnTableTest`" , " [[100u]]" );
8362
+
8363
+ auto alterQueryDrop = TStringBuilder ()
8364
+ << " ALTER TABLE `" << testTable.GetName () << " ` DROP COLUMN column" << schema.size () + 1 << " ;" ;
8365
+ Cerr << alterQueryDrop << Endl;
8366
+ auto alterDropResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQueryDrop).GetValueSync ();
8367
+ UNIT_ASSERT_VALUES_EQUAL_C (alterDropResult.GetStatus (), EStatus::SUCCESS, alterDropResult.GetIssues ().ToString ());
8368
+ testHelper.ReadData (" SELECT COUNT(*) FROM `/Root/ColumnTableTest`" , " [[100u]]" );
8369
+ }
8370
+
8371
+ {
8372
+ auto alterQueryAdd = TStringBuilder ()
8373
+ << " ALTER TABLE `" << testTable.GetName () << " ` ADD COLUMN column" << schema.size () + 1 << " Uint64;" ;
8374
+ Cerr << alterQueryAdd << Endl;
8375
+ auto alterAddResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQueryAdd).GetValueSync ();
8376
+ UNIT_ASSERT_VALUES_EQUAL_C (alterAddResult.GetStatus (), EStatus::SUCCESS, alterAddResult.GetIssues ().ToString ());
8377
+
8378
+ testHelper.BulkUpsert (testTable, batch);
8379
+ testHelper.ReadData (" SELECT COUNT(*) FROM `/Root/ColumnTableTest`" , " [[100u]]" );
8380
+
8381
+ auto alterQueryDrop = TStringBuilder ()
8382
+ << " ALTER TABLE `" << testTable.GetName () << " ` DROP COLUMN column" << schema.size () + 1 << " ;" ;
8383
+ Cerr << alterQueryDrop << Endl;
8384
+ auto alterDropResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQueryDrop).GetValueSync ();
8385
+ UNIT_ASSERT_VALUES_EQUAL_C (alterDropResult.GetStatus (), EStatus::SUCCESS, alterDropResult.GetIssues ().ToString ());
8386
+ testHelper.ReadData (" SELECT COUNT(*) FROM `/Root/ColumnTableTest`" , " [[100u]]" );
8387
+ }
8388
+
8389
+ {
8390
+ auto alterQueryAdd = TStringBuilder ()
8391
+ << " ALTER TABLE `" << testTable.GetName () << " ` ADD COLUMN column" << schema.size () + 1 << " Uint64;" ;
8392
+ Cerr << alterQueryAdd << Endl;
8393
+ auto alterAddResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQueryAdd).GetValueSync ();
8394
+ UNIT_ASSERT_VALUES_EQUAL_C (alterAddResult.GetStatus (), EStatus::SUCCESS, alterAddResult.GetIssues ().ToString ());
8395
+
8396
+ testHelper.BulkUpsert (testTable, batch);
8397
+ testHelper.ReadData (" SELECT COUNT(*) FROM `/Root/ColumnTableTest`" , " [[100u]]" );
8398
+
8399
+ auto alterQueryDrop = TStringBuilder ()
8400
+ << " ALTER TABLE `" << testTable.GetName () << " ` DROP COLUMN column" << schema.size () + 1 << " ;" ;
8401
+ Cerr << alterQueryDrop << Endl;
8402
+ auto alterDropResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQueryDrop).GetValueSync ();
8403
+ UNIT_ASSERT_VALUES_EQUAL_C (alterDropResult.GetStatus (), EStatus::SUCCESS, alterDropResult.GetIssues ().ToString ());
8404
+ testHelper.ReadData (" SELECT COUNT(*) FROM `/Root/ColumnTableTest`" , " [[100u]]" );
8405
+ }
8406
+
8407
+ {
8408
+ auto alterQueryAdd = TStringBuilder ()
8409
+ << " ALTER TABLE `" << testTable.GetName () << " ` ADD COLUMN column" << schema.size () + 1 << " Uint64;" ;
8410
+ Cerr << alterQueryAdd << Endl;
8411
+ auto alterAddResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQueryAdd).GetValueSync ();
8412
+ UNIT_ASSERT_VALUES_EQUAL_C (alterAddResult.GetStatus (), EStatus::SUCCESS, alterAddResult.GetIssues ().ToString ());
8413
+
8414
+ testHelper.BulkUpsert (testTable, batch);
8415
+ testHelper.ReadData (" SELECT COUNT(*) FROM `/Root/ColumnTableTest`" , " [[100u]]" );
8416
+
8417
+ auto alterQueryDrop = TStringBuilder ()
8418
+ << " ALTER TABLE `" << testTable.GetName () << " ` DROP COLUMN column" << schema.size () + 1 << " ;" ;
8419
+ Cerr << alterQueryDrop << Endl;
8420
+ auto alterDropResult = testHelper.GetSession ().ExecuteSchemeQuery (alterQueryDrop).GetValueSync ();
8421
+ UNIT_ASSERT_VALUES_EQUAL_C (alterDropResult.GetStatus (), EStatus::SUCCESS, alterDropResult.GetIssues ().ToString ());
8422
+ testHelper.ReadData (" SELECT COUNT(*) FROM `/Root/ColumnTableTest`" , " [[100u]]" );
8423
+ }
8424
+
8425
+ csController->EnableBackground (NYDBTest::ICSController::EBackground::Indexation);
8426
+ csController->WaitIndexation (TDuration::Seconds (5 ));
8427
+ }
8329
8428
}
8330
8429
8331
8430
Y_UNIT_TEST_SUITE (KqpOlapTypes) {
0 commit comments