JingsongLi commented on PR #957: URL: https://github.com/apache/paimon-rust/pull/957#issuecomment-5935757145
Requirement fit: SUPPORTED. Implementation: FINDINGS. [P2] Normalize nullable _VALUE_KIND consistently across mixed batches (`crates/paimon/src/table/table_write.rs:638`). On a PK partial-update table with remove-record-on-delete=true, write an ordinary batch without _VALUE_KIND, then a batch with nullable Int8 _VALUE_KIND containing NULL, into the same bucket. Both inputs are accepted and existing kind handling defines NULL as Insert. The new normalization adds a nonnullable kind field to the first batch, while validation retains the nullable field in the second. prepare_commit then fails: "Column '_VALUE_KIND' is declared as non-nullable but contains null values". An exact baseline table_write.rs control successfully writes, commits and reads IDs [1,2] for the same inputs. Canonicalize the kind schema for every buffered batch while preserving null-as-Insert semantics (or replace accepted null kinds with Insert before buffering); add this mixed-input regression test. A temporary consistent nullable-field control makes the complete p robe pass. Validation at 8afbe404a749157e92cd0ca920b81bb7854711aa: all 82 existing partial-update tests pass, including actual write/commit/read, explicit rowkind.field, DV and sequence-group paths. The ordinary mixed Insert/DELETE fix has concrete value: an exact baseline control leaves (1,40) after the delete, while this head correctly returns no row. The additional nullable-kind case above fails only on the head. Independent normalization/caller/config review found no other issue; current-main merge-tree and all 14 head CI checks are clean. -- 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]
