kevinjqliu commented on issue #1493:
URL:
https://github.com/apache/iceberg-python/issues/1493#issuecomment-2596312706
Interesting that its not available in the java implementation.
> Do you think we need to raise an issue there as well?
We can. I guess it hasn't been an issue over there. Most likely people are
using the work around you described above.
> Can I please also have a bit more clarification on what do you mean by
"modify pending updates" in this example? Thanks!
yes, so
```
with table.update_schema() as update:
update.add_column("details", StructType())
update.add_column(("details", "confirmed_by"), StringType(), "Name of
the exchange")
```
`UpdateSchema` appends the column to its own internal fields.
https://github.com/apache/iceberg-python/blob/50c33aa0119d9e2478b3865d864ec23a7c45b1d7/pyiceberg/table/update/schema.py#L223-L228
There's some logic to [lookup the
parent](https://github.com/apache/iceberg-python/blob/50c33aa0119d9e2478b3865d864ec23a7c45b1d7/pyiceberg/table/update/schema.py#L184-L211),
but its based on the current schema. This ignores the columns already added to
`UpdateSchema`
So the next `add_column` statement cannot find the parent `details` field,
because its in `UpdateSchema's _adds` field and not in the table schema
--
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]