In the worst case this could result in deleting a newly
created table in a new database that happened to get the
same OID as the recently-dropped one; but of course that is
an extremely low-probability scenario.

Repair two places where SIGTERM exit of a backend could
leave corrupted state in shared memory (Tom)

Neither case is very important if SIGTERM is used to
shut down the whole database cluster together, but there
was a problem if someone tried to SIGTERM individual
backends.

Fix possible crash due to incorrect plan generated for
an x IN
(SELECT y FROM ...)
clause when x and
y have different data
types; and make sure the behavior is semantically correct
when the conversion from y's type to x's type is lossy (Tom)

Fix oversight that prevented the planner from
substituting known Param values as if they were constants
(Tom)

This mistake partially disabled optimization of unnamed
extended-Query statements in 8.3.0 and 8.3.1: in particular
the LIKE-to-indexscan optimization would never be applied
if the LIKE pattern was passed as a parameter, and
constraint exclusion depending on a parameter value didn't
work either.

Fix planner failure when an indexable MIN or MAX
aggregate is used with DISTINCT or
ORDER BY (Tom)

Fix planner to ensure it never uses a "physical tlist" for a plan node that is
feeding a Sort node (Tom)

This led to the sort having to push around more data
than it really needed to, since unused column values were
included in the sorted data.

Avoid unnecessary copying of query strings (Tom)

This fixes a performance problem introduced in 8.3.0
when a very large number of commands are submitted as a
single query string.

The problem occurs when there is a match to the pattern
overall but the user has specified a parenthesized
subexpression and that subexpression hasn't got a match. An
example is substring('foo' from
'foo(bar)?'). This should return NULL, since
(bar) isn't matched, but it was
mistakenly returning the whole-pattern match instead (ie,
foo).

Prevent cancellation of an auto-vacuum that was launched
to prevent XID wraparound (Alvaro)

Improve ANALYZE's handling of
in-doubt tuples (those inserted or deleted by a
not-yet-committed transaction) so that the counts it
reports to the stats collector are more likely to be
correct (Pavan Deolasee)

Fix initdb to reject a
relative path for its --xlogdir
(-X) option (Tom)

Make psql print tab
characters as an appropriate number of spaces, rather than
\x09 as was done in 8.3.0 and
8.3.1 (Bruce)