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

JingsongLi pushed a commit to branch mosaic-support-array-map
in repository https://gitbox.apache.org/repos/asf/paimon.git

commit 534ac61ecf032f99ee331521bf123869ec682bdd
Author: JingsongLi <[email protected]>
AuthorDate: Tue Jun 9 14:11:04 2026 +0800

    [mosaic] Support ARRAY and MAP type validation
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .../org/apache/paimon/format/mosaic/MosaicFileFormat.java   |  8 +++++---
 .../apache/paimon/format/mosaic/MosaicFileFormatTest.java   | 13 +++++++++----
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git 
a/paimon-mosaic/src/main/java/org/apache/paimon/format/mosaic/MosaicFileFormat.java
 
b/paimon-mosaic/src/main/java/org/apache/paimon/format/mosaic/MosaicFileFormat.java
index bff850a4e0..00843ca572 100644
--- 
a/paimon-mosaic/src/main/java/org/apache/paimon/format/mosaic/MosaicFileFormat.java
+++ 
b/paimon-mosaic/src/main/java/org/apache/paimon/format/mosaic/MosaicFileFormat.java
@@ -209,8 +209,8 @@ public class MosaicFileFormat extends FileFormat {
 
         @Override
         public Void visit(ArrayType arrayType) {
-            throw new UnsupportedOperationException(
-                    "Mosaic file format does not support type ARRAY");
+            arrayType.getElementType().accept(this);
+            return null;
         }
 
         @Override
@@ -227,7 +227,9 @@ public class MosaicFileFormat extends FileFormat {
 
         @Override
         public Void visit(MapType mapType) {
-            throw new UnsupportedOperationException("Mosaic file format does 
not support type MAP");
+            mapType.getKeyType().accept(this);
+            mapType.getValueType().accept(this);
+            return null;
         }
 
         @Override
diff --git 
a/paimon-mosaic/src/test/java/org/apache/paimon/format/mosaic/MosaicFileFormatTest.java
 
b/paimon-mosaic/src/test/java/org/apache/paimon/format/mosaic/MosaicFileFormatTest.java
index 8e53164e86..df6fb38572 100644
--- 
a/paimon-mosaic/src/test/java/org/apache/paimon/format/mosaic/MosaicFileFormatTest.java
+++ 
b/paimon-mosaic/src/test/java/org/apache/paimon/format/mosaic/MosaicFileFormatTest.java
@@ -85,12 +85,17 @@ class MosaicFileFormatTest {
     }
 
     @Test
-    void testValidateDataFieldsMapUnsupported() {
+    void testValidateDataFieldsArraySupported() {
+        MosaicFileFormat format = createFormat();
+        RowType rowType = DataTypes.ROW(DataTypes.ARRAY(DataTypes.INT()));
+        format.validateDataFields(rowType);
+    }
+
+    @Test
+    void testValidateDataFieldsMapSupported() {
         MosaicFileFormat format = createFormat();
         RowType rowType = DataTypes.ROW(DataTypes.MAP(DataTypes.STRING(), 
DataTypes.INT()));
-        assertThatThrownBy(() -> format.validateDataFields(rowType))
-                .isInstanceOf(UnsupportedOperationException.class)
-                .hasMessageContaining("MAP");
+        format.validateDataFields(rowType);
     }
 
     @Test

Reply via email to