You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by op...@apache.org on 2021/03/03 12:48:18 UTC
[iceberg] branch master updated: Core: Add DeleteManifest position
unit test. (#2271)
This is an automated email from the ASF dual-hosted git repository.
openinx pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/master by this push:
new c7ad594 Core: Add DeleteManifest position unit test. (#2271)
c7ad594 is described below
commit c7ad594def20c17d5819683051fbbf802df1def2
Author: ForwardXu <fo...@gmail.com>
AuthorDate: Wed Mar 3 20:48:00 2021 +0800
Core: Add DeleteManifest position unit test. (#2271)
---
core/src/test/java/org/apache/iceberg/TableTestBase.java | 16 ++++++++++++++++
.../test/java/org/apache/iceberg/TestManifestReader.java | 14 ++++++++++++++
2 files changed, 30 insertions(+)
diff --git a/core/src/test/java/org/apache/iceberg/TableTestBase.java b/core/src/test/java/org/apache/iceberg/TableTestBase.java
index 184534f..7907ce7 100644
--- a/core/src/test/java/org/apache/iceberg/TableTestBase.java
+++ b/core/src/test/java/org/apache/iceberg/TableTestBase.java
@@ -214,6 +214,22 @@ public class TableTestBase {
return writer.toManifestFile();
}
+ ManifestFile writeDeleteManifest(int newFormatVersion, Long snapshotId, DeleteFile... deleteFiles)
+ throws IOException {
+ OutputFile manifestFile = org.apache.iceberg.Files
+ .localOutput(FileFormat.AVRO.addExtension(temp.newFile().toString()));
+ ManifestWriter<DeleteFile> writer = ManifestFiles.writeDeleteManifest(
+ newFormatVersion, SPEC, manifestFile, snapshotId);
+ try {
+ for (DeleteFile deleteFile : deleteFiles) {
+ writer.add(deleteFile);
+ }
+ } finally {
+ writer.close();
+ }
+ return writer.toManifestFile();
+ }
+
ManifestFile writeManifestWithName(String name, DataFile... files) throws IOException {
File manifestFile = temp.newFile(name + ".avro");
Assert.assertTrue(manifestFile.delete());
diff --git a/core/src/test/java/org/apache/iceberg/TestManifestReader.java b/core/src/test/java/org/apache/iceberg/TestManifestReader.java
index 1163b39..b6a7f47 100644
--- a/core/src/test/java/org/apache/iceberg/TestManifestReader.java
+++ b/core/src/test/java/org/apache/iceberg/TestManifestReader.java
@@ -29,6 +29,7 @@ import org.apache.iceberg.relocated.com.google.common.collect.Lists;
import org.apache.iceberg.relocated.com.google.common.collect.Streams;
import org.apache.iceberg.types.Types;
import org.junit.Assert;
+import org.junit.Assume;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -131,4 +132,17 @@ public class TestManifestReader extends TableTestBase {
}
}
}
+
+ @Test
+ public void testDeleteFilePositions() throws IOException {
+ Assume.assumeTrue("Delete files only work for format version 2", formatVersion == 2);
+ ManifestFile manifest = writeDeleteManifest(formatVersion, 1000L, FILE_A_DELETES, FILE_B_DELETES);
+ try (ManifestReader<DeleteFile> reader = ManifestFiles.readDeleteManifest(manifest, FILE_IO, null)) {
+ long expectedPos = 0L;
+ for (DeleteFile file : reader) {
+ Assert.assertEquals("Position should match", (Long) expectedPos, file.pos());
+ expectedPos += 1;
+ }
+ }
+ }
}