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

gangwu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/parquet-java.git


The following commit(s) were added to refs/heads/master by this push:
     new 32a484a88 MINOR: Fix display of logicalTypeAnnotation for parquet cli 
(#3184)
32a484a88 is described below

commit 32a484a88bf54666fd1c70c71c96dc39f941040b
Author: Cheng Pan <[email protected]>
AuthorDate: Tue Apr 29 02:07:29 2025 +0000

    MINOR: Fix display of logicalTypeAnnotation for parquet cli (#3184)
---
 .../java/org/apache/parquet/cli/util/RawUtils.java | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git 
a/parquet-cli/src/main/java/org/apache/parquet/cli/util/RawUtils.java 
b/parquet-cli/src/main/java/org/apache/parquet/cli/util/RawUtils.java
index 2e9e14755..f925e9790 100644
--- a/parquet-cli/src/main/java/org/apache/parquet/cli/util/RawUtils.java
+++ b/parquet-cli/src/main/java/org/apache/parquet/cli/util/RawUtils.java
@@ -22,9 +22,14 @@ import static 
org.apache.parquet.bytes.BytesUtils.readIntLittleEndian;
 import static org.apache.parquet.hadoop.ParquetFileWriter.EFMAGIC;
 import static org.apache.parquet.hadoop.ParquetFileWriter.MAGIC;
 
+import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.module.SimpleSerializers;
 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import java.io.IOException;
 import java.io.InputStream;
@@ -34,6 +39,7 @@ import org.apache.parquet.bytes.ByteBufferInputStream;
 import org.apache.parquet.format.FileMetaData;
 import org.apache.parquet.format.Util;
 import org.apache.parquet.io.SeekableInputStream;
+import org.apache.parquet.schema.LogicalTypeAnnotation;
 
 public class RawUtils {
 
@@ -79,6 +85,27 @@ public class RawUtils {
     mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
     mapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true);
     mapper.registerModule(new JavaTimeModule());
+    mapper.registerModule(new ParquetModule());
     return mapper;
   }
+
+  static class ParquetModule extends SimpleModule {
+
+    @Override
+    public void setupModule(SetupContext context) {
+      super.setupModule(context);
+      SimpleSerializers sers = new SimpleSerializers();
+      sers.addSerializer(LogicalTypeAnnotation.class, new 
LogicalTypeAnnotationJsonSerializer());
+      context.addSerializers(sers);
+    }
+  }
+
+  static class LogicalTypeAnnotationJsonSerializer extends 
JsonSerializer<LogicalTypeAnnotation> {
+
+    @Override
+    public void serialize(LogicalTypeAnnotation value, JsonGenerator gen, 
SerializerProvider serializers)
+        throws IOException {
+      gen.writeString(value.toString());
+    }
+  }
 }

Reply via email to