gitedmond opened a new pull request, #18375:
URL: https://github.com/apache/iceberg/pull/18375

   Pre-epoch timestamps at `.999999` (or `.999999999` for nanoseconds) in the 
first second of a temporal unit can transform into the preceding unit, breaking 
ordering and allowing inclusive partition projection to exclude matching rows. 
Compute seconds and fractional seconds from the same adjusted timestamp to 
preserve calendar boundaries for year, month, day, and hour transforms. 
Previously persisted incorrect partition values are not rewritten or recovered 
by this change; recovery needs separate consideration.
   
   Fixes #18371.
   
   Test plan:
   - Check second rollover and exact boundaries before, at, and after the epoch 
for all four transforms, both precisions, and both timezone variants.
   - Verify a matching timestamp remains eligible under inclusive day-partition 
projection. All 20 regression cases fail on unchanged main and pass with the 
fix.
   - `./gradlew spotlessApply` passed. `./gradlew :iceberg-api:build 
:iceberg-api:checkstyleMain :iceberg-api:checkstyleTest :iceberg-api:revapi` 
passed with Java 17: 1,309 tests passed, one skipped. A temporary init script 
preloaded the existing Byte Buddy agent because container self-attachment is 
unavailable; no repository configuration changed.
   - An independent calendar check across 829,472 transform results found 
43,820 mismatches before and zero after.
   
   ---
   **AI Disclosure**
   - Model: GPT-6
   - Platform/Tool: Codex in ChatGPT Work
   - Human Oversight: unreviewed
   - Prompt Summary: Reproduce #18371, investigate the root cause, implement 
and validate a fix, and open a PR. The conversion changes and regression tests 
were generated by the agent.


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