| commit | 76cdf280231bf27ea888de15507d918392f08d44 | [log] [tgz] |
|---|---|---|
| author | Aditya Subrahmanyan <aditya.subrahmanyan@gmail.com> | Wed Jan 07 18:20:43 2026 -0800 |
| committer | GitHub <noreply@github.com> | Thu Jan 08 10:20:43 2026 +0800 |
| tree | 8acc4ba9fdfe8e8e6ce6fa56bf5dd3a3af437ec9 | |
| parent | 700e62e00009a781cab5c8d321eb94173dfe7676 [diff] |
fix: Use correct byte representation for decimal hashing (#1998) ## Which issue does this PR close? - Closes #1981. ## What changes are included in this PR? The [spec](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements) states that: >"Decimal values are hashed using the minimum number of bytes required to hold the unscaled value as a two's complement big-endian". Prior to this fix, we would incorrectly consume leading `0xFF` bytes and hash them. Now, we only consume the bytes starting with the one that is used to preserve the sign, and everything that follows it. ## Are these changes tested? Added unit tests for original scenario mentioned in the issue, as well as some additional cases
Rust implementation of Apache Iceberg™.
The Apache Iceberg Rust project is composed of the following components:
| Name | Release | Docs |
|---|---|---|
| iceberg | ||
| iceberg-datafusion | ||
| iceberg-catalog-glue | ||
| iceberg-catalog-hms | ||
| iceberg-catalog-rest |
The features that Iceberg Rust currently supports can be found here.
Iceberg Rust is built and tested with stable rust, and will keep a rolling MSRV(minimum supported rust version). At least three months from latest rust release is supported. MSRV is updated when we release iceberg-rust.
Check the current MSRV on crates.io.
Apache Iceberg is an active open-source project, governed under the Apache Software Foundation (ASF). Iceberg-rust are always open to people who want to use or contribute to it. Here are some ways to get involved.
The Apache Iceberg community is built on the principles described in the Apache Way and all who engage with the community are expected to be respectful, open, come with the best interests of the community in mind, and abide by the Apache Foundation Code of Conduct.
Licensed under the Apache License, Version 2.0