Python: Alter table plumbing and REST support#6323
Conversation
d4b6a5b to
d7c795c
Compare
python/pyiceberg/catalog/rest.py
Outdated
|
|
||
| return self.load_table(to_identifier) | ||
|
|
||
| def _commit(self, *table_requests: CommitTableRequest) -> CommitTableResponse: |
There was a problem hiding this comment.
Do we want to combine these? Why not have separate commit_table and commit_transaction methods? Then we don't need the check that only one request is supported. I also like that you could previously pass requirements and updates to a public method. Are you trying to restrict access to those in the "public" API for some reason?
There was a problem hiding this comment.
+1, given this is called afterwards in Transaction, it feels more nature to call it just commit_table so we an use self._table.catalog.commit_table instead of self._table.catalog._commit
There was a problem hiding this comment.
Yes, thinking of it, that makes sense. Also, the return type is different for a table and a transaction. Thanks!
|
Looks good to me. We can always update the method signature later since this one is internal. I'd merge, but the lock file has conflicts. |
jackye1995
left a comment
There was a problem hiding this comment.
mostly looks good to me, +1 for merging so we can start adding implementations for the other catalogs.
python/pyiceberg/catalog/rest.py
Outdated
|
|
||
| return self.load_table(to_identifier) | ||
|
|
||
| def _commit(self, *table_requests: CommitTableRequest) -> CommitTableResponse: |
There was a problem hiding this comment.
+1, given this is called afterwards in Transaction, it feels more nature to call it just commit_table so we an use self._table.catalog.commit_table instead of self._table.catalog._commit
| ALWAYS_TRUE = AlwaysTrue() | ||
|
|
||
|
|
||
| class Transaction: |
There was a problem hiding this comment.
Do we plan to have another MiltiTableTransaction for transactions across tables?
There was a problem hiding this comment.
I'd rather expect a List[Transaction]
|
Thank @jackye1995 for chiming in here! 🙏🏻 |
The plumbing to do an
table.alter().commit()with actions in between. We can reuse this later on to do multi table commits: