Gabriel39 opened a new pull request, #69967: URL: https://github.com/apache/doris/pull/69967
### What problem does this PR solve? Issue Number: N/A Problem Summary: The native Parquet reader rejects every BOOLEAN dictionary page, although PLAIN dictionaries with RLE_DICTIONARY or legacy PLAIN_DICTIONARY data pages are valid. Reading a nullable BOOLEAN interoperability fixture fails with `Boolean type cannot have a dictionary page`. Create the existing fixed-length dictionary decoder for BOOLEAN and expand its LSB-first packed entries into tracked, contiguous one-byte values for SerDe. Validate the packed extent before allocation and preserve the common dictionary-index checks for reads, selections, and skips. The 257-byte interoperability fixture comes from [StarRocks/starrocks#81788](https://github.com/StarRocks/starrocks/pull/81788). Tests also cover byte boundaries, invalid extents, dictionary replacement, both dictionary encoding enums, V1/V2 pages, skipped/filtered values, and dictionary-to-PLAIN transitions. ### Release note Support reading dictionary-encoded BOOLEAN columns from Parquet files. ### Check List (For Author) - Test - [ ] Regression test - [x] Unit Test: ASAN BE tests; all 199 tests in `ParquetV2NativeDecoderTest.*:NewParquetReaderTest.*` pass. The five new tests fail before the fix and pass after it. - [ ] Manual test - Behavior changed: - [x] Yes. Valid BOOLEAN dictionaries are readable instead of being rejected. - Does this need documentation? - [x] No. Compatibility fix for existing Parquet reads. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
