Pandas886 opened a new pull request, #507: URL: https://github.com/apache/paimon-rust/pull/507
### Purpose Linked issue: close #502 I ran into the current fail-loud path when trying to write CDC-style rows with a user op column (`rowkind.field`). Java already supports this, and the Rust option is parsed but writing still rejects it. This PR wires up the write path for **deduplicate** PK tables. ### Brief change log - Add short-string `RowKind` parsing (`+I` / `-U` / `+U` / `-D`, case-insensitive) - Introduce `RowKindGenerator` to map a STRING column onto internal `_VALUE_KIND` - Schema checks: PK table, deduplicate only, field exists and is unbounded STRING, reject bad combos - `TableWrite` enrich step: convert row kinds, optionally drop retracts via `ignore-delete` / `ignore-update-before` - Reject batches that already contain `_VALUE_KIND` when `rowkind.field` is set (fail loud, no silent override) - Integration tests for the main happy paths + illegal tokens / conflict cases I deliberately left other merge engines alone — they still get a clear validation error if someone sets `rowkind.field` there. ### Tests Locally: ```bash cargo test -p paimon --test rowkind_field_test cargo test -p paimon row_kind cargo fmt --all -- --check cargo clippy -p paimon --all-targets --features fulltext,vortex -- -D warnings ``` All green on my machine. ### API and Format - Public API: short-string helpers on `RowKind`, plus the existing `rowkind.field` option now actually works on write - Storage format: unchanged (still writes normal PK files with `_VALUE_KIND`) ### Documentation No user-facing docs update in this PR. Happy to add a short note to the write docs if reviewers want it. ### Notes This is independent of the incremental-read PR stack I also opened. Review can land in either order. -- 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]
