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 one Join operator.

Functions§

  • Unpacks multiple equivalence classes into conjuncts that should all be true, essentially turning join equivalences into a Filter.