RowIdFilter

Trait RowIdFilter 

Source
pub trait RowIdFilter<P>: Send + Sync
where P: Pager<Blob = EntryHandle> + Send + Sync,
{ // Required method fn filter( &self, table: &Table<P>, row_ids: Vec<RowId>, ) -> LlkvResult<Vec<RowId>>; }
Expand description

Filter row IDs before they are materialized into batches.

This trait allows implementations to enforce transaction visibility (MVCC), access control, or other row-level filtering policies. The filter is applied after column-level predicates but before data is gathered into Arrow batches.

§Example Use Case

MVCC implementations use this to hide rows that were:

  • Created after the transaction’s snapshot timestamp
  • Deleted before the transaction’s snapshot timestamp

Required Methods§

Source

fn filter( &self, table: &Table<P>, row_ids: Vec<RowId>, ) -> LlkvResult<Vec<RowId>>

Filter a list of row IDs, returning only those that should be visible.

§Errors

Returns an error if visibility metadata cannot be loaded or is corrupted.

Implementors§