diff options
author | Vladislav Gogov <vlad-gogov@ydb.tech> | 2024-09-30 13:38:58 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-30 13:38:58 +0300 |
commit | 5dc26211e73718ac1359b62bc5af18515c76f88e (patch) | |
tree | 0edc00fb9cdcfa217a2c5c9868aa564c38d75086 | |
parent | 6e2ebb2cfdf98b642ad2107613287e14f1319f22 (diff) | |
download | ydb-5dc26211e73718ac1359b62bc5af18515c76f88e.tar.gz |
Added muted test "KqpOlapScheme::DropColumnAfterScan" (#9882)
-rw-r--r-- | .github/config/muted_ya.txt | 1 | ||||
-rw-r--r-- | ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp | 99 |
2 files changed, 100 insertions, 0 deletions
diff --git a/.github/config/muted_ya.txt b/.github/config/muted_ya.txt index 0885992995..e4dc57fa9b 100644 --- a/.github/config/muted_ya.txt +++ b/.github/config/muted_ya.txt @@ -19,6 +19,7 @@ ydb/core/kqp/ut/query KqpQuery.QueryTimeout ydb/core/kqp/ut/scan KqpRequestContext.TraceIdInErrorMessage ydb/core/kqp/ut/scheme [*/*]* ydb/core/kqp/ut/scheme KqpOlapScheme.TenThousandColumns +ydb/core/kqp/ut/scheme KqpOlapScheme.DropColumnAfterScan ydb/core/kqp/ut/scheme KqpScheme.AlterAsyncReplication ydb/core/kqp/ut/scheme KqpScheme.QueryWithAlter ydb/core/kqp/ut/service [*/*]* diff --git a/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp b/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp index 95c9bb6eb3..f7d32dd1f5 100644 --- a/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp +++ b/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp @@ -8326,6 +8326,105 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { testHelper.CreateTable(testTable, EStatus::SCHEME_ERROR); } + Y_UNIT_TEST(DropColumnAfterScan) { + using namespace NArrow; + + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard<NOlap::TWaitCompactionController>(); + csController->DisableBackground(NYDBTest::ICSController::EBackground::Indexation); + + TKikimrSettings runnerSettings; + runnerSettings.WithSampleTables = false; + TTestHelper testHelper(runnerSettings); + + TVector<TTestHelper::TColumnSchema> schema = { + TTestHelper::TColumnSchema().SetName("id").SetType(NScheme::NTypeIds::Uint64).SetNullable(false) + }; + + TTestHelper::TColumnTable testTable; + testTable.SetName("/Root/ColumnTableTest").SetPrimaryKey({ "id" }).SetSchema(schema); + testHelper.CreateTable(testTable); + + TVector<NConstruction::IArrayBuilder::TPtr> dataBuilders; + dataBuilders.push_back( + NConstruction::TSimpleArrayConstructor<NConstruction::TIntSeqFiller<arrow::UInt64Type>>::BuildNotNullable("id", false)); + auto batch = NConstruction::TRecordBatchConstructor(dataBuilders).BuildBatch(100); + testHelper.BulkUpsert(testTable, batch); + + { + auto alterQueryAdd = TStringBuilder() + << "ALTER TABLE `" << testTable.GetName() << "` ADD COLUMN column" << schema.size() + 1 << " Uint64;"; + Cerr << alterQueryAdd << Endl; + auto alterAddResult = testHelper.GetSession().ExecuteSchemeQuery(alterQueryAdd).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterAddResult.GetStatus(), EStatus::SUCCESS, alterAddResult.GetIssues().ToString()); + + testHelper.BulkUpsert(testTable, batch); + testHelper.ReadData("SELECT COUNT(*) FROM `/Root/ColumnTableTest`", "[[100u]]"); + + auto alterQueryDrop = TStringBuilder() + << "ALTER TABLE `" << testTable.GetName() << "` DROP COLUMN column" << schema.size() + 1 << ";"; + Cerr << alterQueryDrop << Endl; + auto alterDropResult = testHelper.GetSession().ExecuteSchemeQuery(alterQueryDrop).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterDropResult.GetStatus(), EStatus::SUCCESS, alterDropResult.GetIssues().ToString()); + testHelper.ReadData("SELECT COUNT(*) FROM `/Root/ColumnTableTest`", "[[100u]]"); + } + + { + auto alterQueryAdd = TStringBuilder() + << "ALTER TABLE `" << testTable.GetName() << "` ADD COLUMN column" << schema.size() + 1 << " Uint64;"; + Cerr << alterQueryAdd << Endl; + auto alterAddResult = testHelper.GetSession().ExecuteSchemeQuery(alterQueryAdd).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterAddResult.GetStatus(), EStatus::SUCCESS, alterAddResult.GetIssues().ToString()); + + testHelper.BulkUpsert(testTable, batch); + testHelper.ReadData("SELECT COUNT(*) FROM `/Root/ColumnTableTest`", "[[100u]]"); + + auto alterQueryDrop = TStringBuilder() + << "ALTER TABLE `" << testTable.GetName() << "` DROP COLUMN column" << schema.size() + 1 << ";"; + Cerr << alterQueryDrop << Endl; + auto alterDropResult = testHelper.GetSession().ExecuteSchemeQuery(alterQueryDrop).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterDropResult.GetStatus(), EStatus::SUCCESS, alterDropResult.GetIssues().ToString()); + testHelper.ReadData("SELECT COUNT(*) FROM `/Root/ColumnTableTest`", "[[100u]]"); + } + + { + auto alterQueryAdd = TStringBuilder() + << "ALTER TABLE `" << testTable.GetName() << "` ADD COLUMN column" << schema.size() + 1 << " Uint64;"; + Cerr << alterQueryAdd << Endl; + auto alterAddResult = testHelper.GetSession().ExecuteSchemeQuery(alterQueryAdd).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterAddResult.GetStatus(), EStatus::SUCCESS, alterAddResult.GetIssues().ToString()); + + testHelper.BulkUpsert(testTable, batch); + testHelper.ReadData("SELECT COUNT(*) FROM `/Root/ColumnTableTest`", "[[100u]]"); + + auto alterQueryDrop = TStringBuilder() + << "ALTER TABLE `" << testTable.GetName() << "` DROP COLUMN column" << schema.size() + 1 << ";"; + Cerr << alterQueryDrop << Endl; + auto alterDropResult = testHelper.GetSession().ExecuteSchemeQuery(alterQueryDrop).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterDropResult.GetStatus(), EStatus::SUCCESS, alterDropResult.GetIssues().ToString()); + testHelper.ReadData("SELECT COUNT(*) FROM `/Root/ColumnTableTest`", "[[100u]]"); + } + + { + auto alterQueryAdd = TStringBuilder() + << "ALTER TABLE `" << testTable.GetName() << "` ADD COLUMN column" << schema.size() + 1 << " Uint64;"; + Cerr << alterQueryAdd << Endl; + auto alterAddResult = testHelper.GetSession().ExecuteSchemeQuery(alterQueryAdd).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterAddResult.GetStatus(), EStatus::SUCCESS, alterAddResult.GetIssues().ToString()); + + testHelper.BulkUpsert(testTable, batch); + testHelper.ReadData("SELECT COUNT(*) FROM `/Root/ColumnTableTest`", "[[100u]]"); + + auto alterQueryDrop = TStringBuilder() + << "ALTER TABLE `" << testTable.GetName() << "` DROP COLUMN column" << schema.size() + 1 << ";"; + Cerr << alterQueryDrop << Endl; + auto alterDropResult = testHelper.GetSession().ExecuteSchemeQuery(alterQueryDrop).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterDropResult.GetStatus(), EStatus::SUCCESS, alterDropResult.GetIssues().ToString()); + testHelper.ReadData("SELECT COUNT(*) FROM `/Root/ColumnTableTest`", "[[100u]]"); + } + + csController->EnableBackground(NYDBTest::ICSController::EBackground::Indexation); + csController->WaitIndexation(TDuration::Seconds(5)); + } } Y_UNIT_TEST_SUITE(KqpOlapTypes) { |