pub struct HashJoinNode {Show 14 fields
pub join_type: i32,
pub left_key: Vec<i32>,
pub right_key: Vec<i32>,
pub condition: Option<ExprNode>,
pub inequality_pairs: Vec<InequalityPair>,
pub left_table: Option<Table>,
pub right_table: Option<Table>,
pub left_degree_table: Option<Table>,
pub right_degree_table: Option<Table>,
pub output_indices: Vec<u32>,
pub left_deduped_input_pk_indices: Vec<u32>,
pub right_deduped_input_pk_indices: Vec<u32>,
pub null_safe: Vec<bool>,
pub is_append_only: bool,
}
Fields§
§join_type: i32
§left_key: Vec<i32>
§right_key: Vec<i32>
§condition: Option<ExprNode>
§inequality_pairs: Vec<InequalityPair>
§left_table: Option<Table>
Used for internal table states.
right_table: Option<Table>
Used for internal table states.
left_degree_table: Option<Table>
Used for internal table states.
right_degree_table: Option<Table>
Used for internal table states.
output_indices: Vec<u32>
The output indices of current node
left_deduped_input_pk_indices: Vec<u32>
Left deduped input pk indices. The pk of the left_table and left_degree_table is [left_join_key | left_deduped_input_pk_indices] and is expected to be the shortest key which starts with the join key and satisfies unique constrain.
right_deduped_input_pk_indices: Vec<u32>
Right deduped input pk indices. The pk of the right_table and right_degree_table is [right_join_key | right_deduped_input_pk_indices] and is expected to be the shortest key which starts with the join key and satisfies unique constrain.
null_safe: Vec<bool>
§is_append_only: bool
Whether to optimize for append only stream. It is true when the input is append-only
Implementations§
source§impl HashJoinNode
impl HashJoinNode
source§impl HashJoinNode
impl HashJoinNode
pub fn get_join_type(&self) -> Result<JoinType, PbFieldNotFound>
pub fn get_left_key(&self) -> &Vec<i32>
pub fn get_right_key(&self) -> &Vec<i32>
pub fn get_condition(&self) -> Result<&ExprNode, PbFieldNotFound>
pub fn get_inequality_pairs(&self) -> &Vec<InequalityPair>
pub fn get_left_table(&self) -> Result<&Table, PbFieldNotFound>
pub fn get_right_table(&self) -> Result<&Table, PbFieldNotFound>
pub fn get_left_degree_table(&self) -> Result<&Table, PbFieldNotFound>
pub fn get_right_degree_table(&self) -> Result<&Table, PbFieldNotFound>
pub fn get_output_indices(&self) -> &Vec<u32>
pub fn get_left_deduped_input_pk_indices(&self) -> &Vec<u32>
pub fn get_right_deduped_input_pk_indices(&self) -> &Vec<u32>
pub fn get_null_safe(&self) -> &Vec<bool>
pub fn get_is_append_only(&self) -> bool
Trait Implementations§
source§impl Clone for HashJoinNode
impl Clone for HashJoinNode
source§fn clone(&self) -> HashJoinNode
fn clone(&self) -> HashJoinNode
Returns a copy 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 moresource§impl Debug for HashJoinNode
impl Debug for HashJoinNode
source§impl Default for HashJoinNode
impl Default for HashJoinNode
source§impl<'de> Deserialize<'de> for HashJoinNode
impl<'de> Deserialize<'de> for HashJoinNode
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>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Message for HashJoinNode
impl Message for HashJoinNode
source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
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,
Encodes the message to a buffer. Read more
source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
Encodes the message to a newly allocated buffer.
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,
Encodes the message with a length-delimiter to a buffer. Read more
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,
Encodes the message with a length-delimiter to a newly allocated buffer.
source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes an instance of the message from a buffer. Read more
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,
Decodes a length-delimited instance of the message from the buffer.
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,
Decodes an instance of the message from a buffer, and merges it into
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,
Decodes a length-delimited instance of the message from buffer, and
merges it into
self
.source§impl PartialEq for HashJoinNode
impl PartialEq for HashJoinNode
source§impl Serialize for HashJoinNode
impl Serialize for HashJoinNode
impl StructuralPartialEq for HashJoinNode
Auto Trait Implementations§
impl Freeze for HashJoinNode
impl RefUnwindSafe for HashJoinNode
impl Send for HashJoinNode
impl Sync for HashJoinNode
impl Unpin for HashJoinNode
impl UnwindSafe for HashJoinNode
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request