This is an automated email from the ASF dual-hosted git repository.

blue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iceberg.git


The following commit(s) were added to refs/heads/master by this push:
     new 68f937c  Support FastAppend in BaseTransaction (#223)
68f937c is described below

commit 68f937c5a3ebf5c0ed89d4a41f87a5bd558e62df
Author: Anton Okolnychyi <[email protected]>
AuthorDate: Tue Jun 18 23:16:06 2019 +0100

    Support FastAppend in BaseTransaction (#223)
---
 .../java/org/apache/iceberg/BaseTransaction.java   | 13 ++++++++++++
 .../java/org/apache/iceberg/TestTransaction.java   | 23 ++++++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/core/src/main/java/org/apache/iceberg/BaseTransaction.java 
b/core/src/main/java/org/apache/iceberg/BaseTransaction.java
index c4dac2b..be91e0a 100644
--- a/core/src/main/java/org/apache/iceberg/BaseTransaction.java
+++ b/core/src/main/java/org/apache/iceberg/BaseTransaction.java
@@ -135,6 +135,14 @@ class BaseTransaction implements Transaction {
   }
 
   @Override
+  public AppendFiles newFastAppend() {
+    checkLastOperationCommitted("AppendFiles");
+    AppendFiles append = new FastAppend(transactionOps);
+    updates.add(append);
+    return append;
+  }
+
+  @Override
   public RewriteFiles newRewrite() {
     checkLastOperationCommitted("RewriteFiles");
     RewriteFiles rewrite = new ReplaceFiles(transactionOps);
@@ -380,6 +388,11 @@ class BaseTransaction implements Transaction {
     }
 
     @Override
+    public AppendFiles newFastAppend() {
+      return BaseTransaction.this.newFastAppend();
+    }
+
+    @Override
     public RewriteFiles newRewrite() {
       return BaseTransaction.this.newRewrite();
     }
diff --git a/core/src/test/java/org/apache/iceberg/TestTransaction.java 
b/core/src/test/java/org/apache/iceberg/TestTransaction.java
index 141e95e..8fa8b77 100644
--- a/core/src/test/java/org/apache/iceberg/TestTransaction.java
+++ b/core/src/test/java/org/apache/iceberg/TestTransaction.java
@@ -21,6 +21,7 @@ package org.apache.iceberg;
 
 import com.google.common.collect.Sets;
 import java.io.File;
+import java.util.List;
 import java.util.Set;
 import org.apache.iceberg.ManifestEntry.Status;
 import org.apache.iceberg.exceptions.CommitFailedException;
@@ -458,4 +459,26 @@ public class TestTransaction extends TableTestBase {
 
     Assert.assertFalse("Append manifest should be deleted", new 
File(appendManifest.path()).exists());
   }
+
+  @Test
+  public void testTransactionFastAppends() {
+    table.updateProperties()
+        .set(TableProperties.MANIFEST_MIN_MERGE_COUNT, "0")
+        .commit();
+
+    Transaction txn = table.newTransaction();
+
+    txn.newFastAppend()
+        .appendFile(FILE_A)
+        .commit();
+
+    txn.newFastAppend()
+        .appendFile(FILE_B)
+        .commit();
+
+    txn.commitTransaction();
+
+    List<ManifestFile> manifests = table.currentSnapshot().manifests();
+    Assert.assertEquals("Expected 2 manifests", 2, manifests.size());
+  }
 }

Reply via email to