> For example, if I have the following query:
> Select * from a where x in (select y from b where z=7)
> Then I would expect an index or hash structure to be created for b.y
> when it is first scanned and brought into the cache but I couldn't see
> it happening in the source.
> As I said, I only inferred it from reading the source - not from actual
> experiments - so I may be wrong.
> 1. Am I wrong?
You are wrong - this is old behaviour and one of the major speed
improvements of PostgreSQL 7.4 is that IN subqueries now use a hash index
and hence they are much faster.
Chris