[UT] Fix AlterTest UT failed (#3437)
This commit is contained in:
@ -49,6 +49,7 @@ public class AlterTest {
|
||||
FeConstants.runningUnitTest = true;
|
||||
FeConstants.default_scheduler_interval_millisecond = 100;
|
||||
Config.dynamic_partition_enable = true;
|
||||
Config.dynamic_partition_check_interval_seconds = 1;
|
||||
UtFrameUtils.createMinDorisCluster(runningDir);
|
||||
|
||||
// create connect context
|
||||
@ -79,6 +80,20 @@ public class AlterTest {
|
||||
")\n" +
|
||||
"DISTRIBUTED BY HASH (k1) BUCKETS 3\n" +
|
||||
"PROPERTIES('replication_num' = '1');");
|
||||
|
||||
createTable("CREATE TABLE test.tbl3\n" +
|
||||
"(\n" +
|
||||
" k1 date,\n" +
|
||||
" k2 int,\n" +
|
||||
" v1 int sum\n" +
|
||||
")\n" +
|
||||
"PARTITION BY RANGE(k1)\n" +
|
||||
"(\n" +
|
||||
" PARTITION p1 values less than('2020-02-01'),\n" +
|
||||
" PARTITION p2 values less than('2020-03-01')\n" +
|
||||
")\n" +
|
||||
"DISTRIBUTED BY HASH(k2) BUCKETS 3\n" +
|
||||
"PROPERTIES('replication_num' = '1');");
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
@ -135,10 +150,10 @@ public class AlterTest {
|
||||
waitSchemaChangeJobDone(true);
|
||||
|
||||
// enable dynamic partition
|
||||
// not adding the `start` property so that it won't drop the origin partition p1, p2 and p3
|
||||
stmt = "alter table test.tbl1 set (\n" +
|
||||
"'dynamic_partition.enable' = 'true',\n" +
|
||||
"'dynamic_partition.time_unit' = 'DAY',\n" +
|
||||
"'dynamic_partition.start' = '-3',\n" +
|
||||
"'dynamic_partition.time_unit' = 'DAY',\n" +
|
||||
"'dynamic_partition.end' = '3',\n" +
|
||||
"'dynamic_partition.prefix' = 'p',\n" +
|
||||
"'dynamic_partition.buckets' = '3'\n" +
|
||||
@ -181,23 +196,43 @@ public class AlterTest {
|
||||
Assert.assertEquals(Short.valueOf("1"), Short.valueOf(tbl.getPartitionInfo().getReplicationNum(p1.getId())));
|
||||
|
||||
// set un-partitioned table's real replication num
|
||||
OlapTable tbl2 = (OlapTable)db.getTable("tbl2");
|
||||
OlapTable tbl2 = (OlapTable) db.getTable("tbl2");
|
||||
Partition partition = tbl2.getPartition(tbl2.getName());
|
||||
Assert.assertEquals(Short.valueOf("1"), Short.valueOf(tbl2.getPartitionInfo().getReplicationNum(partition.getId())));
|
||||
stmt = "alter table test.tbl2 set ('replication_num' = '3');";
|
||||
alterTable(stmt, false);
|
||||
Assert.assertEquals(Short.valueOf("3"), Short.valueOf(tbl2.getPartitionInfo().getReplicationNum(partition.getId())));
|
||||
|
||||
Thread.sleep(5000); // sleep to wait dynamic partition scheduler run
|
||||
// add partition without set replication num
|
||||
stmt = "alter table test.tbl1 add partition p4 values less than('2020-05-01')";
|
||||
stmt = "alter table test.tbl1 add partition p4 values less than('2020-04-10')";
|
||||
alterTable(stmt, true);
|
||||
|
||||
// add partition when dynamic partition is disable
|
||||
stmt = "alter table test.tbl1 add partition p4 values less than('2020-05-01') ('replication_num' = '1')";
|
||||
stmt = "alter table test.tbl1 add partition p4 values less than('2020-04-10') ('replication_num' = '1')";
|
||||
alterTable(stmt, false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDynamicPartitionDropAndAdd() throws Exception {
|
||||
// test day range
|
||||
String stmt = "alter table test.tbl3 set (\n" +
|
||||
"'dynamic_partition.enable' = 'true',\n" +
|
||||
"'dynamic_partition.time_unit' = 'DAY',\n" +
|
||||
"'dynamic_partition.start' = '-3',\n" +
|
||||
"'dynamic_partition.end' = '3',\n" +
|
||||
"'dynamic_partition.prefix' = 'p',\n" +
|
||||
"'dynamic_partition.buckets' = '3'\n" +
|
||||
" );";
|
||||
alterTable(stmt, false);
|
||||
Thread.sleep(5000); // sleep to wait dynamic partition scheduler run
|
||||
|
||||
Database db = Catalog.getCurrentCatalog().getDb("default_cluster:test");
|
||||
OlapTable tbl = (OlapTable) db.getTable("tbl3");
|
||||
Assert.assertEquals(4, tbl.getPartitionNames().size());
|
||||
Assert.assertNull(tbl.getPartition("p1"));
|
||||
Assert.assertNull(tbl.getPartition("p2"));
|
||||
}
|
||||
|
||||
private void waitSchemaChangeJobDone(boolean rollupJob) throws InterruptedException {
|
||||
Map<Long, AlterJobV2> alterJobs = Catalog.getCurrentCatalog().getSchemaChangeHandler().getAlterJobsV2();
|
||||
|
||||
Reference in New Issue
Block a user