jeppe-dos commented on PR #1433:
URL: https://github.com/apache/iceberg-python/pull/1433#issuecomment-2557064966
> Looks like there might be a bug with this change. I tried to follow the
docs
>
> ```
> from pyiceberg.catalog.sql import SqlCatalog
> from pyiceberg.schema import Schema
> from pyiceberg.types import NestedField, StringType, DoubleType, LongType
>
> warehouse_path = "/tmp/warehouse"
> catalog = SqlCatalog(
> "default",
> **{
> "uri": f"sqlite:///{warehouse_path}/pyiceberg_catalog.db",
> "warehouse": f"file://{warehouse_path}",
> },
> )
>
> schema = Schema(
> NestedField(1, "city", StringType(), required=False),
> NestedField(2, "lat", DoubleType(), required=False),
> NestedField(3, "long", DoubleType(), required=False),
> )
> catalog.create_namespace_if_not_exists("default")
> try:
> catalog.drop_table("default.locations")
> except:
> pass
>
> table = catalog.create_table("default.locations", schema)
>
> # with table.update_schema() as update:
> # # In a struct
> # update.add_column("details.confirmed_by", StringType(), "Name of the
exchange")
>
> with table.update_schema() as update:
> update.add_column(("details", "confirmed_by"), StringType(), "Name of
the exchange")
> ```
>
> errors
>
> ```
>
> Traceback (most recent call last):
> File "<stdin>", line 2, in <module>
> File
"/Users/kevinliu/repos/iceberg-python/pyiceberg/table/update/schema.py", line
192, in add_column
> parent_field = self._schema.find_field(parent_full_path,
self._case_sensitive)
>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/Users/kevinliu/repos/iceberg-python/pyiceberg/schema.py", line
215, in find_field
> raise ValueError(f"Could not find field with name {name_or_id},
case_sensitive={case_sensitive}")
> ValueError: Could not find field with name details, case_sensitive=True
> ```
Yes, the struct has to exist before you can insert anything into it. This
can be adjusted in the code to automatically create the parent. For now, it is
detailed in the documentation changes. Should I write more explicitly?
--
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]