pub struct IndexNestedLoopJoinOperator { /* private fields */ }Expand description
Index Nested Loop Join Operator.
For each row in the outer input, looks up matching rows in the inner table using an index. This avoids full table scans of the inner table.
Implementations§
Source§impl IndexNestedLoopJoinOperator
impl IndexNestedLoopJoinOperator
Sourcepub fn new(
outer: Box<dyn Operator>,
inner_table: Box<dyn Table>,
inner_schema: Vec<ColumnInfo>,
join_type: JoinType,
outer_key_idx: usize,
lookup_strategy: IndexLookupStrategy,
residual_filter: Option<JoinFilter>,
) -> Self
pub fn new( outer: Box<dyn Operator>, inner_table: Box<dyn Table>, inner_schema: Vec<ColumnInfo>, join_type: JoinType, outer_key_idx: usize, lookup_strategy: IndexLookupStrategy, residual_filter: Option<JoinFilter>, ) -> Self
Create a new index nested loop join operator.
§Arguments
outer- Outer input operatorinner_table- Inner table to lookup frominner_schema- Schema of the inner tablejoin_type- Type of join (INNER or LEFT)outer_key_idx- Column index of the join key in outer rowslookup_strategy- How to find matching inner rowsresidual_filter- Optional additional filter after key match
pub fn with_cancellation(self, cancellation: CancellationHandle) -> Self
Sourcepub fn with_projection(
self,
columns: Vec<ColumnSource>,
projected_schema: Vec<ColumnInfo>,
) -> Self
pub fn with_projection( self, columns: Vec<ColumnSource>, projected_schema: Vec<ColumnInfo>, ) -> Self
Set projection pushdown configuration.
When set, the operator creates projected rows directly during the combine step instead of creating full combined rows. This avoids creating large intermediate rows that would be immediately projected down to fewer columns.
§Arguments
columns- Column sources in SELECT order (preserves original column ordering)projected_schema- Schema for the projected output
Trait Implementations§
Source§impl Operator for IndexNestedLoopJoinOperator
impl Operator for IndexNestedLoopJoinOperator
Source§fn schema(&self) -> &[ColumnInfo]
fn schema(&self) -> &[ColumnInfo]
Get the schema (column information) for this operator’s output.
Source§fn estimated_rows(&self) -> Option<usize>
fn estimated_rows(&self) -> Option<usize>
Get an estimate of the number of rows this operator will produce. Read more
Source§fn ordering(&self) -> OrderingProperty
fn ordering(&self) -> OrderingProperty
Physical ordering guaranteed by this operator’s output. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for IndexNestedLoopJoinOperator
impl !Sync for IndexNestedLoopJoinOperator
impl !UnwindSafe for IndexNestedLoopJoinOperator
impl Freeze for IndexNestedLoopJoinOperator
impl Send for IndexNestedLoopJoinOperator
impl Unpin for IndexNestedLoopJoinOperator
impl UnsafeUnpin for IndexNestedLoopJoinOperator
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