pub trait RowIdFilter<P>: 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