apache / apache/parquet-java

Add integration tests for all `parquet-testing` files

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

Description

## Feature request

Add integration tests that run against every Parquet file in the [`apache/parquet-testing`](https://github.com/apache/parquet-testing) repository.

## Problem

`parquet-java` currently [tests only selected files](https://github.com/apache/parquet-java/blob/b6fb9e2f4d08961d32d88ff6e45f454d16c32255/parquet-hadoop/src/test/java/org/apache/parquet/hadoop/InterOpTester.java#L36) from `parquet-testing`. As a result, new interoperability fixtures are not automatically tested, and compatibility regressions may go undetected.

There are already several [`parquet-java` issues involving files from `parquet-testing`](https://github.com/apache/parquet-java/issues?q=is%3Aissue%20state%3Aopen%20parquet%20testing).

## Proposed solution

Add integration tests that classify files into two groups:

- **Valid files:** must open successfully and allow all row groups and columns to be read.
- **Invalid files:** must fail during footer parsing or record decoding with an expected exception.

`InterOpTester` already supports downloading individual files from `parquet-testing`. This feature would extend that approach to provide repository-wide coverage.

## Acceptance criteria

- [ ] Every Parquet file in the pinned revision is classified.
- [ ] All valid files are read successfully.
- [ ] All invalid files fail as expected.
- [ ] Each file is reported as an independent test.
- [ ] Unclassified files cause the test to fail.
- [ ] Exclusions require an explicit entry linked to a tracking issue.

## Related issues

- [#3336: Hadoop parquet reader and parquet CLI fail on some files from `parquet-testing`](https://github.com/apache/parquet-java/issues/3336)
- [#1686: Add integration test for BYTE_STREAM_SPLIT](https://github.com/apache/parquet-java/issues/1686)
- [#3633: Older `parquet-java` readers fail on files with unprojected VARIANT columns](https://github.com/apache/parquet-java/issues/3633)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with parquet-hadoop/src/test/java/org/apache/parquet/hadoop/InterOpTester.java and review how it downloads and tests selected parquet-testing files. Run the existing interoperability tests, then map every file in the pinned parquet-testing revision into valid or invalid cases. Done means all files are independently reported, valid files read successfully, invalid files fail as expected, and unclassified files fail the test.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.