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]

Reply via email to