Skip to content

Commit c09e7e9

Browse files
committed
problem with schema evolution
1 parent 94d288a commit c09e7e9

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

pyiceberg/table/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,9 @@ def _(update: AddSchemaUpdate, base_metadata: TableMetadata, context: _TableMeta
504504
if update.last_column_id < base_metadata.last_column_id:
505505
raise ValueError(f"Invalid last column id {update.last_column_id}, must be >= {base_metadata.last_column_id}")
506506

507+
# PROBLEM: `update.schema_`'s `schema_id` starts with 0 but should be 1
508+
# fresh_schema = assign_fresh_schema_ids(update.schema_)
509+
507510
context.add_update(update)
508511
return base_metadata.model_copy(
509512
update={

tests/catalog/test_base.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,11 @@ def test_commit_table(catalog: InMemoryCatalog) -> None:
371371
NestedField(4, "add", LongType()),
372372
)
373373

374+
assert given_table.metadata.current_schema_id == 0
375+
assert len(given_table.metadata.schemas) == 1
376+
assert given_table.metadata.schemas[0] == TEST_TABLE_SCHEMA
377+
assert given_table.metadata.last_column_id == TEST_TABLE_SCHEMA.highest_field_id
378+
374379
# When
375380
response = given_table.catalog._commit_table( # pylint: disable=W0212
376381
CommitTableRequest(
@@ -384,7 +389,7 @@ def test_commit_table(catalog: InMemoryCatalog) -> None:
384389

385390
# Then
386391
assert response.metadata.table_uuid == given_table.metadata.table_uuid
387-
# assert len(response.metadata.schemas) == 1
392+
assert len(response.metadata.schemas) == 1
388393
# assert response.metadata.schemas[0] == new_schema
389394

390395

0 commit comments

Comments
 (0)