Skip to content

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.

Technically, ReuseExchange is just a catalyst/Rule.md[Catalyst rule] for transforming SparkPlan.md[physical query plans], i.e. Rule[SparkPlan].

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]] apply Method

[source, scala]

apply(plan: SparkPlan): SparkPlan

NOTE: 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.