pub struct SubscriptionFilter {
pub expression: String,
pub ring0_predicates: Vec<Ring0Predicate>,
pub ring1_predicates: Vec<Ring1Predicate>,
pub intern_table: StringInternTable,
}Expand description
Compiled subscription filter.
Simple predicates are pushed to Ring 0 for zero-overhead filtering. Complex predicates are evaluated in Ring 1.
Fields§
§expression: StringOriginal filter expression.
ring0_predicates: Vec<Ring0Predicate>Ring 0 predicates (simple, zero-allocation checks).
ring1_predicates: Vec<Ring1Predicate>Ring 1 predicates (complex, may allocate).
intern_table: StringInternTableInterned string table for Ring 0 string comparisons.
Implementations§
Source§impl SubscriptionFilter
impl SubscriptionFilter
Sourcepub fn evaluate_ring0(&self, batch: &RecordBatch, row: usize) -> bool
pub fn evaluate_ring0(&self, batch: &RecordBatch, row: usize) -> bool
Evaluates all Ring 0 predicates against a single row.
Returns true if all predicates match (AND semantics).
Returns true if there are no Ring 0 predicates.
Sourcepub fn has_ring1_predicates(&self) -> bool
pub fn has_ring1_predicates(&self) -> bool
Returns true if this filter has Ring 1 predicates that need evaluation.
Sourcepub fn has_predicates(&self) -> bool
pub fn has_predicates(&self) -> bool
Returns true if this filter has any predicates at all.
Trait Implementations§
Source§impl Clone for SubscriptionFilter
impl Clone for SubscriptionFilter
Source§fn clone(&self) -> SubscriptionFilter
fn clone(&self) -> SubscriptionFilter
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SubscriptionFilter
impl RefUnwindSafe for SubscriptionFilter
impl Send for SubscriptionFilter
impl Sync for SubscriptionFilter
impl Unpin for SubscriptionFilter
impl UnsafeUnpin for SubscriptionFilter
impl UnwindSafe for SubscriptionFilter
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
Converts
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>
Converts
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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.