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 a079fc3c28 [test][core] Fix test in DataEvolutionSplitGeneratorTest,
make it more accurate (#6495)
a079fc3c28 is described below
commit a079fc3c285071231d1cd8a45fa6e6e2c6e11a86
Author: YeJunHao <[email protected]>
AuthorDate: Wed Oct 29 19:12:47 2025 +0800
[test][core] Fix test in DataEvolutionSplitGeneratorTest, make it more
accurate (#6495)
---
.../source/DataEvolutionSplitGeneratorTest.java | 147 ++++++++-------------
1 file changed, 58 insertions(+), 89 deletions(-)
diff --git
a/paimon-core/src/test/java/org/apache/paimon/table/source/DataEvolutionSplitGeneratorTest.java
b/paimon-core/src/test/java/org/apache/paimon/table/source/DataEvolutionSplitGeneratorTest.java
index 27e7841f9d..553d1731f9 100644
---
a/paimon-core/src/test/java/org/apache/paimon/table/source/DataEvolutionSplitGeneratorTest.java
+++
b/paimon-core/src/test/java/org/apache/paimon/table/source/DataEvolutionSplitGeneratorTest.java
@@ -23,8 +23,6 @@ import org.apache.paimon.manifest.FileSource;
import org.junit.jupiter.api.Test;
-import javax.annotation.Nullable;
-
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -35,49 +33,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
/** Test for {@link DataEvolutionSplitGenerator}. */
public class DataEvolutionSplitGeneratorTest {
- private static DataFileMeta createFile(
- String name, @Nullable Long firstRowId, long maxSequence) {
- return DataFileMeta.create(
- name,
- 10000L,
- 1,
- EMPTY_ROW,
- EMPTY_ROW,
- null,
- null,
- 0L,
- maxSequence,
- 0,
- 0,
- 0L,
- null,
- FileSource.APPEND,
- null,
- firstRowId,
- null);
- }
-
- @Test
- public void testSplitWithNullFirstRowId() {
- DataFileMeta file1 = createFile("file1", null, 10);
- DataFileMeta file2 = createFile("file2", 1L, 20);
- DataFileMeta file3 = createFile("file3", 1L, 30);
- DataFileMeta file4 = createFile("file4", null, 40);
-
- List<DataFileMeta> files = Arrays.asList(file1, file2, file3, file4);
- List<List<DataFileMeta>> result =
DataEvolutionSplitGenerator.split(files);
-
- assertEquals(3, result.size());
- assertEquals(Collections.singletonList(file4), result.get(0));
- assertEquals(Collections.singletonList(file1), result.get(1));
- assertEquals(Arrays.asList(file3, file2), result.get(2));
- }
-
@Test
public void testSplitWithSameFirstRowId() {
- DataFileMeta file1 = createFile("file1", 1L, 10);
- DataFileMeta file2 = createFile("file2", 1L, 20);
- DataFileMeta file3 = createFile("file3", 1L, 30);
+ DataFileMeta file1 = createFile("file1.parquet", 1L, 1, 10);
+ DataFileMeta file2 = createFile("file2.parquet", 1L, 1, 20);
+ DataFileMeta file3 = createFile("file3.parquet", 1L, 1, 30);
List<DataFileMeta> files = Arrays.asList(file1, file2, file3);
List<List<DataFileMeta>> result =
DataEvolutionSplitGenerator.split(files);
@@ -86,28 +46,13 @@ public class DataEvolutionSplitGeneratorTest {
assertEquals(Arrays.asList(file3, file2, file1), result.get(0));
}
- @Test
- public void testSplitWithDifferentFirstRowId() {
- DataFileMeta file1 = createFile("file1", 1L, 10);
- DataFileMeta file2 = createFile("file2", 2L, 20);
- DataFileMeta file3 = createFile("file3", 3L, 30);
-
- List<DataFileMeta> files = Arrays.asList(file1, file2, file3);
- List<List<DataFileMeta>> result =
DataEvolutionSplitGenerator.split(files);
-
- assertEquals(3, result.size());
- assertEquals(Collections.singletonList(file1), result.get(0));
- assertEquals(Collections.singletonList(file2), result.get(1));
- assertEquals(Collections.singletonList(file3), result.get(2));
- }
-
@Test
public void testSplitWithMixedFirstRowId() {
- DataFileMeta file1 = createFile("file1", 1L, 10);
- DataFileMeta file2 = createFile("file2", 2L, 20);
- DataFileMeta file3 = createFile("file3", 1L, 30);
- DataFileMeta file4 = createFile("file4", 2L, 40);
- DataFileMeta file5 = createFile("file5", 3L, 50);
+ DataFileMeta file1 = createFile("file1.parquet", 1L, 1, 1);
+ DataFileMeta file2 = createFile("file2.parquet", 2L, 1, 2);
+ DataFileMeta file3 = createFile("file3.parquet", 1L, 1, 3);
+ DataFileMeta file4 = createFile("file4.parquet", 2L, 1, 4);
+ DataFileMeta file5 = createFile("file5.parquet", 3L, 1, 5);
List<DataFileMeta> files = Arrays.asList(file1, file2, file3, file4,
file5);
List<List<DataFileMeta>> result =
DataEvolutionSplitGenerator.split(files);
@@ -120,41 +65,65 @@ public class DataEvolutionSplitGeneratorTest {
@Test
public void testSplitWithComplexScenario() {
- DataFileMeta file1 = createFile("file1", 1L, 30);
- DataFileMeta file2 = createFile("file2", 2L, 40);
- DataFileMeta file3 = createFile("file3", null, 10);
- DataFileMeta file4 = createFile("file4", 1L, 20);
- DataFileMeta file5 = createFile("file5", null, 50);
- DataFileMeta file6 = createFile("file6", 2L, 60);
- DataFileMeta file7 = createFile("file7", 3L, 70);
- DataFileMeta file8 = createFile("file8", 3L, 80);
- DataFileMeta file9 = createFile("file9", null, 90);
+ DataFileMeta file1 = createFile("file1.parquet", 1L, 1, 1);
+ DataFileMeta file2 = createFile("file2.parquet", 2L, 1, 3);
+ DataFileMeta file3 = createFile("file3.parquet", 3L, 1, 5);
+ DataFileMeta file4 = createFile("file4.parquet", 1L, 1, 2);
+ DataFileMeta file5 = createFile("file5.parquet", 4L, 1, 8);
+ DataFileMeta file6 = createFile("file6.parquet", 2L, 1, 4);
+ DataFileMeta file7 = createFile("file7.parquet", 3L, 1, 6);
+ DataFileMeta file8 = createFile("file8.parquet", 3L, 1, 7);
+ DataFileMeta file9 = createFile("file9.parquet", 5L, 1, 9);
List<DataFileMeta> files =
Arrays.asList(file1, file2, file3, file4, file5, file6, file7,
file8, file9);
List<List<DataFileMeta>> result =
DataEvolutionSplitGenerator.split(files);
- assertEquals(6, result.size());
- assertEquals(Collections.singletonList(file9), result.get(0));
- assertEquals(Collections.singletonList(file5), result.get(1));
- assertEquals(Collections.singletonList(file3), result.get(2));
- assertEquals(Arrays.asList(file1, file4), result.get(3));
- assertEquals(Arrays.asList(file6, file2), result.get(4));
- assertEquals(Arrays.asList(file8, file7), result.get(5));
+ assertEquals(5, result.size());
+ assertEquals(Arrays.asList(file4, file1), result.get(0));
+ assertEquals(Arrays.asList(file6, file2), result.get(1));
+ assertEquals(Arrays.asList(file8, file7, file3), result.get(2));
+ assertEquals(Collections.singletonList(file5), result.get(3));
+ assertEquals(Collections.singletonList(file9), result.get(4));
}
@Test
- public void testOnlyNullFirstRowId() {
- DataFileMeta file1 = createFile("file1", null, 10);
- DataFileMeta file2 = createFile("file2", null, 20);
- DataFileMeta file3 = createFile("file3", null, 30);
-
- List<DataFileMeta> files = Arrays.asList(file2, file1, file3);
+ public void testSplitWithMultipleBlobFilesPerGroup() {
+ DataFileMeta file1 = createFile("file1.parquet", 1L, 10, 1);
+ DataFileMeta file2 = createFile("file2.blob", 1L, 1, 1);
+ DataFileMeta file3 = createFile("file3.blob", 2L, 9, 1);
+ DataFileMeta file4 = createFile("file4.parquet", 20L, 10, 2);
+ DataFileMeta file5 = createFile("file5.blob", 20L, 5, 2);
+ DataFileMeta file6 = createFile("file6.blob", 25L, 5, 2);
+ DataFileMeta file7 = createFile("file7.parquet", 1L, 10, 3);
+
+ List<DataFileMeta> files = Arrays.asList(file1, file2, file3, file4,
file5, file6, file7);
List<List<DataFileMeta>> result =
DataEvolutionSplitGenerator.split(files);
- assertEquals(3, result.size());
- assertEquals(Collections.singletonList(file3), result.get(0));
- assertEquals(Collections.singletonList(file2), result.get(1));
- assertEquals(Collections.singletonList(file1), result.get(2));
+ assertEquals(2, result.size());
+ assertEquals(Arrays.asList(file7, file1, file2, file3), result.get(0));
+ assertEquals(Arrays.asList(file4, file5, file6), result.get(1));
+ }
+
+ private static DataFileMeta createFile(
+ String name, long firstRowId, long rowCount, long maxSequence) {
+ return DataFileMeta.create(
+ name,
+ 10000L,
+ (int) rowCount,
+ EMPTY_ROW,
+ EMPTY_ROW,
+ null,
+ null,
+ 0L,
+ maxSequence,
+ 0,
+ 0,
+ 0L,
+ null,
+ FileSource.APPEND,
+ null,
+ firstRowId,
+ null);
}
}