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

   ## Summary
   
   Align inline Blob storage and partial updates with Java Paimon, and unblock 
the corresponding PyPaimon Native operations.
   
   - Honor Java's `blob.stored-descriptor-fields` fallback, including 
canonical-key precedence and empty overrides. Validate alias-configured 
descriptor inputs before staging files.
   - Preserve descriptor declarations when adding columns through directives, 
clean up declarations on drop, and restore historical Blob/View declarations as 
canonical/fallback groups during time travel.
   - Preserve explicit option overrides across copies; discard their provenance 
when a branch or caller-resolved schema replaces the complete options.
   - Allow Blob View reference updates alongside descriptor updates. Preserve 
unresolved references for unmatched rows without opening upstream tables or 
payload files.
   - Treat Blob View fields as inline Parquet providers in multi-file Data 
Evolution merges and prescans, including descriptor predicates.
   - Share Java's normal-file `write_cols` omission rule between append and 
update writers.
   
   Business logic stays in Rust core. This introduces no dependencies or 
binding API changes.
   
   ## Verification
   
   - `cargo fmt --all -- --check`
   - `cargo clippy --locked --all-targets --workspace --features 
fulltext,vortex -- -D warnings`
   - `cargo test --locked -p paimon --test table_update_test`: 27 passed.
   - `cargo test --locked -p paimon --lib blob`: 198 passed.
   - `cargo test --locked -p paimon --lib table::data_evolution_reader`: 82 
passed.
   - `cargo test --locked -p paimon --lib spec::schema`: 139 passed.
   - REST Blob View regression: passed, including reference updates, NULLs, 
merged partial files and LIMIT.
   - Rebuilt the Python binding and ran binding update/VARIANT tests: 10 passed.
   - End-to-end PyPaimon Native update/Blob/VARIANT suites against this 
binding: 651 passed; Native paths were instrumented and Python update/read 
fallbacks were blocked in the new Native cases.
   
   The regressions cover canonical/fallback/View layouts, Arrow chunks, 
incremental updates, upsert/delete, malformed-input cleanup, historical schema 
changes and branch transitions.


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