This is an automated email from the ASF dual-hosted git repository.
JingsongLi 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 8fc0df7196 [core] Improve BUCKET_APPEND_ORDERED test coverage (#10049)
8fc0df7196 is described below
commit 8fc0df7196e9a5fa1969612a92350655b8753144
Author: dwangatt <[email protected]>
AuthorDate: Tue Sep 22 12:49:38 2026 +1000
[core] Improve BUCKET_APPEND_ORDERED test coverage (#10049)
---
.../paimon/table/AppendOnlySimpleTableTest.java | 58 ++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git
a/paimon-core/src/test/java/org/apache/paimon/table/AppendOnlySimpleTableTest.java
b/paimon-core/src/test/java/org/apache/paimon/table/AppendOnlySimpleTableTest.java
index 9b8fda8e24..e6352b8d91 100644
---
a/paimon-core/src/test/java/org/apache/paimon/table/AppendOnlySimpleTableTest.java
+++
b/paimon-core/src/test/java/org/apache/paimon/table/AppendOnlySimpleTableTest.java
@@ -100,6 +100,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.PriorityQueue;
import java.util.Random;
+import java.util.Set;
import java.util.UUID;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
@@ -207,6 +208,63 @@ public class AppendOnlySimpleTableTest extends
SimpleTableTestBase {
}
}
+ @Test
+ public void testBucketedAppendOrderedSequenceNumbers() throws Exception {
+ innerTestBucketedAppendSequenceNumbers(true);
+ }
+
+ @Test
+ public void testBucketedAppendUnorderedSequenceNumbers() throws Exception {
+ innerTestBucketedAppendSequenceNumbers(false);
+ }
+
+ private void innerTestBucketedAppendSequenceNumbers(boolean ordered)
throws Exception {
+ FileStoreTable table =
+ createFileStoreTable(
+ options -> {
+ options.set(BUCKET, 2);
+ options.set(BUCKET_KEY, "a");
+ options.set(WRITE_ONLY, true);
+ options.set(BUCKET_APPEND_ORDERED, ordered);
+ });
+
+ BatchWriteBuilder writeBuilder = table.newBatchWriteBuilder();
+ try (BatchTableWrite write = writeBuilder.newWrite();
+ BatchTableCommit commit = writeBuilder.newCommit()) {
+ write.write(rowData(1, 10, 100L));
+ commit.commit(write.prepareCommit());
+ }
+
+ List<DataFileMeta> batch1Files =
+ table.newReadBuilder().newScan().plan().splits().stream()
+ .flatMap(s -> ((DataSplit) s).dataFiles().stream())
+ .collect(Collectors.toList());
+ long batch1MaxSequenceNumber =
+
batch1Files.stream().mapToLong(DataFileMeta::maxSequenceNumber).max().getAsLong();
+ Set<String> batch1FileNames =
+
batch1Files.stream().map(DataFileMeta::fileName).collect(Collectors.toSet());
+
+ try (BatchTableWrite write = writeBuilder.newWrite();
+ BatchTableCommit commit = writeBuilder.newCommit()) {
+ write.write(rowData(1, 20, 200L));
+ commit.commit(write.prepareCommit());
+ }
+
+ long batch2MinSequenceNumber =
+ table.newReadBuilder().newScan().plan().splits().stream()
+ .flatMap(s -> ((DataSplit) s).dataFiles().stream())
+ .filter(file ->
!batch1FileNames.contains(file.fileName()))
+ .mapToLong(s -> ((DataFileMeta) s).minSequenceNumber())
+ .min()
+ .getAsLong();
+
+ if (ordered) {
+
assertThat(batch2MinSequenceNumber).isGreaterThan(batch1MaxSequenceNumber);
+ } else {
+ assertThat(batch2MinSequenceNumber).isEqualTo(0L);
+ }
+ }
+
@Test
public void testOverwriteNeverFail() throws Exception {
FileStoreTable table = createFileStoreTable();