Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk> writes:
> select * from test1 full join test2 using (a,b) where b=1;
> 8.3.1 and CVS HEAD produce a plan in which the b=1 condition is pushed
> down into each side of the join, but 8.3.6 and 8.3.7 do not.
It does what you're expecting in 8.3 branch tip.
http://archives.postgresql.org/pgsql-committers/2009-04/msg00204.php
We're really overdue for a set of back-branch update releases :-(
regards, tom lane