Struct datafusion::physical_plan::hash_join::HashJoinExec
source · [−]pub struct HashJoinExec { /* private fields */ }
Expand description
Join execution plan executes partitions in parallel and combines them into a set of partitions.
Filter expression expected to contain non-equality predicates that can not be pushed down to any of join inputs. In case of outer join, filter applied to only matched rows.
Implementations
sourceimpl HashJoinExec
impl HashJoinExec
sourcepub fn try_new(
left: Arc<dyn ExecutionPlan>,
right: Arc<dyn ExecutionPlan>,
on: JoinOn,
filter: Option<JoinFilter>,
join_type: &JoinType,
partition_mode: PartitionMode,
null_equals_null: &bool
) -> Result<Self>
pub fn try_new(
left: Arc<dyn ExecutionPlan>,
right: Arc<dyn ExecutionPlan>,
on: JoinOn,
filter: Option<JoinFilter>,
join_type: &JoinType,
partition_mode: PartitionMode,
null_equals_null: &bool
) -> Result<Self>
Tries to create a new HashJoinExec.
Error
This function errors when it is not possible to join the left and right sides on keys on
.
sourcepub fn left(&self) -> &Arc<dyn ExecutionPlan>
pub fn left(&self) -> &Arc<dyn ExecutionPlan>
left (build) side which gets hashed
sourcepub fn right(&self) -> &Arc<dyn ExecutionPlan>
pub fn right(&self) -> &Arc<dyn ExecutionPlan>
right (probe) side which are filtered by the hash table
sourcepub fn filter(&self) -> &Option<JoinFilter>
pub fn filter(&self) -> &Option<JoinFilter>
Filters applied before join output
sourcepub fn partition_mode(&self) -> &PartitionMode
pub fn partition_mode(&self) -> &PartitionMode
The partitioning mode of this hash join
sourcepub fn null_equals_null(&self) -> &bool
pub fn null_equals_null(&self) -> &bool
Get null_equals_null
Trait Implementations
sourceimpl Debug for HashJoinExec
impl Debug for HashJoinExec
sourceimpl ExecutionPlan for HashJoinExec
impl ExecutionPlan for HashJoinExec
sourcefn children(&self) -> Vec<Arc<dyn ExecutionPlan>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Get a list of child execution plans that provide the input for this plan. The returned list will be empty for leaf nodes, will contain a single value for unary nodes, or two values for binary nodes (such as joins). Read more
sourcefn with_new_children(
self: Arc<Self>,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn with_new_children(
self: Arc<Self>,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
Returns a new plan where all children were replaced by new plans.
sourcefn output_partitioning(&self) -> Partitioning
fn output_partitioning(&self) -> Partitioning
Specifies the output partitioning scheme of this plan
sourcefn output_ordering(&self) -> Option<&[PhysicalSortExpr]>
fn output_ordering(&self) -> Option<&[PhysicalSortExpr]>
If the output of this operator is sorted, returns Some(keys)
with the description of how it was sorted. Read more
sourcefn relies_on_input_order(&self) -> bool
fn relies_on_input_order(&self) -> bool
Returns true
if this operator relies on its inputs being
produced in a certain order (for example that they are sorted
a particular way) for correctness. Read more
sourcefn execute(
&self,
partition: usize,
context: Arc<TaskContext>
) -> Result<SendableRecordBatchStream>
fn execute(
&self,
partition: usize,
context: Arc<TaskContext>
) -> Result<SendableRecordBatchStream>
creates an iterator
sourcefn fmt_as(&self, t: DisplayFormatType, f: &mut Formatter<'_>) -> Result
fn fmt_as(&self, t: DisplayFormatType, f: &mut Formatter<'_>) -> Result
Format this ExecutionPlan
to f
in the specified type. Read more
sourcefn metrics(&self) -> Option<MetricsSet>
fn metrics(&self) -> Option<MetricsSet>
Return a snapshot of the set of Metric
s for this
ExecutionPlan
. Read more
sourcefn statistics(&self) -> Statistics
fn statistics(&self) -> Statistics
Returns the global output statistics for this ExecutionPlan
node.
sourcefn required_child_distribution(&self) -> Distribution
fn required_child_distribution(&self) -> Distribution
Specifies the data distribution requirements of all the children for this operator Read more
sourcefn maintains_input_order(&self) -> bool
fn maintains_input_order(&self) -> bool
Returns false
if this operator’s implementation may reorder
rows within or between partitions. Read more
sourcefn benefits_from_input_partitioning(&self) -> bool
fn benefits_from_input_partitioning(&self) -> bool
Returns true
if this operator would benefit from
partitioning its input (and thus from more parallelism). For
operators that do very little work the overhead of extra
parallelism may outweigh any benefits Read more
Auto Trait Implementations
impl !RefUnwindSafe for HashJoinExec
impl Send for HashJoinExec
impl Sync for HashJoinExec
impl Unpin for HashJoinExec
impl !UnwindSafe for HashJoinExec
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more