This change extends fixes made in the last two minor
releases for related failure scenarios. The previous fixes
were narrowly tailored for the original problem reports,
but we have now recognized that any error thrown by an
encoding conversion function could potentially lead to
infinite recursion while trying to report the error. The
solution therefore is to disable translation and encoding
conversion and report the plain-ASCII form of any error
message, if we find we have gotten into a recursive error
reporting situation. (CVE-2009-0922)

Disallow CREATE CONVERSION with
the wrong encodings for the specified conversion function
(Heikki)

This prevents one possible scenario for encoding
conversion failure. The previous change is a backstop to
guard against other kinds of failures in the same area.

Fix core dump when to_char() is given format codes that are
inappropriate for the type of the data argument (Tom)

Fix possible failure in contrib/tsearch2 when C locale is used with
a multi-byte encoding (Teodor)

Crashes were possible on platforms where wchar_t is narrower than int; Windows in particular.

This mistake could lead to Assert failures in an
Assert-enabled build, or an "unexpected
CASE WHEN clause" error message in other cases, when
trying to examine or dump a view.

Fix possible misassignment of the owner of a TOAST
table's rowtype (Tom)

If CLUSTER or a rewriting
variant of ALTER TABLE were
executed by someone other than the table owner, the
pg_type entry for the table's
TOAST table would end up marked as owned by that someone.
This caused no immediate problems, since the permissions on
the TOAST rowtype aren't examined by any ordinary database
operation. However, it could lead to unexpected failures if
one later tried to drop the role that issued the command
(in 8.1 or 8.2), or "owner of data type
appears to be invalid" warnings from pg_dump after having done so (in
8.3).

Fix PL/pgSQL to not treat INTO
after INSERT as an INTO-variables
clause anywhere in the string, not only at the start; in
particular, don't fail for INSERT
INTO within CREATE RULE
(Tom)