Hi all, Following the discussion thread [1], I'd like to call a vote on the spec clarification in PR #16446 [2].
Summary of the change: - The `day` partition transform's result type in the transform table is changed from `int` to `date`, matching the long-standing default behavior of Java, PyIceberg, Rust, and C++ (all of which write the Avro `date` logical type in manifests). - A note is added clarifying that readers must also accept plain `int` values for the `day` transform, interpreting each as a date in days since 1970-01-01. (Reader tolerance is also inherited from the Avro spec, which requires readers to ignore unrecognized logical-type annotations.) This is a clarification, not a behavioral change: the physical representation (a 4-byte day count) is unchanged, and no existing manifests are affected. It documents what implementations already do and resolves an ambiguity that has been re-litigated several times (issue #16414 [3], and most recently a real interop failure in iceberg-go #1176 [4]). Per the contributor guide, changes under format/ require a vote even for clarifications, hence this thread. The vote will be open for at least 72 hours. [ ] +1 Approve the spec clarification [ ] +0 [ ] -1 Do not approve (please provide reasons) [1] https://lists.apache.org/thread/wnhvdmwc3b1dxc2ogk7po682pky12cps [2] https://github.com/apache/iceberg/pull/16446 [3] https://github.com/apache/iceberg/issues/16414 [4] https://github.com/apache/iceberg-go/pull/1176 Here's my +1 (non-binding). Best, Andrei
