@@ -8326,6 +8326,105 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) {
83268326 testHelper.CreateTable (testTable, EStatus::SCHEME_ERROR);
83278327 }
83288328
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+ }
83298428}
83308429
83318430Y_UNIT_TEST_SUITE (KqpOlapTypes) {
0 commit comments