apache / apache/parquet-java

`MessageTypeParser.parseMessageType()` Fails to Parse Valid Parquet Schemas with Special Characters in Field Names

Open
#3,145 3 comments 0 reactions 0 assignees View on GitHub
Type: bug
Dominant language
Java
Stars
3.1k
Forks
1.6k
Avg merge
3d 12h
Merged PRs (30d)
33

Description

### Describe the bug, including details regarding any error messages, version, and platform.

The MessageTypeParser.parseMessageType(String) method fails when parsing Parquet schemas containing field names with special characters such as "name=id" or "first name". These field names are valid in Parquet schema definitions and Parquet files successfully support them. However, parseMessageType throws an error or fails to deserialize such schemas back into a valid MessageType object.

Steps to Reproduce:
Create a valid Parquet schema with a field name like name=id or first name.
Convert it to a string using .toString().
Attempt to parse it back using MessageTypeParser.parseMessageType(parquetSchema.toString()).

Suggested Fix:
Enhance MessageTypeParser to properly handle and deserialize field names containing special characters, ensuring compliance with the Parquet specification.

### Component(s)

_No response_

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with MessageTypeParser.parseMessageType(String) and reproduce the round-trip using a valid Parquet schema whose field name contains "name=id" or "first name". Done means the schema string produced by toString() parses back into an equivalent valid MessageType without an error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
data-engineering
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.