nazq commented on PR #2563:
URL: https://github.com/apache/iceberg-rust/pull/2563#issuecomment-4604014771
Thanks for pointing at #2451, @TwinklerG — I went and read through it
carefully.
After studying both PRs, I think your refactor is the more architecturally
sound long-term direction. The operations-buffer-then-`schema_update` shape is
what lets `UpdateSchemaAction` correctly model dependent operations
(rename-then-update, add-then-make-required, etc.) — and it's the shape that
mirrors what @Fokko built in PyIceberg's `UpdateSchema` and the Java
`SchemaUpdate`, which is exactly what #697 asks for. The current `add_column` /
`delete_column` style from #2120 can't grow into that without a breaking
change, so paying the API churn cost once now is the right call.
To make that easier, I've **updated this PR to use the `RenameColumn`
typed-builder shape from your #2451**, so the user-facing call is now identical
between the two:
```rust
action.rename(RenameColumn::builder().name("old").new_name("new").build())
```
That way this PR functions as a clean stepping stone: callers adopting it
today won't need a source change when #2451 lands — only the dispatch
underneath `.rename()` changes (imperative-vec → operations-buffer). If
maintainers want a lighter incremental win now, this PR is ready; either way,
**#2451 is the destination**.
We've been carrying this on a fork for a downstream consumer; happy to
migrate to #2451's full API as soon as it merges. If contributing test coverage
for any of your `#[ignore = "not yet implemented"]` cases would help land it
faster, let me know which ones — we have real-world data for case-insensitive
resolution and decimal-precision widening that could plug in.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]