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

yuzelin 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 dc3595b80e [hotfix] ArrowFormatWriter should reset ArrowFieldWriters 
after flush (#5207)
dc3595b80e is described below

commit dc3595b80e16a9594f55ca0d421ffeadea861675
Author: yuzelin <[email protected]>
AuthorDate: Tue Mar 4 15:50:37 2025 +0800

    [hotfix] ArrowFormatWriter should reset ArrowFieldWriters after flush 
(#5207)
---
 .../java/org/apache/paimon/arrow/vector/ArrowFormatCWriter.java   | 4 ++++
 .../java/org/apache/paimon/arrow/vector/ArrowFormatWriter.java    | 8 +++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git 
a/paimon-arrow/src/main/java/org/apache/paimon/arrow/vector/ArrowFormatCWriter.java
 
b/paimon-arrow/src/main/java/org/apache/paimon/arrow/vector/ArrowFormatCWriter.java
index 442457813a..eb7634fcbf 100644
--- 
a/paimon-arrow/src/main/java/org/apache/paimon/arrow/vector/ArrowFormatCWriter.java
+++ 
b/paimon-arrow/src/main/java/org/apache/paimon/arrow/vector/ArrowFormatCWriter.java
@@ -54,6 +54,10 @@ public class ArrowFormatCWriter implements AutoCloseable {
         return ArrowUtils.serializeToCStruct(vectorSchemaRoot, array, schema);
     }
 
+    public void reset() {
+        realWriter.reset();
+    }
+
     public boolean empty() {
         return realWriter.empty();
     }
diff --git 
a/paimon-arrow/src/main/java/org/apache/paimon/arrow/vector/ArrowFormatWriter.java
 
b/paimon-arrow/src/main/java/org/apache/paimon/arrow/vector/ArrowFormatWriter.java
index 9f55792197..6bdc234204 100644
--- 
a/paimon-arrow/src/main/java/org/apache/paimon/arrow/vector/ArrowFormatWriter.java
+++ 
b/paimon-arrow/src/main/java/org/apache/paimon/arrow/vector/ArrowFormatWriter.java
@@ -64,7 +64,6 @@ public class ArrowFormatWriter implements AutoCloseable {
 
     public void flush() {
         vectorSchemaRoot.setRowCount(rowId);
-        rowId = 0;
     }
 
     public boolean write(InternalRow currentRow) {
@@ -89,6 +88,13 @@ public class ArrowFormatWriter implements AutoCloseable {
         return rowId == 0;
     }
 
+    public void reset() {
+        for (ArrowFieldWriter fieldWriter : fieldWriters) {
+            fieldWriter.reset();
+        }
+        rowId = 0;
+    }
+
     @Override
     public void close() {
         vectorSchemaRoot.close();

Reply via email to