pub struct EqualityDeleteFilter { /* private fields */ }Expand description
In-memory equality delete filter built from one or more delete files.
Each entry is column_name → set of string-normalised values to delete.
A data row is deleted if, for every column in the filter, the row’s value
is a member of that column’s set.
Implementations§
Source§impl EqualityDeleteFilter
impl EqualityDeleteFilter
Sourcepub async fn from_files(
store: &Arc<dyn Store>,
files: &[EqualityDeleteFile],
) -> AilakeResult<Self>
pub async fn from_files( store: &Arc<dyn Store>, files: &[EqualityDeleteFile], ) -> AilakeResult<Self>
Build filter from a list of equality delete file references.
For each file, downloads the Avro payload from store and extracts
(column_name, value) pairs. All files are merged into one filter.
pub fn empty() -> Self
pub fn is_empty(&self) -> bool
Sourcepub fn should_delete_row(&self, batch: &RecordBatch, row_idx: usize) -> bool
pub fn should_delete_row(&self, batch: &RecordBatch, row_idx: usize) -> bool
Check whether a single row (by its physical index in batch) matches any delete predicate.
Returns true if the row should be logically deleted.
Used in the per-row HNSW result loop where materializing a filtered batch
would misalign row indices.
Sourcepub fn apply(&self, batch: RecordBatch) -> AilakeResult<RecordBatch>
pub fn apply(&self, batch: RecordBatch) -> AilakeResult<RecordBatch>
Apply the filter to batch, returning a new batch with matching rows removed.
A row is removed when, for every column tracked by this filter that exists in the batch, the row’s value appears in the delete set for that column. Columns absent from the batch are ignored (no false deletes for schema-evolved files).
Auto Trait Implementations§
impl Freeze for EqualityDeleteFilter
impl RefUnwindSafe for EqualityDeleteFilter
impl Send for EqualityDeleteFilter
impl Sync for EqualityDeleteFilter
impl Unpin for EqualityDeleteFilter
impl UnsafeUnpin for EqualityDeleteFilter
impl UnwindSafe for EqualityDeleteFilter
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more