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

   ## What does this PR do?
   
   Align PyPaimon's existing executable temporal schema changes with Java and 
validate the same operations through Native reads:
   
   - TIMESTAMP ↔ TIMESTAMP_LTZ applies the process local zone, including Java's 
gap/overlap resolution.
   - TIMESTAMP/TIMESTAMP_LTZ → DATE/TIME uses Java date/time arithmetic.
   - DATE → TIMESTAMP_LTZ uses local midnight.
   - BIGINT → TIMESTAMP_LTZ uses epoch seconds and Java signed millisecond 
overflow.
   - Cross-kind casts apply declared precision after zone conversion and 
preserve supported submillisecond values.
   
   The existing Python path accepted these schema changes, but generic Arrow 
casts did not implement Java's local-zone semantics. Under Asia/Shanghai, LTZ 
epoch 0 must become ordinary TIMESTAMP 08:00:00; the opposite conversion must 
produce -28800000 LTZ milliseconds.
   
   Shared integer calendar and timezone helpers avoid duplicate behavior with 
temporal string rendering. Python bindings remain unchanged; Native execution 
uses the Rust core conversion executor.
   
   ## Dependency
   
   Depends on https://github.com/apache/paimon-rust/pull/1117. The Native CI 
job continues building upstream Rust `main`; this PR is draft until the Rust 
change is merged.
   
   ## How was this tested?
   
   - Java golden output regressions for NULLs, slices, ChunkedArray, 
negative/wide timestamps, declared precision and DST transitions.
   - REST Native tests for append, PK and data-evolution tables, old/new 
Parquet files, predicates, nested ROW/ARRAY/MAP leaves, selected MAP values and 
mixed wide/NULL batches.
   - 124 focused Python casting/string tests.
   - 222 existing/new Native schema-evolution regressions with 
PLAN/READ/WRITE/COMMIT enabled under UTC.
   - New Native temporal tests also exercised under America/New_York and 
Asia/Shanghai.
   - Changed Python files pass Flake8 and Python 3.6 grammar checks.
   
   - Final new Native suite: 31 cases passed in each of UTC, America/New_York 
and Asia/Shanghai (73 native plans/reads, 49 native writes/commits per process).
   - Independent core/Python reviews completed; the discovered UTC-output 
library-boundary issue was fixed and revalidated against Java.
   


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