This is an automated email from the ASF dual-hosted git repository. junhao pushed a commit to branch fixxx in repository https://gitbox.apache.org/repos/asf/paimon.git
commit 32f1b6337465fc15ba7cfeaa3960800e7949d400 Author: 仟弋 <[email protected]> AuthorDate: Fri Jul 18 10:42:39 2025 +0800 [arrow] Fix map type conversion from paimon type to arrow type --- .../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(); + } }
