Skip to content

Commit f43094a

Browse files
committed
add test
1 parent 525c6d3 commit f43094a

File tree

3 files changed

+42
-9
lines changed

3 files changed

+42
-9
lines changed

fe/fe-core/src/test/java/org/apache/doris/catalog/DynamicPartitionTableTest.java

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1736,6 +1736,8 @@ public void testAutoBuckets() throws Exception {
17361736
+ " PROPERTIES (\n"
17371737
+ " \"dynamic_partition.enable\" = \"true\",\n"
17381738
+ " \"dynamic_partition.time_unit\" = \"YEAR\",\n"
1739+
+ " \"dynamic_partition.start\" = \"-50\",\n"
1740+
+ " \"dynamic_partition.create_history_partition\" = \"true\",\n"
17391741
+ " \"dynamic_partition.end\" = \"1\",\n"
17401742
+ " \"dynamic_partition.prefix\" = \"p\",\n"
17411743
+ " \"replication_allocation\" = \"tag.location.default: 1\"\n"
@@ -1744,22 +1746,53 @@ public void testAutoBuckets() throws Exception {
17441746
Database db = Env.getCurrentInternalCatalog().getDbOrAnalysisException("test");
17451747
OlapTable table = (OlapTable) db.getTableOrAnalysisException("test_autobucket_dynamic_partition");
17461748
List<Partition> partitions = Lists.newArrayList(table.getAllPartitions());
1747-
Assert.assertEquals(2, partitions.size());
1749+
Assert.assertEquals(52, partitions.size());
17481750
for (Partition partition : partitions) {
17491751
Assert.assertEquals(FeConstants.default_bucket_num, partition.getDistributionInfo().getBucketNum());
17501752
partition.setVisibleVersionAndTime(2L, System.currentTimeMillis());
17511753
}
17521754
RebalancerTestUtil.updateReplicaDataSize(1, 1, 1);
17531755

1754-
String alterStmt =
1756+
String alterStmt1 =
17551757
"alter table test.test_autobucket_dynamic_partition set ('dynamic_partition.end' = '2')";
1756-
ExceptionChecker.expectThrowsNoException(() -> alterTable(alterStmt));
1758+
ExceptionChecker.expectThrowsNoException(() -> alterTable(alterStmt1));
17571759
List<Pair<Long, Long>> tempDynamicPartitionTableInfo = Lists.newArrayList(Pair.of(db.getId(), table.getId()));
17581760
Env.getCurrentEnv().getDynamicPartitionScheduler().executeDynamicPartition(tempDynamicPartitionTableInfo, false);
17591761

17601762
partitions = Lists.newArrayList(table.getAllPartitions());
17611763
partitions.sort(Comparator.comparing(Partition::getId));
1762-
Assert.assertEquals(3, partitions.size());
1763-
Assert.assertEquals(1, partitions.get(2).getDistributionInfo().getBucketNum());
1764+
Assert.assertEquals(53, partitions.size());
1765+
Assert.assertEquals(1, partitions.get(partitions.size() - 1).getDistributionInfo().getBucketNum());
1766+
1767+
table.readLock();
1768+
try {
1769+
// first 40 partitions with size 0, then 10 partitions with size 20GB
1770+
for (int i = 0; i < 50; i++) {
1771+
Partition partition = partitions.get(i);
1772+
partition.updateVisibleVersion(2L);
1773+
for (MaterializedIndex idx : partition.getMaterializedIndices(
1774+
MaterializedIndex.IndexExtState.VISIBLE)) {
1775+
for (Tablet tablet : idx.getTablets()) {
1776+
for (Replica replica : tablet.getReplicas()) {
1777+
replica.updateVersion(2L);
1778+
replica.setDataSize(i < 40 ? 0L : 20L << 30);
1779+
replica.setRowCount(1000L);
1780+
}
1781+
}
1782+
}
1783+
}
1784+
} finally {
1785+
table.readUnlock();
1786+
}
1787+
1788+
String alterStmt2 =
1789+
"alter table test.test_autobucket_dynamic_partition set ('dynamic_partition.end' = '3')";
1790+
ExceptionChecker.expectThrowsNoException(() -> alterTable(alterStmt2));
1791+
Env.getCurrentEnv().getDynamicPartitionScheduler().executeDynamicPartition(tempDynamicPartitionTableInfo, false);
1792+
1793+
partitions = Lists.newArrayList(table.getAllPartitions());
1794+
partitions.sort(Comparator.comparing(Partition::getId));
1795+
Assert.assertEquals(54, partitions.size());
1796+
Assert.assertTrue(partitions.get(partitions.size() - 1).getDistributionInfo().getBucketNum() > 40);
17641797
}
17651798
}

fe/fe-core/src/test/java/org/apache/doris/utframe/TestWithFeService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -517,8 +517,8 @@ beHttpPort, beArrowFlightSqlPort, new DefaultHeartbeatServiceImpl(beThriftPort,
517517
Backend be = new Backend(Env.getCurrentEnv().getNextId(), backend.getHost(), backend.getHeartbeatPort());
518518
DiskInfo diskInfo1 = new DiskInfo("/path" + be.getId());
519519
diskInfo1.setPathHash(be.getId());
520-
diskInfo1.setTotalCapacityB(10L << 30);
521-
diskInfo1.setAvailableCapacityB(5L << 30);
520+
diskInfo1.setTotalCapacityB(10L << 40);
521+
diskInfo1.setAvailableCapacityB(5L << 40);
522522
diskInfo1.setDataUsedCapacityB(480000);
523523
diskInfo1.setPathHash(be.getId());
524524
Map<String, DiskInfo> disks = Maps.newHashMap();

fe/fe-core/src/test/java/org/apache/doris/utframe/UtFrameUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,8 @@ beHttpPort, beArrowFlightSqlPort, new DefaultHeartbeatServiceImpl(beThriftPort,
317317
Backend be = new Backend(Env.getCurrentEnv().getNextId(), backend.getHost(), backend.getHeartbeatPort());
318318
Map<String, DiskInfo> disks = Maps.newHashMap();
319319
DiskInfo diskInfo1 = new DiskInfo("/path" + be.getId());
320-
diskInfo1.setTotalCapacityB(10L << 30);
321-
diskInfo1.setAvailableCapacityB(5L << 30);
320+
diskInfo1.setTotalCapacityB(10L << 40);
321+
diskInfo1.setAvailableCapacityB(5L << 40);
322322
diskInfo1.setDataUsedCapacityB(480000);
323323
diskInfo1.setPathHash(be.getId());
324324
disks.put(diskInfo1.getRootPath(), diskInfo1);

0 commit comments

Comments
 (0)