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

Reply via email to