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]
