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]
