JingsongLi opened a new pull request, #1179: URL: https://github.com/apache/paimon-rust/pull/1179
### Purpose Align existing Python Native write/update behavior with current Java, preserving logical NOT NULL constraints while allowing valid deduplicate DELETE records and unused update inputs. ### Changes - Derive a nullable physical KV value schema for deduplicate tables without cross-partition updates, matching `PrimaryKeyFileStoreTable.store()`. Preserve primary-key/sequence fields and the logical table schema. - Preserve physical root nullability in the Paimon fields supplied to the Parquet writer, including data and INPUT changelog files. Preserve field IDs, descriptions, defaults and nested nullability. - Resolve row kinds and enforce logical top-level NOT NULL checks before the optional row-kind filter, including when no ignore option is enabled. Other merge engines and cross-partition writes retain strict checks. - Reuse the existing write-input Arrow importer for update/upsert/MERGE sources. Preserve actual NULLs, sliced buffers and metadata until Core selects target payloads; selected target constraints remain enforced in Core. - Update the existing invalid-row-kind test to assert rejection at write time and no staged output. ### Verification - New retained-delete integration suite: 3 passed. Covers explicit/configured row kinds, STRING/LargeString, automatic/precomputed buckets, separate INSERT and DELETE commits, sequence ordering, physical Parquet root fields, INPUT changelogs, value predicates that must not resurrect deleted rows, managed BLOB files, and required-field/other-engine/cross-partition negatives. - Existing filtered-write integration suite: 4 passed. - Python-binding Rust library: 103 passed. New source-transport and real upsert tests first fail on the old importer, then pass, including discarded duplicate values and invalid selected target NULLs. - Rust core library, pinned Rust 1.98.0 core/binding all-target Clippy with `-D warnings`, rustfmt and diff checks. - Current Java reference tests `TableWriteTest.testDeduplicateDeleteWithPrimaryKeyOnly` and `testDeleteRequiresSequenceField`: 2 passed. - Companion Python regressions cover ordinary/dedicated-BLOB target constraints, physical schema flags, and real commit/read results. Local Python tests did not rebuild or install the Native extension. No new dependency, public API, version probe or commit-failure cleanup is introduced. -- 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]
