diff -r 49e4717e2371 -r b1cf7611f8b3 server/msplanner.py --- a/server/msplanner.py Mon Jan 19 17:28:42 2009 +0100 +++ b/server/msplanner.py Mon Jan 19 18:50:18 2009 +0100 @@ -999,7 +999,9 @@ step = AggrStep(plan, selection, select, atemptable, temptable) step.children = steps elif len(steps) > 1: - if select.need_intersect: + if select.need_intersect or any(select.need_intersect + for step in steps + for select in step.union.children): if temptable: step = IntersectFetchStep(plan) else: