This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new 203db415d [core] Fix that batch unaware bucket compact cannot stop
when there is no snapshot (#4539)
203db415d is described below
commit 203db415d519106d9f3d20a0fe83af58c71e78ea
Author: yuzelin <[email protected]>
AuthorDate: Mon Nov 18 13:36:32 2024 +0800
[core] Fix that batch unaware bucket compact cannot stop when there is no
snapshot (#4539)
---
.../append/UnawareAppendTableCompactionCoordinator.java | 3 +++
.../append/UnawareAppendTableCompactionCoordinatorTest.java | 11 +++++++++++
2 files changed, 14 insertions(+)
diff --git
a/paimon-core/src/main/java/org/apache/paimon/append/UnawareAppendTableCompactionCoordinator.java
b/paimon-core/src/main/java/org/apache/paimon/append/UnawareAppendTableCompactionCoordinator.java
index 9a54ea72e..842b22316 100644
---
a/paimon-core/src/main/java/org/apache/paimon/append/UnawareAppendTableCompactionCoordinator.java
+++
b/paimon-core/src/main/java/org/apache/paimon/append/UnawareAppendTableCompactionCoordinator.java
@@ -387,6 +387,9 @@ public class UnawareAppendTableCompactionCoordinator {
if (nextSnapshot == null) {
nextSnapshot = snapshotManager.latestSnapshotId();
if (nextSnapshot == null) {
+ if (!streamingMode) {
+ throw new EndOfScanException();
+ }
return;
}
snapshotReader.withMode(ScanMode.ALL);
diff --git
a/paimon-core/src/test/java/org/apache/paimon/append/UnawareAppendTableCompactionCoordinatorTest.java
b/paimon-core/src/test/java/org/apache/paimon/append/UnawareAppendTableCompactionCoordinatorTest.java
index 95826c195..9bb461ffe 100644
---
a/paimon-core/src/test/java/org/apache/paimon/append/UnawareAppendTableCompactionCoordinatorTest.java
+++
b/paimon-core/src/test/java/org/apache/paimon/append/UnawareAppendTableCompactionCoordinatorTest.java
@@ -29,6 +29,7 @@ import org.apache.paimon.schema.SchemaManager;
import org.apache.paimon.schema.TableSchema;
import org.apache.paimon.table.FileStoreTable;
import org.apache.paimon.table.FileStoreTableFactory;
+import org.apache.paimon.table.source.EndOfScanException;
import org.apache.paimon.types.DataTypes;
import org.junit.jupiter.api.BeforeEach;
@@ -43,7 +44,9 @@ import java.util.UUID;
import static
org.apache.paimon.mergetree.compact.MergeTreeCompactManagerTest.row;
import static org.apache.paimon.stats.StatsTestUtils.newSimpleStats;
+import static
org.apache.paimon.testutils.assertj.PaimonAssertions.anyCauseMatches;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
/** Tests for {@link UnawareAppendTableCompactionCoordinator}. */
public class UnawareAppendTableCompactionCoordinatorTest {
@@ -135,6 +138,14 @@ public class UnawareAppendTableCompactionCoordinatorTest {
.isEqualTo(0);
}
+ @Test
+ public void testBatchScanEmptyTable() {
+ compactionCoordinator =
+ new
UnawareAppendTableCompactionCoordinator(appendOnlyFileStoreTable, false);
+ assertThatThrownBy(() -> compactionCoordinator.scan())
+ .satisfies(anyCauseMatches(EndOfScanException.class));
+ }
+
private void assertTasks(List<DataFileMeta> files, int taskNum) {
compactionCoordinator.notifyNewFiles(partition, files);
List<UnawareAppendCompactionTask> tasks =
compactionCoordinator.compactPlan();