jackylee-ch opened a new pull request, #882:
URL: https://github.com/apache/paimon-rust/pull/882

   `ShreddedValue::Timestamp` is always micros, but the shredded leaf's Arrow 
unit follows the declared precision (MILLIS <4, MICROS 4..=6, NANOS >6). Both 
sides passed the integer through unchanged, so a TIMESTAMP leaf outside 4..=6 
was 1000x off. A NANOS leaf is spec-conforming, so foreign files were mis-read 
too.
   
   Write now scales micros to the leaf unit, flooring into MILLIS, and errors 
on micros beyond i64 nanoseconds (~1677..2262) instead of wrapping. Read keys 
off the array's TimeUnit, so a foreign file decodes from its own schema.
   
   Disclosure: files paimon-rust already wrote outside 4..=6 hold micros under 
a MILLIS/NANOS annotation. They read back correctly only because the reader 
repeated the mistake; after this change they decode 1000x wrong, and nothing in 
the file tells them apart. Only an explicit `variant.shreddingSchema` produces 
such a leaf — inference picks precision 6.
   


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

Reply via email to