Fix a problem that made UPDATE
RETURNING tableoid return zero instead of the correct
OID (Tom)

Allow functions declared as taking ANYARRAY to work on the pg_statistic columns of that type
(Tom)

This used to work, but was unintentionally broken in
8.3.

Fix planner misestimation of selectivity when transitive
equality is applied to an outer-join clause (Tom)

This could result in bad plans for queries like
... from a left join b on a.a1 = b.b1
where a.a1 = 42 ...

Improve optimizer's handling of long IN lists (Tom)

This change avoids wasting large amounts of time on such
lists when constraint exclusion is enabled.

Prevent synchronous scan during GIN index build
(Tom)

Because GIN is optimized for inserting tuples in
increasing TID order, choosing to use a synchronous scan
could slow the build by a factor of three or more.

Ensure that the contents of a holdable cursor don't
depend on the contents of TOAST tables (Tom)

Previously, large field values in a cursor result might
be represented as TOAST pointers, which would fail if the
referenced table got dropped before the cursor is read, or
if the large value is deleted and then vacuumed away. This
cannot happen with an ordinary cursor, but it could with a
cursor that is held past its creating transaction.

Fix memory leak when a set-returning function is
terminated without reading its whole result (Tom)