Expand description

Utilities and implementations for transformation of crate::plan::Plan structures.

As a general rule, semantic transformations should be done at the mz_expr::MirRelationExpr level. However, in certain situations where we want to do a pass over a crate::plan::Plan lowered from an mz_expr::MirRelationExpr in order to fix sub-optimal aspects of that plan.

To do that, create a struct that implements Transform and call the Transform::transform method towards the end of crate::plan::Plan::finalize_dataflow, but before the mz_repr::explain::trace_plan call.

Modules

Structs

  • A transformation that takes the result of single-time physical monotonicity analysis and refines, as appropriate, the setting of the must_consolidate flag in monotonic Plan nodes with forced consolidation.
  • The type of configuration options passed to all Transform::transform calls as an immutable reference.

Traits