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

   ## Summary
   
   Enable Java-aligned Blob and VARIANT updates through PyPaimon's Native core 
APIs.
   
   - Decouple Native update admission from the Python plain-Parquet update 
optimization.
   - Enable ordinary-column row-ID/predicate updates, upsert and deletion on 
tables containing dedicated Blob columns.
   - Enable descriptor and Blob View partial updates, including incremental 
Arrow, Row/Rows and batch/stream APIs.
   - Keep raw Blob payload updates on the existing row-aware implementation; 
incremental operations choose one implementation before any staging.
   - Honor Java's `blob.stored-descriptor-fields` fallback and restore 
descriptor option groups consistently during historical schema resolution.
   - Fix the Python updater to preserve inline references and write them to 
Parquet; share Blob/BlobView row-object serialization with the ordinary writer 
without opening payload streams.
   - Enable shredded VARIANT updates through Native core. Remove the 
Python-only `variant.shredding.enabled` switch: Java applies a configured 
shredding schema and reassembles physical VARIANT values independently of that 
option.
   
   ## Dependency and CI
   
   Depends on https://github.com/apache/paimon-rust/pull/1039. This PR is draft 
until that Rust core change is merged.
   
   The Native CI continues to build **apache/paimon-rust@main**. No fork or 
branch pin is introduced. Local validation uses a binding built from the linked 
Rust PR.
   
   ## Verification
   
   - Relevant update, nested update, branch, Blob, VARIANT, schema-evolution 
and column-directive suites with all five Native flags enabled: **1117 
passed**, 3 skipped, 99 subtests passed.
   - Final Native update + new Blob/VARIANT tests + complete Blob table suite 
against the updated Rust binding: **651 passed**, 1 subtest passed.
   - Python Blob table suite without Native flags: **94 passed**, 1 subtest 
passed.
   - Flake8 using `dev/cfg.ini` on all changed Python files.
   - Python 3.6 syntax checks and focused mock/streaming/chunked regression 
tests; Python 3.6 runtime is not installed locally.
   
   New regressions cover both Python and Native inline updates, NULL and empty 
payloads, untouched reference preservation, unresolved upstream tables, REST 
View prescans with descriptor predicates/projection/LIMIT, row-object inputs, 
full normal-column metadata, historical aliases, VARIANT overflow, callable 
assignments, upsert and batch/stream behavior.


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