private void PlanAllOuterJoins()
{
int sz = tablePlans.Count;
if (sz <= 1)
return;
// Make a working copy of the plan list.
var workingPlanList = new List<TablePlan>(tablePlans);
var plan1 = workingPlanList[0];
for (int i = 1; i < sz; ++i) {
var plan2 = workingPlanList[i];
if (plan1.RightPlan == plan2) {
plan1 = NaturallyJoinPlans(plan1, plan2);
} else {
plan1 = plan2;
}
}
}