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
