diff --git a/mkdocs/docs/api.md b/mkdocs/docs/api.md index eaffb84a54..f193bd7c21 100644 --- a/mkdocs/docs/api.md +++ b/mkdocs/docs/api.md @@ -951,8 +951,12 @@ Using `add_column` you can add a column, without having to worry about the field with table.update_schema() as update: update.add_column("retries", IntegerType(), "Number of retries to place the bid") # In a struct - update.add_column("details.confirmed_by", StringType(), "Name of the exchange") + update.add_column("details", StructType()) + +with table.update_schema() as update: + update.add_column(("details", "confirmed_by"), StringType(), "Name of the exchange") ``` +A complex type must exist before columns can be added to it. Fields in complex types are added in a tuple. ### Rename column @@ -961,20 +965,21 @@ Renaming a field in an Iceberg table is simple: ```python with table.update_schema() as update: update.rename_column("retries", "num_retries") - # This will rename `confirmed_by` to `exchange` - update.rename_column("properties.confirmed_by", "exchange") + # This will rename `confirmed_by` to `processed_by` in the `details` struct + update.rename_column(("details", "confirmed_by"), "processed_by") ``` ### Move column -Move a field inside of struct: +Move order of fields: ```python with table.update_schema() as update: update.move_first("symbol") + # This will move `bid` after `ask` update.move_after("bid", "ask") - # This will move `confirmed_by` before `exchange` - update.move_before("details.created_by", "details.exchange") + # This will move `confirmed_by` before `exchange` in the `details` struct + update.move_before(("details", "confirmed_by"), ("details", "exchange")) ``` ### Update column @@ -1006,6 +1011,8 @@ Delete a field, careful this is a incompatible change (readers/writers might exp ```python with table.update_schema(allow_incompatible_changes=True) as update: update.delete_column("some_field") + # In a struct + update.delete_column(("details", "confirmed_by")) ``` ## Partition evolution