and the plan on 8.4:
gj=# explain select a.a from a where a not in (select a from b); QUERY PLAN
------------------------------------------------------------------------- Seq Scan on a
(cost=99035.00..257874197565.00rows=3000000 width=4) Filter: (NOT (subplan)) SubPlan -> Materialize
(cost=99035.00..171493.00rows=5400000 width=4) -> Seq Scan on b (cost=0.00..75177.00 rows=5400000
width=4)
(5 rows)
This looks like a regression to me, or am I wrong ?