Skip to content

Commit 8c1dcd6

Browse files
committed
fix: Use keyword argument for RemoveStatisticsUpdate instantiation
Fixes #2558 When removing snapshots with statistics, RemoveStatisticsUpdate was being instantiated with a positional argument, which violates Pydantic's BaseModel requirement that all fields be passed as keyword arguments. This caused a TypeError: BaseModel.__init__() takes 1 positional argument but 2 were given when calling table.maintenance.expire_snapshots(). Changed from: RemoveStatisticsUpdate(statistics_file.snapshot_id) To: RemoveStatisticsUpdate(snapshot_id=statistics_file.snapshot_id) All existing tests pass with this fix.
1 parent a9cb58b commit 8c1dcd6

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

pyiceberg/table/update/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ def _(update: RemoveSnapshotsUpdate, base_metadata: TableMetadata, context: _Tab
530530
if ref.snapshot_id in update.snapshot_ids
531531
)
532532
remove_statistics_updates = (
533-
RemoveStatisticsUpdate(statistics_file.snapshot_id)
533+
RemoveStatisticsUpdate(snapshot_id=statistics_file.snapshot_id)
534534
for statistics_file in base_metadata.statistics
535535
if statistics_file.snapshot_id in update.snapshot_ids
536536
)

0 commit comments

Comments
 (0)