HonahX commented on issue #737: URL: https://github.com/apache/iceberg-python/issues/737#issuecomment-2123759077
Hi @syun64 @chinmay-bhat. Thank you for driving these features. I saw some PRs raised by @chinmay-bhat : #748, #750, #758. Those are great! I would like to discuss what APIs we want to expose to users. I am actually leaning toward removing `set_ref_snapshot` from public API. The reason is that `set_ref_snapshot` itself requires too many details from users and thus error-prone. It shall sit behind APIs like `rollback_to_snapshot`, `create_tag`, `cherryPick` which have more specific functionality and simpler to use. We may also want to group these APIs into a class (e.g. `ManageSnapshots`), like the [java implementation](https://github.com/apache/iceberg/blob/70b7aa534b2c79ccd7b6c0e0fd1be980772bb20a/api/src/main/java/org/apache/iceberg/ManageSnapshots.java#L44-L57). So the resulting user experience with these APIs will be ```python with table.transaction() as txn: ... other updates with txn.manage_snapshots() as ms: ms.createTag("Tag_A", 0) ms.createTag("Tag_B", 1) ``` We could also keep `table.createTag` for convenience. Similar to the usage of [UpdateSchema](https://py.iceberg.apache.org/api/#schema-evolution). What do you think about this? Appreciate any thoughts and suggestions! Also kindly looping @Fokko to this thread. -- 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: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org