aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladislav Gogov <vlad-gogov@ydb.tech>2024-09-30 13:38:58 +0300
committerGitHub <noreply@github.com>2024-09-30 13:38:58 +0300
commit5dc26211e73718ac1359b62bc5af18515c76f88e (patch)
tree0edc00fb9cdcfa217a2c5c9868aa564c38d75086
parent6e2ebb2cfdf98b642ad2107613287e14f1319f22 (diff)
downloadydb-5dc26211e73718ac1359b62bc5af18515c76f88e.tar.gz
Added muted test "KqpOlapScheme::DropColumnAfterScan" (#9882)
-rw-r--r--.github/config/muted_ya.txt1
-rw-r--r--ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp99
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) {