Module mz_transform::fusion::join
source · Expand description
Fuses multiple Join
operators into one Join
operator.
Multiway join planning relies on a broad view of the involved relations, and chains of binary joins can make this challenging to reason about. Collecting multiple joins together with their constraints improves our ability to plan these joins, and reason about other operators’ motion around them.
Also removes unit collections from joins, and joins with fewer than two inputs.
Unit collections have no columns and a count of one, and a join with such a collection act as the identity operator on collections. Once removed, we may find joins with zero or one input, which can be further simplified.
Structs§
- Fuses multiple
Join
operators into oneJoin
operator.
Functions§
- Unpacks multiple equivalence classes into conjuncts that should all be true, essentially turning join equivalences into a Filter.