pub struct DynamicFilterNode {
pub left_key: u32,
pub condition: Option<ExprNode>,
pub left_table: Option<Table>,
pub right_table: Option<Table>,
pub condition_always_relax: bool,
pub cleaned_by_watermark: bool,
}Fields§
§left_key: u32§condition: Option<ExprNode>Must be one of <, <=, >, >=
left_table: Option<Table>Left table stores all states with predicate possibly not NULL.
right_table: Option<Table>Right table stores single value from RHS of predicate.
condition_always_relax: boolIf the right side’s change always make the condition more relaxed. In other words, make more record in the left side satisfy the condition. If this is true, we need to store LHS records which do not match the condition in the internal table. When the condition changes, we will tell downstream to insert the LHS records which now match the condition. If this is false, we need to store RHS records which match the condition in the internal table. When the condition changes, we will tell downstream to delete the LHS records which now no longer match the condition.
cleaned_by_watermark: boolWhether the dynamic filter can clean its left state table by watermark.
Implementations§
Source§impl DynamicFilterNode
impl DynamicFilterNode
pub fn get_left_key(&self) -> u32
pub fn get_condition(&self) -> Result<&ExprNode, PbFieldNotFound>
pub fn get_left_table(&self) -> Result<&Table, PbFieldNotFound>
pub fn get_right_table(&self) -> Result<&Table, PbFieldNotFound>
pub fn get_condition_always_relax(&self) -> bool
pub fn get_cleaned_by_watermark(&self) -> bool
Trait Implementations§
Source§impl Clone for DynamicFilterNode
impl Clone for DynamicFilterNode
Source§fn clone(&self) -> DynamicFilterNode
fn clone(&self) -> DynamicFilterNode
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DynamicFilterNode
impl Debug for DynamicFilterNode
Source§impl Default for DynamicFilterNode
impl Default for DynamicFilterNode
Source§impl<'de> Deserialize<'de> for DynamicFilterNode
impl<'de> Deserialize<'de> for DynamicFilterNode
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl Message for DynamicFilterNode
impl Message for DynamicFilterNode
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for DynamicFilterNode
impl PartialEq for DynamicFilterNode
Source§impl Serialize for DynamicFilterNode
impl Serialize for DynamicFilterNode
impl StructuralPartialEq for DynamicFilterNode
Auto Trait Implementations§
impl Freeze for DynamicFilterNode
impl RefUnwindSafe for DynamicFilterNode
impl Send for DynamicFilterNode
impl Sync for DynamicFilterNode
impl Unpin for DynamicFilterNode
impl UnwindSafe for DynamicFilterNode
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,
§impl<T> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Any.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Any.§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>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request