apache / apache/parquet-java

Add integration tests for all `parquet-testing` files

オープン
#3,670 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
3.1k
フォーク
1.6k
平均マージ
3日 12時間
マージ済み PR(30日)
33

説明

## 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)

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

parquet-hadoop/src/test/java/org/apache/parquet/hadoop/InterOpTester.java から始め、選択された parquet-testing ファイルをどのようにダウンロードしてテストしているかを確認します。既存の相互運用性テストを実行し、その後、固定された parquet-testing リビジョン内のすべてのファイルを有効なケースまたは無効なケースに分類します。すべてのファイルが個別に報告され、有効なファイルは正常に読み込まれ、無効なファイルは想定どおりに失敗し、未分類のファイルがテストを失敗させれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
testing-qa
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
55/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。