pub struct MergeJoinOperator { /* private fields */ }Expand description
Merge Join Operator for pre-sorted inputs.
Both inputs must be sorted on their respective join keys. The operator performs a single pass through both inputs, producing matches as they’re found.
Implementations§
Source§impl MergeJoinOperator
impl MergeJoinOperator
Sourcepub fn new(
left: Box<dyn Operator>,
right: Box<dyn Operator>,
join_type: JoinType,
left_key_indices: Vec<usize>,
right_key_indices: Vec<usize>,
) -> Self
pub fn new( left: Box<dyn Operator>, right: Box<dyn Operator>, join_type: JoinType, left_key_indices: Vec<usize>, right_key_indices: Vec<usize>, ) -> Self
Create a new merge join operator.
§Arguments
left- Left input operator (must be sorted on left_key_indices)right- Right input operator (must be sorted on right_key_indices)join_type- Type of join (INNER, LEFT, RIGHT, FULL - NOT Cross)left_key_indices- Column indices for left join keysright_key_indices- Column indices for right join keys
§Panics
Debug builds will panic if join_type is JoinType::Cross.
Cross joins should use NestedLoopJoinOperator instead.
Trait Implementations§
Source§impl Operator for MergeJoinOperator
impl Operator for MergeJoinOperator
Source§fn schema(&self) -> &[ColumnInfo]
fn schema(&self) -> &[ColumnInfo]
Get the schema (column information) for this operator’s output.
Auto Trait Implementations§
impl Freeze for MergeJoinOperator
impl !RefUnwindSafe for MergeJoinOperator
impl Send for MergeJoinOperator
impl !Sync for MergeJoinOperator
impl Unpin for MergeJoinOperator
impl UnsafeUnpin for MergeJoinOperator
impl !UnwindSafe for MergeJoinOperator
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> CompactArcDrop for T
impl<T> CompactArcDrop for T
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