JingsongLi opened a new pull request, #10519:
URL: https://github.com/apache/paimon/pull/10519

   ## What changes
   
   Make existing temporal-to-character schema evolution produce Java's text in 
both Python and Native reads:
   
   - TIME precision follows DateTimeUtils' digit loop, including `.0` at whole 
seconds.
   - TIMESTAMP uses a space separator, declared minimum fractional width, and 
exact nanosecond digits.
   - TIMESTAMP_LTZ uses the local time zone without a trailing `Z` or offset.
   - Scalar CHAR/VARCHAR casts apply Java padding/truncation.
   - ARRAY/MAP/ROW string rendering uses the same temporal leaf casts and 
preserves NULL containers/elements.
   - Share formatting with existing row-to-string rendering.
   - Use integer Gregorian dates and Java's signed millisecond/epoch-day rules 
rather than restricting Arrow data to Python datetime's year range.
   
   No new Python capability or public API is introduced. These casts and schema 
changes already existed; this aligns their results with Java and Rust core.
   
   ## Rust dependency
   
   Depends on https://github.com/apache/paimon-rust/pull/1115. This PR is a 
draft until that change is merged. The Native CI continues to build paimon-rust 
from upstream main, so the Rust PR must merge first.
   
   ## Verification
   
   - 195 REST schema-evolution tests passed with Native planning, reading, 
writing and committing enabled: 447 reads, 261 writes and commits.
   - New tests cover Append, primary-key and Data Evolution tables; nested 
ARRAY/MAP/ROW values; predicate reads; CHAR/VARCHAR lengths; pre-epoch values, 
nanoseconds and wide dates.
   - LTZ REST tests passed in UTC, America/New_York and Asia/Shanghai, 
including winter/summer instants.
   - 179 related Python tests and 32 subtests passed: existing schema 
evolution, nested/PK reads, schema manager, row rendering and casting.
   - Changed files passed Flake8 and production code passed Python 3.6 grammar 
validation.
   - Re-ran an 85-combination REST cast probe: no remaining differences among 
the exercised existing Python casts.
   - Checked actual Java CastExecutors for temporal formatting, wide years, 
signed epoch-day narrowing, seconds wrapping and local-zone overflow.
   


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