Skip to content

Commit 6354c0d

Browse files
committed
skip base schema
1 parent fddc9f4 commit 6354c0d

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

pyiceberg/schema.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,6 @@ def __len__(self) -> int:
111111

112112
def __eq__(self, other: Any) -> bool:
113113
"""Return the equality of two instances of the Schema class."""
114-
if not other:
115-
return False
116-
117114
if not isinstance(other, Schema):
118115
return False
119116

pyiceberg/table/__init__.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -984,9 +984,10 @@ def _(update: AddSchemaUpdate, base_metadata: TableMetadata, context: _TableMeta
984984
if update.last_column_id < base_metadata.last_column_id:
985985
raise ValueError(f"Invalid last column id {update.last_column_id}, must be >= {base_metadata.last_column_id}")
986986

987+
skip_empty_schema = base_metadata.schemas == [Schema()]
987988
metadata_updates: Dict[str, Any] = {
988989
"last_column_id": update.last_column_id,
989-
"schemas": base_metadata.schemas + [update.schema_],
990+
"schemas": [update.schema_] if skip_empty_schema else base_metadata.schemas + [update.schema_],
990991
}
991992

992993
context.add_update(update)
@@ -1127,9 +1128,20 @@ def _(update: SetSnapshotRefUpdate, base_metadata: TableMetadata, context: _Tabl
11271128
return base_metadata.model_copy(update=metadata_updates)
11281129

11291130

1131+
@_apply_table_update.register(RemoveSnapshotRefUpdate)
1132+
def _(update: RemoveSnapshotRefUpdate, base_metadata: TableMetadata, context: _TableMetadataUpdateContext) -> TableMetadata:
1133+
# (TODO) actually implement this
1134+
context.add_update(update)
1135+
return base_metadata
1136+
1137+
1138+
11301139
@_apply_table_update.register(AddSortOrderUpdate)
11311140
def _(update: AddSortOrderUpdate, base_metadata: TableMetadata, context: _TableMetadataUpdateContext) -> TableMetadata:
11321141
context.add_update(update)
1142+
if update.sort_order == UNSORTED_SORT_ORDER:
1143+
# no op
1144+
return base_metadata
11331145
return base_metadata.model_copy(
11341146
update={
11351147
"sort_orders": base_metadata.sort_orders + [update.sort_order],

0 commit comments

Comments
 (0)