kevinjqliu commented on issue #1505:
URL: 
https://github.com/apache/iceberg-python/issues/1505#issuecomment-2583565807

   Hey @jiakai-li thanks for raising this issue! 
   The root cause is the same as the one i raised in #1253 and #1497
   
   Specifically, when using UpdateSchema as a "transaction" and a context 
manager, I expect the transaction to be atomic
   ```
   with table.update_schema() as update:
       update.add_column("field_should_not_exist", IntegerType())
       raise Exception("Error!")
   ```
   This example shows that the first `add_column` is processed, even though the 
transaction errored and should not apply any updates. 
   
   The core issue is from setting Transaction's `autocommit=True` in 
`UpdateSchema` 
([source](https://grep.app/search?q=autocommit%3DTrue&filter[repo][0]=apache/iceberg-python))
   This will cause every update to be "applied"/"flushed" as soon as possible 
([source](https://github.com/apache/iceberg-python/blob/a95f9ee6e231104319c01493cb3ada59d9e782d0/pyiceberg/table/__init__.py#L249-L270))
   
   


-- 
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