pub struct DynamicFilterInner {
pub expression_id: u64,
pub generation: u64,
pub expr: Arc<dyn PhysicalExpr>,
pub is_complete: bool,
}Expand description
Atomic internal state of a DynamicFilterPhysicalExpr.
expression_id lives here because it identifies the actual filter expression expr.
Derived DynamicFilterPhysicalExprs (e.g. via PhysicalExpr::with_new_children) are
the same logical filter and must report the same expression_id.
Warning: exposed publicly solely so that proto (de)serialization in
datafusion-proto can read and rebuild this state. Do not treat this type
or its layout as a stable API.
Fields§
§expression_id: u64A unique identifier for the expression.
generation: u64A counter that gets incremented every time the expression is updated so that we can track changes cheaply.
This is used for PhysicalExpr::snapshot_generation to have a cheap check for changes.
expr: Arc<dyn PhysicalExpr>§is_complete: boolFlag for quick synchronous check if filter is complete.
This is redundant with the watch channel state, but allows us to return immediately
from wait_complete() without subscribing if already complete.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Inner
impl !UnwindSafe for Inner
impl Freeze for Inner
impl Send for Inner
impl Sync for Inner
impl Unpin for Inner
impl UnsafeUnpin for Inner
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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