mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
Draft release notes for 9.1.2, 9.0.6, 8.4.10, 8.3.17, 8.2.23.
This commit is contained in:
parent
895d328a16
commit
56d609c3b1
@ -1,6 +1,234 @@
|
||||
<!-- 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>
|
||||
|
||||
|
@ -1,6 +1,273 @@
|
||||
<!-- 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>
|
||||
|
||||
|
@ -1,6 +1,321 @@
|
||||
<!-- 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>
|
||||
|
||||
|
@ -1,6 +1,390 @@
|
||||
<!-- 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>
|
||||
|
||||
|
@ -1,6 +1,647 @@
|
||||
<!-- 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>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user