pub struct JoinSelection {}
Expand description
For hash join with the partition mode PartitionMode::Auto, JoinSelection rule will make a cost based decision to select which PartitionMode mode(Partitioned/CollectLeft) is optimal based on the available statistics that the inputs have. If the statistics information is not available, the partition mode will fall back to PartitionMode::Partitioned.
JoinSelection rule will also reorder the build and probe phase of the hash joins based on the avaliable statistics that the inputs have. The rule optimizes the order such that the left (build) side of the join is the smallest. If the statistics information is not available, the order stays the same as the original query. JoinSelection rule will also swap the left and right sides for cross join to keep the left side is the smallest.
Implementations§
source§impl JoinSelection
impl JoinSelection
Trait Implementations§
source§impl Default for JoinSelection
impl Default for JoinSelection
source§fn default() -> JoinSelection
fn default() -> JoinSelection
source§impl PhysicalOptimizerRule for JoinSelection
impl PhysicalOptimizerRule for JoinSelection
source§fn optimize(
&self,
plan: Arc<dyn ExecutionPlan>,
config: &ConfigOptions
) -> Result<Arc<dyn ExecutionPlan>>
fn optimize( &self, plan: Arc<dyn ExecutionPlan>, config: &ConfigOptions ) -> Result<Arc<dyn ExecutionPlan>>
plan
to an optimized form