pub fn multiway_join(
        sources: Vec<Self>,
        equalities: Vec<Vec<(usize, usize)>>,
        results: Vec<(usize, usize)>
    ) -> Self {
        Plan::MultiwayJoin(MultiwayJoin {
            results,
            sources,
            equalities,
        })
    }
Equi-joins multiple collections using lists of equality constraints.

The list `equalities` should contain equivalence classes of pairs of
attribute index and source index, and the `multiway_join` method will
ensure that each equivalence class has equal values in each attribute.
interactive/src/plan/mod.rs