hash_join_convert_symmetric_subrule

Function hash_join_convert_symmetric_subrule 

Source
fn hash_join_convert_symmetric_subrule(
    input: Arc<dyn ExecutionPlan>,
    config_options: &ConfigOptions,
) -> Result<Arc<dyn ExecutionPlan>>
Expand description

Converts a hash join to a symmetric hash join if both its inputs are unbounded and incremental.

This subrule checks if a hash join can be replaced with a symmetric hash join when dealing with unbounded (infinite) inputs on both sides. This replacement avoids pipeline breaking and preserves query runnability. If the replacement is applicable, this subrule makes this change; otherwise, it leaves the input unchanged.

§Arguments

  • input - The current state of the pipeline, including the execution plan.
  • config_options - Configuration options that might affect the transformation logic.

§Returns

An Option that contains the Result of the transformation. If the transformation is not applicable, it returns None. If applicable, it returns Some(Ok(...)) with the modified pipeline state, or Some(Err(...)) if an error occurs during the transformation.