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

   ## Purpose
   
   Use Native for additional existing PyPaimon write/update operations, and 
align partition overwrite/truncate input semantics with current Java.
   
   Depends on https://github.com/apache/paimon-rust/pull/1170 for manifest 
codecs and exact numeric timestamp partition specs.
   
   ## Native routing
   
   - Accept fully NULL source upsert key columns even when their physical Arrow 
type differs from the target. Handle selected NULL dictionary values and ignore 
unreferenced dictionary payloads. Compatible types retain their existing fast 
path; non-NULL mismatches and unsupported Pure Arrow kernels retain their 
previous qualification rules.
   - Allow whole-partition predicate DELETE on PK tables configured with 
changelog production. Keep row-level update/delete restrictions and canonical 
predicate validation.
   
   ## Commit semantics
   
   - Share private declared-type partition-spec conversion between static 
overwrite and truncate. Cover numeric bounds, DECIMAL rounding/overflow, Java 
Unicode digits, ASCII trimming, temporal precision, system-local LTZ semantics 
and default NULL partitions.
   - Preserve Java's numeric TIMESTAMP(0) overflow remainder so a spec cannot 
accidentally target an unrelated whole-second partition.
   - Keep malformed specs and mismatched prepared writes from publishing 
snapshots; preserve their files.
   - Update the existing partition-predicate mock to explicitly represent an 
absent index manifest.
   
   ## Regression coverage
   
   - Real REST Pure/Native cases cover typed specs, refused specs without 
publication/deletion, NULL-key upserts and input-changelog PK partition 
deletion.
   - Parquet table tests cover bzip2/xz manifest history across Pure seed 
commits, stream append, lost publication responses, HASH indexes, changelogs, 
overwrite, truncate and historical reads. Native planning/reading/commit 
fallback is prohibited in the corresponding cases.
   - Final affected write/update/commit suites: 389 passed, 324 skipped, 12 
subtests passed. Changed Python files pass the project Flake8 configuration and 
Python 3.6 syntax checks.
   
   Native-dependent cases are skipped in the local runtime. No Native extension 
was rebuilt or installed. This PR remains draft until its Rust companion 
merges; Native CI continues to build Rust main.
   


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