JingsongLi opened a new pull request, #1180: URL: https://github.com/apache/paimon-rust/pull/1180
## What changes Close verified gaps in the existing PyPaimon Native write/update path, using current Java behavior. - Support `rowkind.field` on append and data-evolution tables, including CHAR/VARCHAR fields. Check required values before filtering; reject surviving DELETE/UPDATE_BEFORE events; honor `ignore-delete` and `ignore-update-before` before routing or materializing Blob inputs. Keep append files free of KV system fields. - Accept `rowkind.field` with INPUT changelogs for primary-key tables and preserve the exact generated events. Resolve the event column once per batch and preserve its identity through reordered write types. - Allow row-ID, predicate, shard, DELETE and matched-only MERGE operations over historical read views. Partial files retain their historical schema/field IDs and messages retain the captured snapshot as the conflict baseline. Captured empty views stay empty. - Match updated columns to global-index metadata by field identity from each file's schema. Handle renamed columns, dropped/readded names, extra indexed fields and complete-row updates with omitted `write_cols`. Ordinary write/commit entry points, upserts and MERGE clauses which can INSERT continue to reject historical handles. Publish historical update messages through a current table. No new public API or dependency. ## Java references - `AppendOnlyFileStoreTable.newWrite`, `TableWriteImpl.writeAndReturn`, `RowKindGenerator`, `RowKindFilter`, and `AppendOnlyWriter.write`. - Spark `MergeIntoPaimonDataEvolutionTable.withMatchedUpdateScanOptions`, partial update write type, captured read snapshot and global-index update policy. ## Verification - Reproduced append acceptance/schema guards and renamed index-policy failures before their fixes. - Rust 1.98.0 Core library: **4320 passed, 7 ignored**. - Append, historical update, filtered input and retained-delete integrations: **17 passed**. - Python binding library (embedded Python; no extension installation): **104 passed**. - Rust 1.98.0 Core and Python binding Clippy, all targets, `-D warnings`. - `cargo fmt --all -- --check` and diff checks. The companion Python PR retains Native CI's Rust main build; it will depend on this PR. -- 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]
