pub struct JoinRequest<'a> {
pub left_rows: CompactArc<Vec<Row>>,
pub right_rows: CompactArc<Vec<Row>>,
pub left_columns: &'a [String],
pub right_columns: &'a [String],
pub condition: Option<&'a Expression>,
pub join_type: &'a str,
pub limit: Option<u64>,
pub ctx: &'a ExecutionContext,
pub algorithm_hint: Option<&'a RuntimeJoinDecision>,
pub ordering: JoinInputOrderings,
pub projection: Option<&'a JoinProjectionIndices>,
}Expand description
Request to execute a join operation.
Uses CompactArc<Vec<Row>> to enable zero-copy sharing with CTE results.
When dropping, only decrements refcount (O(1)) instead of deallocating rows.
The caller should pass Arc-wrapped data for CTE sources.
Fields§
§left_rows: CompactArc<Vec<Row>>Left side rows (Arc for zero-copy sharing with CTE results).
right_rows: CompactArc<Vec<Row>>Right side rows (Arc for zero-copy sharing with CTE results).
left_columns: &'a [String]Left side column names.
right_columns: &'a [String]Right side column names.
condition: Option<&'a Expression>Join condition (if any).
join_type: &'a strJoin type string (INNER, LEFT, RIGHT, FULL, CROSS).
limit: Option<u64>LIMIT for early termination.
ctx: &'a ExecutionContextExecution context for expression evaluation.
algorithm_hint: Option<&'a RuntimeJoinDecision>Optional algorithm decision from QueryPlanner. When provided, the executor uses this instead of making its own decision.
ordering: JoinInputOrderingsOrdering certified by the physical producers of both inputs.
projection: Option<&'a JoinProjectionIndices>Optional fused projection for the final joined row.
Hash joins apply it only when no residual predicate still needs the full logical row. Nested-loop joins apply it after evaluating their condition against full left/right rows.