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

Reply via email to