ReuseExchange Physical Optimization¶
ReuseExchange is a physical query optimization (aka physical query preparation rule or simply preparation rule) that
QueryExecution uses to optimize the physical plan of a structured query.
ReuseExchange is just a catalyst/Rule.md[Catalyst rule] for transforming SparkPlan.md[physical query plans], i.e.
ReuseExchange is part of preparations batch of physical query plan rules and is executed when
QueryExecution is requested for the optimized physical query plan (i.e. in executedPlan phase of a query execution).
apply(plan: SparkPlan): SparkPlan¶
apply is part of catalyst/Rule.md#apply[Rule Contract] to apply a rule to a SparkPlan.md[physical plan].
apply finds all Exchange unary operators and...FIXME
apply does nothing and simply returns the input physical
plan if spark.sql.exchange.reuse internal configuration property is disabled.