<!-- doc/src/sgml/release-8.2.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-8-2-23">
+ <title>Release 8.2.23</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2011-12-05</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 8.2.22.
+ For information about new features in the 8.2 major release, see
+ <xref linkend="release-8-2">.
+ </para>
+
+ <para>
+ This is expected to be the last <productname>PostgreSQL</> release
+ in the 8.2.X series. Users are encouraged to update to a newer
+ release branch soon.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 8.2.23</title>
+
+ <para>
+ A dump/restore is not required for those running 8.2.X.
+ </para>
+
+ <para>
+ However, a longstanding error was discovered in the definition of the
+ <literal>information_schema.referential_constraints</> view. If you
+ rely on correct results from that view, you should replace its
+ definition as explained in the first changelog item below.
+ </para>
+
+ <para>
+ Also, if you are upgrading from a version earlier than 8.2.14,
+ see the release notes for 8.2.14.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix bugs in <literal>information_schema.referential_constraints</> view
+ (Tom Lane)
+ </para>
+
+ <para>
+ This view was being insufficiently careful about matching the
+ foreign-key constraint to the depended-on primary or unique key
+ constraint. That could result in failure to show a foreign key
+ constraint at all, or showing it multiple times, or claiming that it
+ depends on a different constraint than the one it really does.
+ </para>
+
+ <para>
+ Since the view definition is installed by <application>initdb</>,
+ merely upgrading will not fix the problem. If you need to fix this
+ in an existing installation, you can (as a superuser) drop the
+ <literal>information_schema</> schema then re-create it by sourcing
+ <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
+ (Run <literal>pg_config --sharedir</> if you're uncertain where
+ <replaceable>SHAREDIR</> is.) This must be repeated in each database
+ to be fixed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
+ SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
+ (Tom Lane)
+ </para>
+
+ <para>
+ If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
+ attempts to copy its data verbatim to another table could produce
+ corrupt results in certain corner cases.
+ The problem can only manifest in this precise form in 8.4 and later,
+ but we patched earlier versions as well in case there are other code
+ paths that could trigger the same bug.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race condition during toast table access from stale syscache entries
+ (Tom Lane)
+ </para>
+
+ <para>
+ The typical symptom was transient errors like <quote>missing chunk
+ number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
+ toast table would always belong to a system catalog.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve locale support in <type>money</> type's input and output
+ (Tom Lane)
+ </para>
+
+ <para>
+ Aside from not supporting all standard
+ <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
+ formatting options, the input and output functions were inconsistent,
+ meaning there were locales in which dumped <type>money</> values could
+ not be re-read.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't let <link
+ linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
+ affect <literal>CASE foo WHEN NULL ...</> constructs
+ (Heikki Linnakangas)
+ </para>
+
+ <para>
+ <varname>transform_null_equals</> is only supposed to affect
+ <literal>foo = NULL</> expressions written directly by the user, not
+ equality checks generated internally by this form of <literal>CASE</>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Change foreign-key trigger creation order to better support
+ self-referential foreign keys (Tom Lane)
+ </para>
+
+ <para>
+ For a cascading foreign key that references its own table, a row update
+ will fire both the <literal>ON UPDATE</> trigger and the
+ <literal>CHECK</> trigger as one event. The <literal>ON UPDATE</>
+ trigger must execute first, else the <literal>CHECK</> will check a
+ non-final state of the row and possibly throw an inappropriate error.
+ However, the firing order of these triggers is determined by their
+ names, which generally sort in creation order since the triggers have
+ auto-generated names following the convention
+ <quote>RI_ConstraintTrigger_NNNN</>. A proper fix would require
+ modifying that convention, which we will do in 9.2, but it seems risky
+ to change it in existing releases. So this patch just changes the
+ creation order of the triggers. Users encountering this type of error
+ should drop and re-create the foreign key constraint to get its
+ triggers into the right order.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Preserve blank lines within commands in <application>psql</>'s command
+ history (Robert Haas)
+ </para>
+
+ <para>
+ The former behavior could cause problems if an empty line was removed
+ from within a string literal, for example.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Use the preferred version of <application>xsubpp</> to build PL/Perl,
+ not necessarily the operating system's main copy
+ (David Wheeler and Alex Hunsaker)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Honor query cancel interrupts promptly in <function>pgstatindex()</>
+ (Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure VPATH builds properly install all server header files
+ (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Shorten file names reported in verbose error messages (Peter Eisentraut)
+ </para>
+
+ <para>
+ Regular builds have always reported just the name of the C file
+ containing the error message call, but VPATH builds formerly
+ reported an absolute path name.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix interpretation of Windows timezone names for Central America
+ (Tom Lane)
+ </para>
+
+ <para>
+ Map <quote>Central America Standard Time</> to <literal>CST6</>, not
+ <literal>CST6CDT</>, because DST is generally not observed anywhere in
+ Central America.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</> release 2011n
+ for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
+ also historical corrections for Alaska and British East Africa.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-8-2-22">
<title>Release 8.2.22</title>
<!-- doc/src/sgml/release-8.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-8-3-17">
+ <title>Release 8.3.17</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2011-12-05</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 8.3.16.
+ For information about new features in the 8.3 major release, see
+ <xref linkend="release-8-3">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 8.3.17</title>
+
+ <para>
+ A dump/restore is not required for those running 8.3.X.
+ </para>
+
+ <para>
+ However, a longstanding error was discovered in the definition of the
+ <literal>information_schema.referential_constraints</> view. If you
+ rely on correct results from that view, you should replace its
+ definition as explained in the first changelog item below.
+ </para>
+
+ <para>
+ Also, if you are upgrading from a version earlier than 8.3.8,
+ see the release notes for 8.3.8.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix bugs in <literal>information_schema.referential_constraints</> view
+ (Tom Lane)
+ </para>
+
+ <para>
+ This view was being insufficiently careful about matching the
+ foreign-key constraint to the depended-on primary or unique key
+ constraint. That could result in failure to show a foreign key
+ constraint at all, or showing it multiple times, or claiming that it
+ depends on a different constraint than the one it really does.
+ </para>
+
+ <para>
+ Since the view definition is installed by <application>initdb</>,
+ merely upgrading will not fix the problem. If you need to fix this
+ in an existing installation, you can (as a superuser) drop the
+ <literal>information_schema</> schema then re-create it by sourcing
+ <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
+ (Run <literal>pg_config --sharedir</> if you're uncertain where
+ <replaceable>SHAREDIR</> is.) This must be repeated in each database
+ to be fixed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
+ SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
+ (Tom Lane)
+ </para>
+
+ <para>
+ If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
+ attempts to copy its data verbatim to another table could produce
+ corrupt results in certain corner cases.
+ The problem can only manifest in this precise form in 8.4 and later,
+ but we patched earlier versions as well in case there are other code
+ paths that could trigger the same bug.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race condition during toast table access from stale syscache entries
+ (Tom Lane)
+ </para>
+
+ <para>
+ The typical symptom was transient errors like <quote>missing chunk
+ number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
+ toast table would always belong to a system catalog.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <function>DatumGetInetP()</> unpack inet datums that have a 1-byte
+ header, and add a new macro, <function>DatumGetInetPP()</>, that does
+ not (Heikki Linnakangas)
+ </para>
+
+ <para>
+ This change affects no core code, but might prevent crashes in add-on
+ code that expects <function>DatumGetInetP()</> to produce an unpacked
+ datum as per usual convention.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve locale support in <type>money</> type's input and output
+ (Tom Lane)
+ </para>
+
+ <para>
+ Aside from not supporting all standard
+ <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
+ formatting options, the input and output functions were inconsistent,
+ meaning there were locales in which dumped <type>money</> values could
+ not be re-read.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't let <link
+ linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
+ affect <literal>CASE foo WHEN NULL ...</> constructs
+ (Heikki Linnakangas)
+ </para>
+
+ <para>
+ <varname>transform_null_equals</> is only supposed to affect
+ <literal>foo = NULL</> expressions written directly by the user, not
+ equality checks generated internally by this form of <literal>CASE</>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Change foreign-key trigger creation order to better support
+ self-referential foreign keys (Tom Lane)
+ </para>
+
+ <para>
+ For a cascading foreign key that references its own table, a row update
+ will fire both the <literal>ON UPDATE</> trigger and the
+ <literal>CHECK</> trigger as one event. The <literal>ON UPDATE</>
+ trigger must execute first, else the <literal>CHECK</> will check a
+ non-final state of the row and possibly throw an inappropriate error.
+ However, the firing order of these triggers is determined by their
+ names, which generally sort in creation order since the triggers have
+ auto-generated names following the convention
+ <quote>RI_ConstraintTrigger_NNNN</>. A proper fix would require
+ modifying that convention, which we will do in 9.2, but it seems risky
+ to change it in existing releases. So this patch just changes the
+ creation order of the triggers. Users encountering this type of error
+ should drop and re-create the foreign key constraint to get its
+ triggers into the right order.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid floating-point underflow while tracking buffer allocation rate
+ (Greg Matthews)
+ </para>
+
+ <para>
+ While harmless in itself, on certain platforms this would result in
+ annoying kernel log messages.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Preserve blank lines within commands in <application>psql</>'s command
+ history (Robert Haas)
+ </para>
+
+ <para>
+ The former behavior could cause problems if an empty line was removed
+ from within a string literal, for example.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dump</> to dump user-defined casts between
+ auto-generated types, such as table rowtypes (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Use the preferred version of <application>xsubpp</> to build PL/Perl,
+ not necessarily the operating system's main copy
+ (David Wheeler and Alex Hunsaker)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect coding in <filename>contrib/dict_int</> and
+ <filename>contrib/dict_xsyn</> (Tom Lane)
+ </para>
+
+ <para>
+ Some functions incorrectly assumed that memory returned by
+ <function>palloc()</> is guaranteed zeroed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Honor query cancel interrupts promptly in <function>pgstatindex()</>
+ (Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure VPATH builds properly install all server header files
+ (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Shorten file names reported in verbose error messages (Peter Eisentraut)
+ </para>
+
+ <para>
+ Regular builds have always reported just the name of the C file
+ containing the error message call, but VPATH builds formerly
+ reported an absolute path name.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix interpretation of Windows timezone names for Central America
+ (Tom Lane)
+ </para>
+
+ <para>
+ Map <quote>Central America Standard Time</> to <literal>CST6</>, not
+ <literal>CST6CDT</>, because DST is generally not observed anywhere in
+ Central America.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</> release 2011n
+ for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
+ also historical corrections for Alaska and British East Africa.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-8-3-16">
<title>Release 8.3.16</title>
<!-- doc/src/sgml/release-8.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-8-4-10">
+ <title>Release 8.4.10</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2011-12-05</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 8.4.9.
+ For information about new features in the 8.4 major release, see
+ <xref linkend="release-8-4">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 8.4.10</title>
+
+ <para>
+ A dump/restore is not required for those running 8.4.X.
+ </para>
+
+ <para>
+ However, a longstanding error was discovered in the definition of the
+ <literal>information_schema.referential_constraints</> view. If you
+ rely on correct results from that view, you should replace its
+ definition as explained in the first changelog item below.
+ </para>
+
+ <para>
+ Also, if you are upgrading from a version earlier than 8.4.8,
+ see the release notes for 8.4.8.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix bugs in <literal>information_schema.referential_constraints</> view
+ (Tom Lane)
+ </para>
+
+ <para>
+ This view was being insufficiently careful about matching the
+ foreign-key constraint to the depended-on primary or unique key
+ constraint. That could result in failure to show a foreign key
+ constraint at all, or showing it multiple times, or claiming that it
+ depends on a different constraint than the one it really does.
+ </para>
+
+ <para>
+ Since the view definition is installed by <application>initdb</>,
+ merely upgrading will not fix the problem. If you need to fix this
+ in an existing installation, you can (as a superuser) drop the
+ <literal>information_schema</> schema then re-create it by sourcing
+ <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
+ (Run <literal>pg_config --sharedir</> if you're uncertain where
+ <replaceable>SHAREDIR</> is.) This must be repeated in each database
+ to be fixed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect replay of WAL records for GIN index updates
+ (Tom Lane)
+ </para>
+
+ <para>
+ This could result in transiently failing to find index entries after
+ a crash, or on a hot-standby server. The problem would be repaired
+ by the next <command>VACUUM</> of the index, however.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
+ SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
+ (Tom Lane)
+ </para>
+
+ <para>
+ If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
+ attempts to copy its data verbatim to another table could produce
+ corrupt results in certain corner cases.
+ The problem can only manifest in this precise form in 8.4 and later,
+ but we patched earlier versions as well in case there are other code
+ paths that could trigger the same bug.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race condition during toast table access from stale syscache entries
+ (Tom Lane)
+ </para>
+
+ <para>
+ The typical symptom was transient errors like <quote>missing chunk
+ number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
+ toast table would always belong to a system catalog.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Track dependencies of functions on items used in parameter default
+ expressions (Tom Lane)
+ </para>
+
+ <para>
+ Previously, a referenced object could be dropped without having dropped
+ or modified the function, leading to misbehavior when the function was
+ used. Note that merely installing this update will not fix the missing
+ dependency entries; to do that, you'd need to <command>CREATE OR
+ REPLACE</> each such function afterwards. If you have functions whose
+ defaults depend on non-built-in objects, doing so is recommended.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow inlining of set-returning SQL functions with multiple OUT
+ parameters (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <function>DatumGetInetP()</> unpack inet datums that have a 1-byte
+ header, and add a new macro, <function>DatumGetInetPP()</>, that does
+ not (Heikki Linnakangas)
+ </para>
+
+ <para>
+ This change affects no core code, but might prevent crashes in add-on
+ code that expects <function>DatumGetInetP()</> to produce an unpacked
+ datum as per usual convention.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve locale support in <type>money</> type's input and output
+ (Tom Lane)
+ </para>
+
+ <para>
+ Aside from not supporting all standard
+ <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
+ formatting options, the input and output functions were inconsistent,
+ meaning there were locales in which dumped <type>money</> values could
+ not be re-read.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't let <link
+ linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
+ affect <literal>CASE foo WHEN NULL ...</> constructs
+ (Heikki Linnakangas)
+ </para>
+
+ <para>
+ <varname>transform_null_equals</> is only supposed to affect
+ <literal>foo = NULL</> expressions written directly by the user, not
+ equality checks generated internally by this form of <literal>CASE</>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Change foreign-key trigger creation order to better support
+ self-referential foreign keys (Tom Lane)
+ </para>
+
+ <para>
+ For a cascading foreign key that references its own table, a row update
+ will fire both the <literal>ON UPDATE</> trigger and the
+ <literal>CHECK</> trigger as one event. The <literal>ON UPDATE</>
+ trigger must execute first, else the <literal>CHECK</> will check a
+ non-final state of the row and possibly throw an inappropriate error.
+ However, the firing order of these triggers is determined by their
+ names, which generally sort in creation order since the triggers have
+ auto-generated names following the convention
+ <quote>RI_ConstraintTrigger_NNNN</>. A proper fix would require
+ modifying that convention, which we will do in 9.2, but it seems risky
+ to change it in existing releases. So this patch just changes the
+ creation order of the triggers. Users encountering this type of error
+ should drop and re-create the foreign key constraint to get its
+ triggers into the right order.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid floating-point underflow while tracking buffer allocation rate
+ (Greg Matthews)
+ </para>
+
+ <para>
+ While harmless in itself, on certain platforms this would result in
+ annoying kernel log messages.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Preserve configuration file name and line number values when starting
+ child processes under Windows (Tom Lane)
+ </para>
+
+ <para>
+ Formerly, these would not be displayed correctly in the
+ <structname>pg_settings</> view.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Preserve blank lines within commands in <application>psql</>'s command
+ history (Robert Haas)
+ </para>
+
+ <para>
+ The former behavior could cause problems if an empty line was removed
+ from within a string literal, for example.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dump</> to dump user-defined casts between
+ auto-generated types, such as table rowtypes (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Use the preferred version of <application>xsubpp</> to build PL/Perl,
+ not necessarily the operating system's main copy
+ (David Wheeler and Alex Hunsaker)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect coding in <filename>contrib/dict_int</> and
+ <filename>contrib/dict_xsyn</> (Tom Lane)
+ </para>
+
+ <para>
+ Some functions incorrectly assumed that memory returned by
+ <function>palloc()</> is guaranteed zeroed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Honor query cancel interrupts promptly in <function>pgstatindex()</>
+ (Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure VPATH builds properly install all server header files
+ (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Shorten file names reported in verbose error messages (Peter Eisentraut)
+ </para>
+
+ <para>
+ Regular builds have always reported just the name of the C file
+ containing the error message call, but VPATH builds formerly
+ reported an absolute path name.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix interpretation of Windows timezone names for Central America
+ (Tom Lane)
+ </para>
+
+ <para>
+ Map <quote>Central America Standard Time</> to <literal>CST6</>, not
+ <literal>CST6CDT</>, because DST is generally not observed anywhere in
+ Central America.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</> release 2011n
+ for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
+ also historical corrections for Alaska and British East Africa.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-8-4-9">
<title>Release 8.4.9</title>
<!-- doc/src/sgml/release-9.0.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-0-6">
+ <title>Release 9.0.6</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2011-12-05</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.0.5.
+ For information about new features in the 9.0 major release, see
+ <xref linkend="release-9-0">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.0.6</title>
+
+ <para>
+ A dump/restore is not required for those running 9.0.X.
+ </para>
+
+ <para>
+ However, a longstanding error was discovered in the definition of the
+ <literal>information_schema.referential_constraints</> view. If you
+ rely on correct results from that view, you should replace its
+ definition as explained in the first changelog item below.
+ </para>
+
+ <para>
+ Also, if you are upgrading from a version earlier than 9.0.4,
+ see the release notes for 9.0.4.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix bugs in <literal>information_schema.referential_constraints</> view
+ (Tom Lane)
+ </para>
+
+ <para>
+ This view was being insufficiently careful about matching the
+ foreign-key constraint to the depended-on primary or unique key
+ constraint. That could result in failure to show a foreign key
+ constraint at all, or showing it multiple times, or claiming that it
+ depends on a different constraint than the one it really does.
+ </para>
+
+ <para>
+ Since the view definition is installed by <application>initdb</>,
+ merely upgrading will not fix the problem. If you need to fix this
+ in an existing installation, you can (as a superuser) drop the
+ <literal>information_schema</> schema then re-create it by sourcing
+ <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
+ (Run <literal>pg_config --sharedir</> if you're uncertain where
+ <replaceable>SHAREDIR</> is.) This must be repeated in each database
+ to be fixed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crash during <command>UPDATE</> or <command>DELETE</> that
+ joins to the output of a scalar-returning function (Tom Lane)
+ </para>
+
+ <para>
+ A crash could only occur if the target row had been concurrently
+ updated, so this problem surfaced only intermittently.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect replay of WAL records for GIN index updates
+ (Tom Lane)
+ </para>
+
+ <para>
+ This could result in transiently failing to find index entries after
+ a crash, or on a hot-standby server. The problem would be repaired
+ by the next <command>VACUUM</> of the index, however.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
+ SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
+ (Tom Lane)
+ </para>
+
+ <para>
+ If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
+ attempts to copy its data verbatim to another table could produce
+ corrupt results in certain corner cases.
+ The problem can only manifest in this precise form in 8.4 and later,
+ but we patched earlier versions as well in case there are other code
+ paths that could trigger the same bug.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible failures during hot standby startup (Simon Riggs)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Start hot standby faster when initial snapshot is incomplete
+ (Simon Riggs)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race condition during toast table access from stale syscache entries
+ (Tom Lane)
+ </para>
+
+ <para>
+ The typical symptom was transient errors like <quote>missing chunk
+ number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
+ toast table would always belong to a system catalog.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Track dependencies of functions on items used in parameter default
+ expressions (Tom Lane)
+ </para>
+
+ <para>
+ Previously, a referenced object could be dropped without having dropped
+ or modified the function, leading to misbehavior when the function was
+ used. Note that merely installing this update will not fix the missing
+ dependency entries; to do that, you'd need to <command>CREATE OR
+ REPLACE</> each such function afterwards. If you have functions whose
+ defaults depend on non-built-in objects, doing so is recommended.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow inlining of set-returning SQL functions with multiple OUT
+ parameters (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't trust deferred-unique indexes for join removal (Tom Lane and Marti
+ Raudsepp)
+ </para>
+
+ <para>
+ A deferred uniqueness constraint might not hold intra-transaction,
+ so assuming that it does could give incorrect query results.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <function>DatumGetInetP()</> unpack inet datums that have a 1-byte
+ header, and add a new macro, <function>DatumGetInetPP()</>, that does
+ not (Heikki Linnakangas)
+ </para>
+
+ <para>
+ This change affects no core code, but might prevent crashes in add-on
+ code that expects <function>DatumGetInetP()</> to produce an unpacked
+ datum as per usual convention.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve locale support in <type>money</> type's input and output
+ (Tom Lane)
+ </para>
+
+ <para>
+ Aside from not supporting all standard
+ <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
+ formatting options, the input and output functions were inconsistent,
+ meaning there were locales in which dumped <type>money</> values could
+ not be re-read.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't let <link
+ linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
+ affect <literal>CASE foo WHEN NULL ...</> constructs
+ (Heikki Linnakangas)
+ </para>
+
+ <para>
+ <varname>transform_null_equals</> is only supposed to affect
+ <literal>foo = NULL</> expressions written directly by the user, not
+ equality checks generated internally by this form of <literal>CASE</>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Change foreign-key trigger creation order to better support
+ self-referential foreign keys (Tom Lane)
+ </para>
+
+ <para>
+ For a cascading foreign key that references its own table, a row update
+ will fire both the <literal>ON UPDATE</> trigger and the
+ <literal>CHECK</> trigger as one event. The <literal>ON UPDATE</>
+ trigger must execute first, else the <literal>CHECK</> will check a
+ non-final state of the row and possibly throw an inappropriate error.
+ However, the firing order of these triggers is determined by their
+ names, which generally sort in creation order since the triggers have
+ auto-generated names following the convention
+ <quote>RI_ConstraintTrigger_NNNN</>. A proper fix would require
+ modifying that convention, which we will do in 9.2, but it seems risky
+ to change it in existing releases. So this patch just changes the
+ creation order of the triggers. Users encountering this type of error
+ should drop and re-create the foreign key constraint to get its
+ triggers into the right order.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid floating-point underflow while tracking buffer allocation rate
+ (Greg Matthews)
+ </para>
+
+ <para>
+ While harmless in itself, on certain platforms this would result in
+ annoying kernel log messages.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Preserve configuration file name and line number values when starting
+ child processes under Windows (Tom Lane)
+ </para>
+
+ <para>
+ Formerly, these would not be displayed correctly in the
+ <structname>pg_settings</> view.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect field alignment in <application>ecpg</>'s SQLDA area
+ (Zoltan Boszormenyi)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Preserve blank lines within commands in <application>psql</>'s command
+ history (Robert Haas)
+ </para>
+
+ <para>
+ The former behavior could cause problems if an empty line was removed
+ from within a string literal, for example.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dump</> to dump user-defined casts between
+ auto-generated types, such as table rowtypes (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Assorted fixes for <application>pg_upgrade</> (Bruce Momjian)
+ </para>
+
+ <para>
+ Handle exclusion constraints correctly, avoid failures on Windows,
+ don't complain about mismatched toast table names in 8.4 databases.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Use the preferred version of <application>xsubpp</> to build PL/Perl,
+ not necessarily the operating system's main copy
+ (David Wheeler and Alex Hunsaker)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect coding in <filename>contrib/dict_int</> and
+ <filename>contrib/dict_xsyn</> (Tom Lane)
+ </para>
+
+ <para>
+ Some functions incorrectly assumed that memory returned by
+ <function>palloc()</> is guaranteed zeroed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix assorted errors in <filename>contrib/unaccent</>'s configuration
+ file parsing (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Honor query cancel interrupts promptly in <function>pgstatindex()</>
+ (Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect quoting of log file name in Mac OS X start script
+ (Sidar Lopez)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure VPATH builds properly install all server header files
+ (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Shorten file names reported in verbose error messages (Peter Eisentraut)
+ </para>
+
+ <para>
+ Regular builds have always reported just the name of the C file
+ containing the error message call, but VPATH builds formerly
+ reported an absolute path name.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix interpretation of Windows timezone names for Central America
+ (Tom Lane)
+ </para>
+
+ <para>
+ Map <quote>Central America Standard Time</> to <literal>CST6</>, not
+ <literal>CST6CDT</>, because DST is generally not observed anywhere in
+ Central America.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</> release 2011n
+ for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
+ also historical corrections for Alaska and British East Africa.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-0-5">
<title>Release 9.0.5</title>
<!-- doc/src/sgml/release-9.1.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-9-1-2">
+ <title>Release 9.1.2</title>
+
+ <note>
+ <title>Release Date</title>
+ <simpara>2011-12-05</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 9.1.1.
+ For information about new features in the 9.1 major release, see
+ <xref linkend="release-9-1">.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 9.1.2</title>
+
+ <para>
+ A dump/restore is not required for those running 9.1.X.
+ </para>
+
+ <para>
+ However, a longstanding error was discovered in the definition of the
+ <literal>information_schema.referential_constraints</> view. If you
+ rely on correct results from that view, you should replace its
+ definition as explained in the first changelog item below.
+ </para>
+
+ <para>
+ Also, if your installation was upgraded from a previous major release
+ by running <application>pg_upgrade</>, and it contains table columns of
+ the <type>citext</> data type, you should run <literal>CREATE EXTENSION
+ citext FROM unpackaged</>. If you've already done that before
+ upgrading to 9.1.2, you will instead need to do manual catalog updates
+ as explained in the second changelog item.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Fix bugs in <literal>information_schema.referential_constraints</> view
+ (Tom Lane)
+ </para>
+
+ <para>
+ This view was being insufficiently careful about matching the
+ foreign-key constraint to the depended-on primary or unique key
+ constraint. That could result in failure to show a foreign key
+ constraint at all, or showing it multiple times, or claiming that it
+ depends on a different constraint than the one it really does.
+ </para>
+
+ <para>
+ Since the view definition is installed by <application>initdb</>,
+ merely upgrading will not fix the problem. If you need to fix this
+ in an existing installation, you can (as a superuser) drop the
+ <literal>information_schema</> schema then re-create it by sourcing
+ <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
+ (Run <literal>pg_config --sharedir</> if you're uncertain where
+ <replaceable>SHAREDIR</> is.) This must be repeated in each database
+ to be fixed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <filename>contrib/citext</>'s upgrade script fix collations of
+ <type>citext</> columns and indexes (Tom Lane)
+ </para>
+
+ <para>
+ Existing <type>citext</> columns and indexes aren't correctly marked as
+ being of a collatable data type during <application>pg_upgrade</> from
+ a pre-9.1 server. That leads to operations on them failing with errors
+ such as <quote>could not determine which collation to use for string
+ comparison</>. This change allows them to be fixed by the same
+ script that upgrades the <type>citext</> module into a proper 9.1
+ extension during <literal>CREATE EXTENSION citext FROM unpackaged</>.
+ </para>
+
+ <para>
+ If you have a previously-upgraded database that is suffering from this
+ problem, and you already ran the <command>CREATE EXTENSION</> command,
+ you can manually run (as superuser) the <command>UPDATE</> commands
+ found at the end of
+ <filename><replaceable>SHAREDIR</>/extension/citext--unpackaged--1.0.sql</filename>.
+ (Run <literal>pg_config --sharedir</> if you're uncertain where
+ <replaceable>SHAREDIR</> is.)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible crash during <command>UPDATE</> or <command>DELETE</> that
+ joins to the output of a scalar-returning function (Tom Lane)
+ </para>
+
+ <para>
+ A crash could only occur if the target row had been concurrently
+ updated, so this problem surfaced only intermittently.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect replay of WAL records for GIN index updates
+ (Tom Lane)
+ </para>
+
+ <para>
+ This could result in transiently failing to find index entries after
+ a crash, or on a hot-standby server. The problem would be repaired
+ by the next <command>VACUUM</> of the index, however.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
+ SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
+ (Tom Lane)
+ </para>
+
+ <para>
+ If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
+ attempts to copy its data verbatim to another table could produce
+ corrupt results in certain corner cases.
+ The problem can only manifest in this precise form in 8.4 and later,
+ but we patched earlier versions as well in case there are other code
+ paths that could trigger the same bug.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix possible failures during hot standby startup (Simon Riggs)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Start hot standby faster when initial snapshot is incomplete
+ (Simon Riggs)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix race condition during toast table access from stale syscache entries
+ (Tom Lane)
+ </para>
+
+ <para>
+ The typical symptom was transient errors like <quote>missing chunk
+ number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
+ toast table would always belong to a system catalog.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Track dependencies of functions on items used in parameter default
+ expressions (Tom Lane)
+ </para>
+
+ <para>
+ Previously, a referenced object could be dropped without having dropped
+ or modified the function, leading to misbehavior when the function was
+ used. Note that merely installing this update will not fix the missing
+ dependency entries; to do that, you'd need to <command>CREATE OR
+ REPLACE</> each such function afterwards. If you have functions whose
+ defaults depend on non-built-in objects, doing so is recommended.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect management of placeholder variables in nestloop joins
+ (Tom Lane)
+ </para>
+
+ <para>
+ This bug is known to lead to <quote>variable not found in subplan target
+ list</> planner errors, and could possibly result in wrong query output
+ when outer joins are involved.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix window functions that sort by expressions involving aggregates
+ (Tom Lane)
+ </para>
+
+ <para>
+ Previously these could fail with <quote>could not find pathkey item to
+ sort</> planner errors.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <quote>MergeAppend child's targetlist doesn't match MergeAppend</>
+ planner errors (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix index matching for operators with both collatable and noncollatable
+ inputs (Tom Lane)
+ </para>
+
+ <para>
+ In 9.1.0, an indexable operator that has a non-collatable left-hand
+ input type and a collatable right-hand input type would not be
+ recognized as matching the left-hand column's index. An example is
+ the <type>hstore</> <literal>?</> <type>text</> operator.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow inlining of set-returning SQL functions with multiple OUT
+ parameters (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't trust deferred-unique indexes for join removal (Tom Lane and Marti
+ Raudsepp)
+ </para>
+
+ <para>
+ A deferred uniqueness constraint might not hold intra-transaction,
+ so assuming that it does could give incorrect query results.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make <function>DatumGetInetP()</> unpack inet datums that have a 1-byte
+ header, and add a new macro, <function>DatumGetInetPP()</>, that does
+ not (Heikki Linnakangas)
+ </para>
+
+ <para>
+ This change affects no core code, but might prevent crashes in add-on
+ code that expects <function>DatumGetInetP()</> to produce an unpacked
+ datum as per usual convention.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improve locale support in <type>money</> type's input and output
+ (Tom Lane)
+ </para>
+
+ <para>
+ Aside from not supporting all standard
+ <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
+ formatting options, the input and output functions were inconsistent,
+ meaning there were locales in which dumped <type>money</> values could
+ not be re-read.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't let <link
+ linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
+ affect <literal>CASE foo WHEN NULL ...</> constructs
+ (Heikki Linnakangas)
+ </para>
+
+ <para>
+ <varname>transform_null_equals</> is only supposed to affect
+ <literal>foo = NULL</> expressions written directly by the user, not
+ equality checks generated internally by this form of <literal>CASE</>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Change foreign-key trigger creation order to better support
+ self-referential foreign keys (Tom Lane)
+ </para>
+
+ <para>
+ For a cascading foreign key that references its own table, a row update
+ will fire both the <literal>ON UPDATE</> trigger and the
+ <literal>CHECK</> trigger as one event. The <literal>ON UPDATE</>
+ trigger must execute first, else the <literal>CHECK</> will check a
+ non-final state of the row and possibly throw an inappropriate error.
+ However, the firing order of these triggers is determined by their
+ names, which generally sort in creation order since the triggers have
+ auto-generated names following the convention
+ <quote>RI_ConstraintTrigger_NNNN</>. A proper fix would require
+ modifying that convention, which we will do in 9.2, but it seems risky
+ to change it in existing releases. So this patch just changes the
+ creation order of the triggers. Users encountering this type of error
+ should drop and re-create the foreign key constraint to get its
+ triggers into the right order.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <literal>IF EXISTS</> to work correctly in <command>DROP OPERATOR
+ FAMILY</> (Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Disallow dropping of an extension from within its own script
+ (Tom Lane)
+ </para>
+
+ <para>
+ This prevents odd behavior in case of incorrect management of extension
+ dependencies.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't mark auto-generated types as extension members (Robert Haas)
+ </para>
+
+ <para>
+ Relation rowtypes and automatically-generated array types do not need to
+ have their own extension membership entries in <structname>pg_depend</>,
+ and creating such entries complicates matters for extension upgrades.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Cope with invalid pre-existing <varname>search_path</> settings during
+ <command>CREATE EXTENSION</> (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid floating-point underflow while tracking buffer allocation rate
+ (Greg Matthews)
+ </para>
+
+ <para>
+ While harmless in itself, on certain platforms this would result in
+ annoying kernel log messages.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Prevent autovacuum transactions from running in serializable mode
+ (Tom Lane)
+ </para>
+
+ <para>
+ Autovacuum formerly used the cluster-wide default transaction isolation
+ level, but there is no need for it to use anything higher than READ
+ COMMITTED, and using SERIALIZABLE could result in unnecessary delays
+ for other processes.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure walsender processes respond promptly to <systemitem>SIGTERM</>
+ (Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Exclude <filename>postmaster.opts</> from base backups
+ (Magnus Hagander)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Preserve configuration file name and line number values when starting
+ child processes under Windows (Tom Lane)
+ </para>
+
+ <para>
+ Formerly, these would not be displayed correctly in the
+ <structname>pg_settings</> view.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect field alignment in <application>ecpg</>'s SQLDA area
+ (Zoltan Boszormenyi)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Preserve blank lines within commands in <application>psql</>'s command
+ history (Robert Haas)
+ </para>
+
+ <para>
+ The former behavior could cause problems if an empty line was removed
+ from within a string literal, for example.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid platform-specific infinite loop in <application>pg_dump</>
+ (Steve Singer)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix compression of plain-text output format in <application>pg_dump</>
+ (Adrian Klaver and Tom Lane)
+ </para>
+
+ <para>
+ <application>pg_dump</> has historically understood <literal>-Z</> with
+ no <literal>-F</> switch to mean that it should emit a gzip-compressed
+ version of its plain text output. Restore that behavior.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix <application>pg_dump</> to dump user-defined casts between
+ auto-generated types, such as table rowtypes (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix missed quoting of foreign server names in <application>pg_dump</>
+ (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Assorted fixes for <application>pg_upgrade</> (Bruce Momjian)
+ </para>
+
+ <para>
+ Handle exclusion constraints correctly, avoid failures on Windows,
+ don't complain about mismatched toast table names in 8.4 databases.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In PL/pgSQL, allow foreign tables to define row types
+ (Alexander Soudakov)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix up conversions of PL/Perl functions' results
+ (Alex Hunsaker and Tom Lane)
+ </para>
+
+ <para>
+ Restore the pre-9.1 behavior that PL/Perl functions returning
+ <type>void</> ignore the result value of their last Perl statement;
+ 9.1.0 would throw an error if that statement returned a reference.
+ Also, make sure it works to return a string value for a composite type,
+ so long as the string meets the type's input format.
+ In addition, throw errors for attempts to return Perl arrays or hashes
+ when the function's declared result type is not an array or composite
+ type, respectively. (Pre-9.1 versions rather uselessly returned
+ strings like <literal>ARRAY(0x221a9a0)</> or
+ <literal>HASH(0x221aa90)</> in such cases.)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure PL/Perl strings are always correctly UTF8-encoded
+ (Amit Khandekar and Alex Hunsaker)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Use the preferred version of <application>xsubpp</> to build PL/Perl,
+ not necessarily the operating system's main copy
+ (David Wheeler and Alex Hunsaker)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Correctly propagate SQLSTATE in PL/Python exceptions
+ (Mika Eloranta and Jan Urbanski)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Do not install PL/Python extension files for Python major versions
+ other than the one built against (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Change all the <filename>contrib</> extension script files to report
+ a useful error message if they are fed to <application>psql</>
+ (Andrew Dunstan and Tom Lane)
+ </para>
+
+ <para>
+ This should help teach people about the new method of using
+ <command>CREATE EXTENSION</> to load these files. In most cases,
+ sourcing the scripts directly would fail anyway, but with
+ harder-to-interpret messages.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect coding in <filename>contrib/dict_int</> and
+ <filename>contrib/dict_xsyn</> (Tom Lane)
+ </para>
+
+ <para>
+ Some functions incorrectly assumed that memory returned by
+ <function>palloc()</> is guaranteed zeroed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Remove <filename>contrib/sepgsql</> tests from the regular regression
+ test mechanism (Tom Lane)
+ </para>
+
+ <para>
+ Since these tests require root privileges for setup, they're impractical
+ to run automatically. Switch over to a manual approach instead, and
+ provide a testing script to help with that.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix assorted errors in <filename>contrib/unaccent</>'s configuration
+ file parsing (Tom Lane)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Honor query cancel interrupts promptly in <function>pgstatindex()</>
+ (Robert Haas)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix incorrect quoting of log file name in Mac OS X start script
+ (Sidar Lopez)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Revert unintentional enabling of <literal>WAL_DEBUG</> (Robert Haas)
+ </para>
+
+ <para>
+ Fortunately, as debugging tools go, this one is pretty cheap;
+ but it's not intended to be enabled by default, so revert.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure VPATH builds properly install all server header files
+ (Peter Eisentraut)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Shorten file names reported in verbose error messages (Peter Eisentraut)
+ </para>
+
+ <para>
+ Regular builds have always reported just the name of the C file
+ containing the error message call, but VPATH builds formerly
+ reported an absolute path name.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fix interpretation of Windows timezone names for Central America
+ (Tom Lane)
+ </para>
+
+ <para>
+ Map <quote>Central America Standard Time</> to <literal>CST6</>, not
+ <literal>CST6CDT</>, because DST is generally not observed anywhere in
+ Central America.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Update time zone data files to <application>tzdata</> release 2011n
+ for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
+ also historical corrections for Alaska and British East Africa.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-9-1-1">
<title>Release 9.1.1</title>