G with a(a, b, c) as (select * from t1) select * from a as a1 inner join a as a2 on a1.a = a2.c; (after rewrites) cluster3 Box3:Select cluster1 Box1:BaseTable T1 boxhead3 Distinct: Preserve 0: Q5.c0 as A 1: Q5.c1 as B 2: Q5.c2 as C 3: Q0.c0 as A 4: Q0.c1 as B 5: Q0.c2 as C Q0 Q0(F) as T1 Q0->Q0 NOT ((Q0.c2) IS NULL) Q5 Q5(F) Q0->Q5 (Q0.c2) = (Q5.c0) boxhead1 Distinct: Preserve 0: c0 as F1 1: c1 as F2 2: c2 as F3 Q0->boxhead1 Q5->Q5 NOT ((Q5.c0) IS NULL) Q5->boxhead1