Gabriel39 opened a new pull request, #68548:
URL: https://github.com/apache/doris/pull/68548

   ### What problem does this PR solve?
   
   Iceberg Parquet writes copy the encoded Parquet decimal min/max statistics 
directly into manifest bounds. For example, the unscaled value 128 can be 
written as `00000080` instead of `0080`. These padded bounds do not follow 
[Iceberg's single-value 
serialization](https://iceberg.apache.org/spec/#appendix-d-single-value-serialization),
 which requires the minimal signed big-endian representation.
   
   Normalize DECIMAL bounds after merging row-group statistics. Preserve the 
necessary sign byte and convert integer physical representations from little 
endian. Other logical types retain their existing encoding.
   
   Add writer unit coverage for precisions 1–38 and sign boundaries, an Iceberg 
write regression for DECIMAL32/64/128 metadata and filtered reads, and refresh 
the existing Parquet statistics expectations.
   
   ### Release note
   
   Fix Iceberg Parquet DECIMAL manifest bounds to use the minimal signed 
big-endian encoding required by the Iceberg specification.
   
   Validation: ASAN BE/FE build succeeded; all 4 writer unit tests and both 
Iceberg regression suites passed. The new unit test fails with the original 
implementation and passes with the fix. clang-format 16, clang-tidy, and build 
hygiene checks passed.
   
   ### Check List (For Author)
   
   - Test:
     - [x] Regression test: `test_iceberg_write_decimal_bounds`, 
`test_iceberg_write_stats2`
     - [x] Unit Test: `VParquetWriterTest.*`
   - Behavior changed:
     - [x] Yes. Newly written Parquet DECIMAL bounds omit redundant 
sign-extension bytes while preserving their values.
   - Does this need documentation?
     - [x] No.
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label
   


-- 
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]

Reply via email to