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();