G select * from t1 inner join t3 on t1.f1 = t3.f1 left join t2 on t1.f1 = t2.f1; (before rewrites) cluster0 Box0:Select cluster1 Box1:OuterJoin cluster5 Box5:BaseTable T2 cluster2 Box2:Select cluster4 Box4:BaseTable T3 cluster3 Box3:BaseTable T1 boxhead0 Distinct: Preserve 0: Q4.c0 as F1 1: Q4.c1 as F2 2: Q4.c2 as F2 3: Q4.c3 as F1 4: Q4.c4 as F2 5: Q4.c5 as F2 6: Q4.c6 as F1 7: Q4.c7 as F2 8: Q4.c8 as F2 Q4 Q4(F) boxhead1 Distinct: Preserve 0: Q2.c0 as F1 1: Q2.c1 as F2 2: Q2.c2 as F2 3: Q2.c3 as F1 4: Q2.c4 as F2 5: Q2.c5 as F2 6: Q3.c0 as F1 7: Q3.c1 as F2 8: Q3.c2 as F2 Q4->boxhead1 Q2 Q2(P) Q3 Q3(F) as T2 Q2->Q3 (Q2.c0) = (Q3.c0) boxhead2 Distinct: Preserve 0: Q0.c0 as F1 1: Q0.c1 as F2 2: Q0.c2 as F2 3: Q1.c0 as F1 4: Q1.c1 as F2 5: Q1.c2 as F2 Q2->boxhead2 boxhead5 Distinct: Preserve 0: c0 as F1 1: c1 as F2 2: c2 as F2 Q3->boxhead5 Q0 Q0(F) as T1 Q1 Q1(F) as T3 Q0->Q1 (Q0.c0) = (Q1.c0) boxhead3 Distinct: Preserve 0: c0 as F1 1: c1 as F2 2: c2 as F2 Q0->boxhead3 boxhead4 Distinct: Preserve 0: c0 as F1 1: c1 as F2 2: c2 as F2 Q1->boxhead4