@@ -1290,22 +1290,22 @@ def snapshot_by_name(self, name: str) -> Optional[Snapshot]:
12901290 return self .snapshot_by_id (ref .snapshot_id )
12911291 return None
12921292
1293- def rollback_to_snapshot (self , snapshot_id : int ) -> Transaction :
1293+ def rollback_to_snapshot (self , snapshot_id : int ) -> ManageSnapshots :
12941294 if self .snapshot_by_id (snapshot_id ) is None :
12951295 raise ValidationError (f"Cannot roll back to unknown snapshot id: { snapshot_id } " )
1296- if snapshot_id not in [ ancestor .ancestor_id for ancestor in self .current_ancestors ()] :
1296+ if snapshot_id not in set ( ancestor .ancestor_id for ancestor in ancestors_of ( self .current_snapshot (), self . _transaction . _table . metadata )) :
12971297 raise ValidationError (f"Cannot roll back to snapshot, not an ancestor of the current state: { snapshot_id } " )
1298- return self .set_ref_snapshot (snapshot_id = snapshot_id , parent_snapshot_id = self . current_snapshot (). snapshot_id , ref_name = "main" , type = "branch" )
1298+ return self ._transaction . set_ref_snapshot (snapshot_id = snapshot_id , ref_name = "main" , type = "branch" )
12991299
1300- def rollback_to_timestamp (self , timestamp : int ) -> Transaction :
1301- if (snapshot := self .latest_snapshot_before_timestamp (timestamp )) is None :
1300+ def rollback_to_timestamp (self , timestamp : int ) -> ManageSnapshots :
1301+ if (snapshot := self .snapshot_as_of_timestamp (timestamp )) is None :
13021302 raise ValidationError (f"Cannot roll back, no valid snapshot older than: { timestamp } " )
1303- return self .set_ref_snapshot (snapshot_id = snapshot . snapshot_id , parent_snapshot_id = self . current_snapshot () .snapshot_id , ref_name = "main" , type = "branch" )
1303+ return self ._transaction . set_ref_snapshot (snapshot_id = snapshot .snapshot_id , ref_name = "main" , type = "branch" )
13041304
1305- def set_current_snapshot (self , snapshot_id : int ) -> Transaction :
1305+ def set_current_snapshot (self , snapshot_id : int ) -> ManageSnapshots :
13061306 if self .snapshot_by_id (snapshot_id ) is None :
13071307 raise ValidationError (f"Cannot roll back to unknown snapshot id: { snapshot_id } " )
1308- return self .set_ref_snapshot (snapshot_id = snapshot_id , parent_snapshot_id = self . current_snapshot (). snapshot_id , ref_name = "main" , type = "branch" )
1308+ return self ._transaction . set_ref_snapshot (snapshot_id = snapshot_id , ref_name = "main" , type = "branch" )
13091309
13101310 def history (self ) -> List [SnapshotLogEntry ]:
13111311 """Get the snapshot history of this table."""
0 commit comments