Binary statistics truncation test ignores its configured truncation length
維護者通常 5 天內回覆
評估
- 難度
- 2/5
- 預估耗時
- 1-3 小時
- 新手友好度
- 88/100
- Issue 類型
- 缺陷
- 描述清晰度
- 描述清楚
- 活躍度
- 活躍
- 技術堆疊
- java
- 領域
- testing-qa
研究方向
從 TestParquetMetadataConverter.testBinaryStatsWithTruncation 開始,檢查 helper 使用的 ParquetMetadataConverter 多載。執行這個針對性的測試,將其切換為明確截斷長度多載,並讓斷言涵蓋精確的截斷值,以及嚴格的組合大小邊界:接受 4095 位元組,省略 4096 位元組。
由索引模型根據 Issue 內容生成。
描述
Describe the bug, including details regarding any error messages, version, and platform.
In TestParquetMetadataConverter.testBinaryStatsWithTruncation, the helper creates new ParquetMetadataConverter(truncateLen) but then calls metadataConverter.toParquetStatistics(stats). That method is static and delegates to DEFAULT_STATISTICS_TRUNCATE_LENGTH (Integer.MAX_VALUE), so the requested length never reaches conversion.
The existing assertions do not detect this: unchanged under-limit bounds satisfy the non-strict ordering checks, while oversized inputs are expected to have no bounds, matching the unintended default path. The test therefore does not exercise the finite truncation it describes.
This remains present at master 4b37c193e2f796d553a20cc57ec9835ceaa1c95c. For a deterministic example, minimum a repeated 60 times and maximum b repeated 70 times with length 1 should produce min_value="a" and max_value="c" through the explicit overload. The current helper uses the default overload and leaves those bounds untruncated.
The proposed correction is test-only: call toParquetStatistics(stats, truncateLen), use deterministic exact-byte assertions, and cover the strict 4095-byte accepted/4096-byte omitted combined-size boundary before and after truncation. Constructor validation and current null-count omission behavior remain unchanged.
#3819 addresses null-count serialization in production; this issue concerns a separate gap in truncation-test coverage and does not propose changing that behavior.
Component(s)
Core (parquet-hadoop)
- 主要語言
- Java
- 星號
- 3.1k
- 分支
- 1.6k
- 平均合併
- 4 天 18 小時
- 30 天內合併 PR
- 19
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 沒有貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
apache/parquet-java 的其他 Issue
-
Row-group copying collides for distinct column paths with the same dot string可能已有人在做 @costas-db 於 11 天前認領。 未關閉
難度 2/5 1-3 小時 新手友好度 74/100
apache/parquet-java#3829 ·
維護者通常 5 天內回覆
-
難度 2/5 1-3 小時 新手友好度 82/100
apache/parquet-java#3767 ·
維護者通常 5 天內回覆
-
Remove duplicate LICENSE and NOTICE files from benchmark JARs可能已有人在做 @efegokdemir 於 16 天前認領。 未關閉
難度 2/5 1-3 小時 新手友好度 72/100
apache/parquet-java#3695 · 1 則留言 ·
維護者通常 5 天內回覆
-
Close input readers when ParquetRewriter setup fails可能已有人在做 @anxkhn 於 87 天前認領。 未關閉
難度 2/5 1-3 小時 新手友好度 78/100
apache/parquet-java#3667 ·
維護者通常 5 天內回覆
-
null_count is omitted for large columns in parquet files可能已有人在做 @efegokdemir 於 14 天前認領。 未關閉Type: bug
難度 2/5 1-3 小時 新手友好度 78/100
apache/parquet-java#3574 · 1 則留言 ·
維護者通常 5 天內回覆
查看 apache/parquet-java 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 72/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 72/100
sqlcipher/sqlcipher-android#97 · 1 則留言 ·
-
area-integrations
難度 2/5 1-3 小時 新手友好度 68/100
維護者通常 1 天內回覆
-
bug IIIF interoperability
難度 2/5 1-3 小時 新手友好度 72/100
-
難度 2/5 1-3 小時 新手友好度 72/100