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 affae75055 [arrow] Fix map type conversion from paimon type to arrow
type (#5922)
affae75055 is described below
commit affae750558d8d9df333606b7231d1ee79d5465f
Author: YeJunHao <[email protected]>
AuthorDate: Fri Jul 18 13:13:11 2025 +0800
[arrow] Fix map type conversion from paimon type to arrow type (#5922)
---
.../src/main/java/org/apache/paimon/arrow/ArrowUtils.java | 6 +-----
.../test/java/org/apache/paimon/arrow/ArrowUtilsTest.java | 15 +++++++++++++++
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/paimon-arrow/src/main/java/org/apache/paimon/arrow/ArrowUtils.java
b/paimon-arrow/src/main/java/org/apache/paimon/arrow/ArrowUtils.java
index 617707697b..7e487e54fb 100644
--- a/paimon-arrow/src/main/java/org/apache/paimon/arrow/ArrowUtils.java
+++ b/paimon-arrow/src/main/java/org/apache/paimon/arrow/ArrowUtils.java
@@ -145,11 +145,7 @@ public class ArrowUtils {
keyField.getChildren());
Field valueField =
- toArrowField(
- MapVector.VALUE_NAME,
- fieldId,
- mapType.getValueType().notNull(),
- depth + 1);
+ toArrowField(MapVector.VALUE_NAME, fieldId,
mapType.getValueType(), depth + 1);
FieldType valueType = valueField.getFieldType();
valueField =
new Field(
diff --git
a/paimon-arrow/src/test/java/org/apache/paimon/arrow/ArrowUtilsTest.java
b/paimon-arrow/src/test/java/org/apache/paimon/arrow/ArrowUtilsTest.java
index 319df13ba1..49af975150 100644
--- a/paimon-arrow/src/test/java/org/apache/paimon/arrow/ArrowUtilsTest.java
+++ b/paimon-arrow/src/test/java/org/apache/paimon/arrow/ArrowUtilsTest.java
@@ -19,11 +19,13 @@
package org.apache.paimon.arrow;
import org.apache.paimon.schema.Schema;
+import org.apache.paimon.types.DataType;
import org.apache.paimon.types.DataTypes;
import org.apache.paimon.types.RowType;
import org.apache.arrow.memory.RootAllocator;
import org.apache.arrow.vector.types.pojo.Field;
+import org.apache.arrow.vector.types.pojo.FieldType;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -93,4 +95,17 @@ public class ArrowUtilsTest {
.isEqualTo(i);
}
}
+
+ @Test
+ public void testMap() {
+ DataType type = DataTypes.MAP(DataTypes.STRING(), DataTypes.STRING());
+ FieldType fieldType =
+ ArrowUtils.toArrowField("test", 0, type, 0)
+ .getChildren()
+ .get(0)
+ .getChildren()
+ .get(1)
+ .getFieldType();
+ Assertions.assertThat(fieldType.isNullable()).isTrue();
+ }
}