swap_join_according_to_unboundedness

Function swap_join_according_to_unboundedness 

Source
pub(crate) fn swap_join_according_to_unboundedness(
    hash_join: &HashJoinExec,
) -> Result<Arc<dyn ExecutionPlan>>
Expand description

This function swaps sides of a hash join to make it runnable even if one of its inputs are infinite. Note that this is not always possible; i.e. JoinType::Full, JoinType::Right, JoinType::RightAnti and JoinType::RightSemi can not run with an unbounded left side, even if we swap join sides. Therefore, we do not consider them here. This function is crate public as it is useful for downstream projects to implement, or experiment with, their own join selection rules.