public static void optimiseFragmentSets(
            Collection<EquivalentFragmentSet> fragmentSets, TransactionOLTP tx) {

        // Repeatedly apply optimisations until they don't alter the query
        boolean changed = true;

        while (changed) {
            changed = false;
            for (FragmentSetOptimisation optimisation : OPTIMISATIONS) {
                changed |= optimisation.apply(fragmentSets, tx);
            }
        }
    }
public static void optimiseFragmentSets ( Collection < EquivalentFragmentSet > fragmentSets , TransactionOLTP tx ) { boolean changed = true ; while ( changed ) { changed = false ; for ( FragmentSetOptimisation optimisation : OPTIMISATIONS ) { changed |= optimisation . apply ( fragmentSets , tx ) ; } } }
Modify the given collection of {@link EquivalentFragmentSet} to introduce certain optimisations, such as the
{@link AttributeIndexFragmentSet}.
<p>
This involves substituting various {@link EquivalentFragmentSet} with other {@link EquivalentFragmentSet}.