Module mz_compute_client::plan

source ·
Expand description

An explicit representation of a rendering plan for provided dataflows.


  • Utilities and implementations for abstract interpretation of crate::plan::Plan structures.
  • Planning of Plan::Join operators, and supporting types.
  • Nested message and enum types in ProtoGetPlan.
  • Nested message and enum types in ProtoPlan.
  • Reduction execution planning and dataflow construction. We build ReducePlans to manage the complexity of planning the generated dataflow for a given reduce expression. The intent here is that each creating a ReducePlan should capture all of the decision making about what kind of dataflow do we need to render and what each operator needs to do, and then actually rendering the plan can be a relatively simple application of (as much as possible) straight line code.
  • Threshold planning logic.
  • TopK planning logic.
  • Utilities and implementations for transformation of crate::plan::Plan structures.



  • How a Get stage will be rendered.
  • A rendering plan with as much conditional logic as possible removed.



  • A strategy that produces arrangements that are thinner than the default. That is the number of direct children is limited to a maximum of 3.
  • Returns bucket sizes, descending, suitable for hierarchical decomposition of an operator, based on the expected number of rows that will have the same group key.