From 53b0271d654901c2fc2c89ad56fbf470d6988fe4 Mon Sep 17 00:00:00 2001 From: Peter Franzen Date: Thu, 15 May 2025 14:05:49 +0200 Subject: [PATCH 1/2] GH-3215: Sort the list of org.apache.parquet.format.Encoding created by org.apache.parquet.format.converter.ParquetMetadataConverter::toFormatEncodings --- .../format/converter/ParquetMetadataConverter.java | 4 +++- .../converter/TestParquetMetadataConverter.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/format/converter/ParquetMetadataConverter.java b/parquet-hadoop/src/main/java/org/apache/parquet/format/converter/ParquetMetadataConverter.java index 60150439a6..3597898c30 100644 --- a/parquet-hadoop/src/main/java/org/apache/parquet/format/converter/ParquetMetadataConverter.java +++ b/parquet-hadoop/src/main/java/org/apache/parquet/format/converter/ParquetMetadataConverter.java @@ -703,11 +703,13 @@ private void addRowGroup( rowGroups.add(rowGroup); } - private List toFormatEncodings(Set encodings) { + // Visible for testing + List toFormatEncodings(Set encodings) { List converted = new ArrayList(encodings.size()); for (org.apache.parquet.column.Encoding encoding : encodings) { converted.add(getEncoding(encoding)); } + Collections.sort(converted); return converted; } diff --git a/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java b/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java index 264017a1f0..ae015e56bc 100644 --- a/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java +++ b/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java @@ -759,6 +759,20 @@ public void testEncodingsCache() { assertEquals("java.util.Collections$UnmodifiableSet", res3.getClass().getName()); } + @Test + public void testEncodingsOrder() { + ParquetMetadataConverter parquetMetadataConverter = new ParquetMetadataConverter(); + + Set columnEncodings = + new HashSet<>(Arrays.asList(org.apache.parquet.column.Encoding.values())); + + // Assert that the encodings are returned in ascending ordinal order + List formatEncodings = parquetMetadataConverter.toFormatEncodings(columnEncodings); + for (int i=1; i Date: Fri, 6 Mar 2026 09:45:25 +0100 Subject: [PATCH 2/2] GH-3215: Reformat test case to address format violations failures. --- .../format/converter/TestParquetMetadataConverter.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java b/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java index ae015e56bc..e4851d8ec4 100644 --- a/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java +++ b/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java @@ -767,9 +767,11 @@ public void testEncodingsOrder() { new HashSet<>(Arrays.asList(org.apache.parquet.column.Encoding.values())); // Assert that the encodings are returned in ascending ordinal order - List formatEncodings = parquetMetadataConverter.toFormatEncodings(columnEncodings); - for (int i=1; i formatEncodings = + parquetMetadataConverter.toFormatEncodings(columnEncodings); + for (int i = 1; i < formatEncodings.size(); i++) { + assertTrue(formatEncodings.get(i - 1).ordinal() + < formatEncodings.get(i).ordinal()); } }