diff --git a/rust/vectordb/src/table.rs b/rust/vectordb/src/table.rs index a78aa2dc..8073ee29 100644 --- a/rust/vectordb/src/table.rs +++ b/rust/vectordb/src/table.rs @@ -153,6 +153,22 @@ impl Table { }) } + pub async fn checkout_latest(&self) -> Result { + let latest_version_id = self.dataset.latest_version_id().await?; + let dataset = if latest_version_id == self.dataset.version().version { + self.dataset.clone() + } else { + Arc::new(self.dataset.checkout_version(latest_version_id).await?) + }; + + Ok(Table { + name: self.name.clone(), + uri: self.uri.clone(), + dataset, + store_wrapper: self.store_wrapper.clone(), + }) + } + fn get_table_name(uri: &str) -> Result { let path = Path::new(uri); let name = path