Expand description
The GlobalOrderRequire optimizer rule either:
- Adds an auxiliary
OutputRequirementExecoperator to keep track of global ordering and distribution requirement across rules, or - Removes the auxiliary
OutputRequirementExecoperator from the physical plan. Since theOutputRequirementExecoperator is only a helper operator, it shouldn’t occur in the final plan (i.e. the executed plan).
Structs§
- Output
Requirement Exec - An ancillary, non-executable operator whose sole purpose is to track global requirements during optimization. It imposes
- Output
Requirements - This rule either adds or removes
OutputRequirementss to/from the physical plan according to itsmodeattribute, which is set by the constructorsnew_add_modeandnew_remove_mode. With this rule, we can keep track of the global requirements (ordering and distribution) across rules.
Enums§
- Rule
Mode 🔒
Functions§
- require_
top_ 🔒ordering - This functions adds ancillary
OutputRequirementExecto the physical plan, so that global requirements are not lost during optimization. - require_
top_ 🔒ordering_ helper - Helper function that adds an ancillary
OutputRequirementExecto the given plan. First entry in the tuple is resulting plan, second entry indicates whether anyOutputRequirementExecis added to the plan.