diff --git a/rust/src/format/fragment.rs b/rust/src/format/fragment.rs index 998e9b4f5d..0058de06d9 100644 --- a/rust/src/format/fragment.rs +++ b/rust/src/format/fragment.rs @@ -16,8 +16,6 @@ use std::collections::BTreeSet; use crate::datatypes::Schema; use crate::format::pb; -use crate::io::deletion::{read_deletion_file, DeletionVector}; -use crate::io::ObjectStore; /// Lance Data File /// @@ -134,15 +132,6 @@ impl Fragment { .into_iter() .collect() } - - pub(crate) async fn deletion_vector( - &self, - object_store: &ObjectStore, - ) -> Option { - read_deletion_file(&object_store.base_path(), self, object_store) - .await - .unwrap() - } } impl From<&pb::DataFragment> for Fragment { diff --git a/rust/src/io/reader.rs b/rust/src/io/reader.rs index d0c3503f67..b6fb6c8439 100644 --- a/rust/src/io/reader.rs +++ b/rust/src/io/reader.rs @@ -38,7 +38,7 @@ use futures::StreamExt; use object_store::path::Path; use prost::Message; -use super::deletion::DeletionVector; +use super::deletion::{read_deletion_file, DeletionVector}; use super::ReadBatchParams; use crate::arrow::*; use crate::encodings::{dictionary::DictionaryDecoder, AsyncIndex}; @@ -217,11 +217,11 @@ impl FileReader { .map(|f| f.to_owned()); let deletion_vector = match &fragment { - Some(frag) => frag.deletion_vector(object_store).await, - None => None, + Some(frag) => read_deletion_file(object_store.base_path(), frag, object_store).await, + None => Ok(None), }; - Ok(Self { + deletion_vector.map(|deletion_vector| Self { object_reader: object_reader.into(), metadata, projection: Some(projection),