Release notes for 10.2, 9.6.7, 9.5.11, 9.4.16, 9.3.21.
This commit is contained in:
parent
64fb645914
commit
cf1cba3110
@ -1,6 +1,306 @@
|
||||
<!-- doc/src/sgml/release-9.3.sgml -->
|
||||
<!-- See header comment in release.sgml about typical markup -->
|
||||
|
||||
<sect1 id="release-9-3-21">
|
||||
<title>Release 9.3.21</title>
|
||||
|
||||
<formalpara>
|
||||
<title>Release date:</title>
|
||||
<para>2018-02-08</para>
|
||||
</formalpara>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 9.3.20.
|
||||
For information about new features in the 9.3 major release, see
|
||||
<xref linkend="release-9-3"/>.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to Version 9.3.21</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 9.3.X.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However, if you are upgrading from a version earlier than 9.3.18,
|
||||
see <xref linkend="release-9-3-18"/>.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Changes</title>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix vacuuming of tuples that were updated while key-share locked
|
||||
(Andres Freund, Álvaro Herrera)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In some cases <command>VACUUM</command> would fail to remove such
|
||||
tuples even though they are now dead, leading to assorted data
|
||||
corruption scenarios.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix inadequate buffer locking in some LSN fetches (Jacob Champion,
|
||||
Asim Praveen, Ashwin Agrawal)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
These errors could result in misbehavior under concurrent load.
|
||||
The potential consequences have not been characterized fully.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid unnecessary failure in a query on an inheritance tree that
|
||||
occurs concurrently with some child table being removed from the tree
|
||||
by <command>ALTER TABLE NO INHERIT</command> (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Repair failure with correlated sub-<literal>SELECT</literal>
|
||||
inside <literal>VALUES</literal> inside a <literal>LATERAL</literal>
|
||||
subquery (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <quote>could not devise a query plan for the given query</quote>
|
||||
planner failure for some cases involving nested <literal>UNION
|
||||
ALL</literal> inside a lateral subquery (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <function>has_sequence_privilege()</function> to
|
||||
support <literal>WITH GRANT OPTION</literal> tests,
|
||||
as other privilege-testing functions do (Joe Conway)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In databases using UTF8 encoding, ignore any XML declaration that
|
||||
asserts a different encoding (Pavel Stehule, Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
We always store XML strings in the database encoding, so allowing
|
||||
libxml to act on a declaration of another encoding gave wrong results.
|
||||
In encodings other than UTF8, we don't promise to support non-ASCII
|
||||
XML data anyway, so retain the previous behavior for bug compatibility.
|
||||
This change affects only <function>xpath()</function> and related
|
||||
functions; other XML code paths already acted this way.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Provide for forward compatibility with future minor protocol versions
|
||||
(Robert Haas, Badrul Chowdhury)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Up to now, <productname>PostgreSQL</productname> servers simply
|
||||
rejected requests to use protocol versions newer than 3.0, so that
|
||||
there was no functional difference between the major and minor parts
|
||||
of the protocol version number. Allow clients to request versions 3.x
|
||||
without failing, sending back a message showing that the server only
|
||||
understands 3.0. This makes no difference at the moment, but
|
||||
back-patching this change should allow speedier introduction of future
|
||||
minor protocol upgrades.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Prevent stack-overflow crashes when planning extremely deeply
|
||||
nested set operations
|
||||
(<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>)
|
||||
(Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix null-pointer crashes for some types of LDAP URLs appearing
|
||||
in <filename>pg_hba.conf</filename> (Thomas Munro)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix sample <function>INSTR()</function> functions in the PL/pgSQL
|
||||
documentation (Yugo Nagata, Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
These functions are stated to
|
||||
be <trademark class="registered">Oracle</trademark> compatible, but
|
||||
they weren't exactly. In particular, there was a discrepancy in the
|
||||
interpretation of a negative third parameter: Oracle thinks that a
|
||||
negative value indicates the last place where the target substring can
|
||||
begin, whereas our functions took it as the last place where the
|
||||
target can end. Also, Oracle throws an error for a zero or negative
|
||||
fourth parameter, whereas our functions returned zero.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The sample code has been adjusted to match Oracle's behavior more
|
||||
precisely. Users who have copied this code into their applications
|
||||
may wish to update their copies.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <application>pg_dump</application> to make ACL (permissions),
|
||||
comment, and security label entries reliably identifiable in archive
|
||||
output formats (Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <quote>tag</quote> portion of an ACL archive entry was usually
|
||||
just the name of the associated object. Make it start with the object
|
||||
type instead, bringing ACLs into line with the convention already used
|
||||
for comment and security label archive entries. Also, fix the
|
||||
comment and security label entries for the whole database, if present,
|
||||
to make their tags start with <literal>DATABASE</literal> so that they
|
||||
also follow this convention. This prevents false matches in code that
|
||||
tries to identify large-object-related entries by seeing if the tag
|
||||
starts with <literal>LARGE OBJECT</literal>. That could have resulted
|
||||
in misclassifying entries as data rather than schema, with undesirable
|
||||
results in a schema-only or data-only dump.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note that this change has user-visible results in the output
|
||||
of <command>pg_restore --list</command>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In <application>ecpg</application>, detect indicator arrays that do
|
||||
not have the correct length and report an error (David Rader)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid triggering a libc assertion
|
||||
in <filename>contrib/hstore</filename>, due to use
|
||||
of <function>memcpy()</function> with equal source and destination
|
||||
pointers (Tomas Vondra)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Provide modern examples of how to auto-start Postgres on macOS
|
||||
(Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The scripts in <filename>contrib/start-scripts/osx</filename> use
|
||||
infrastructure that's been deprecated for over a decade, and which no
|
||||
longer works at all in macOS releases of the last couple of years.
|
||||
Add a new subdirectory <filename>contrib/start-scripts/macos</filename>
|
||||
containing scripts that use the newer <application>launchd</application>
|
||||
infrastructure.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix incorrect selection of configuration-specific libraries for
|
||||
OpenSSL on Windows (Andrew Dunstan)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Support linking to MinGW-built versions of libperl (Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This allows building PL/Perl with some common Perl distributions for
|
||||
Windows.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix MSVC build to test whether 32-bit libperl
|
||||
needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Available Perl distributions are inconsistent about what they expect,
|
||||
and lack any reliable means of reporting it, so resort to a build-time
|
||||
test on what the library being used actually does.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
On Windows, install the crash dump handler earlier in postmaster
|
||||
startup (Takayuki Tsunakawa)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This may allow collection of a core dump for some early-startup
|
||||
failures that did not produce a dump before.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
On Windows, avoid encoding-conversion-related crashes when emitting
|
||||
messages very early in postmaster startup (Takayuki Tsunakawa)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Use our existing Motorola 68K spinlock code on OpenBSD as
|
||||
well as NetBSD (David Carlier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Add support for spinlocks on Motorola 88K (David Carlier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Update time zone data files to <application>tzdata</application>
|
||||
release 2018c for DST law changes in Brazil, Sao Tome and Principe,
|
||||
plus historical corrections for Bolivia, Japan, and South Sudan.
|
||||
The <literal>US/Pacific-New</literal> zone has been removed (it was
|
||||
only an alias for <literal>America/Los_Angeles</literal> anyway).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="release-9-3-20">
|
||||
<title>Release 9.3.20</title>
|
||||
|
||||
|
@ -1,6 +1,347 @@
|
||||
<!-- doc/src/sgml/release-9.4.sgml -->
|
||||
<!-- See header comment in release.sgml about typical markup -->
|
||||
|
||||
<sect1 id="release-9-4-16">
|
||||
<title>Release 9.4.16</title>
|
||||
|
||||
<formalpara>
|
||||
<title>Release date:</title>
|
||||
<para>2018-02-08</para>
|
||||
</formalpara>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 9.4.15.
|
||||
For information about new features in the 9.4 major release, see
|
||||
<xref linkend="release-9-4"/>.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to Version 9.4.16</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 9.4.X.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However, if you are upgrading from a version earlier than 9.4.13,
|
||||
see <xref linkend="release-9-4-13"/>.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Changes</title>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix vacuuming of tuples that were updated while key-share locked
|
||||
(Andres Freund, Álvaro Herrera)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In some cases <command>VACUUM</command> would fail to remove such
|
||||
tuples even though they are now dead, leading to assorted data
|
||||
corruption scenarios.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix inadequate buffer locking in some LSN fetches (Jacob Champion,
|
||||
Asim Praveen, Ashwin Agrawal)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
These errors could result in misbehavior under concurrent load.
|
||||
The potential consequences have not been characterized fully.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid unnecessary failure in a query on an inheritance tree that
|
||||
occurs concurrently with some child table being removed from the tree
|
||||
by <command>ALTER TABLE NO INHERIT</command> (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix spurious deadlock failures when multiple sessions are
|
||||
running <command>CREATE INDEX CONCURRENTLY</command> (Jeff Janes)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Repair failure with correlated sub-<literal>SELECT</literal>
|
||||
inside <literal>VALUES</literal> inside a <literal>LATERAL</literal>
|
||||
subquery (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <quote>could not devise a query plan for the given query</quote>
|
||||
planner failure for some cases involving nested <literal>UNION
|
||||
ALL</literal> inside a lateral subquery (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix logical decoding to correctly clean up disk files for crashed
|
||||
transactions (Atsushi Torikoshi)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Logical decoding may spill WAL records to disk for transactions
|
||||
generating many WAL records. Normally these files are cleaned up
|
||||
after the transaction's commit or abort record arrives; but if
|
||||
no such record is ever seen, the removal code misbehaved.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix walsender timeout failure and failure to respond to interrupts
|
||||
when processing a large transaction (Petr Jelinek)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <function>has_sequence_privilege()</function> to
|
||||
support <literal>WITH GRANT OPTION</literal> tests,
|
||||
as other privilege-testing functions do (Joe Conway)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In databases using UTF8 encoding, ignore any XML declaration that
|
||||
asserts a different encoding (Pavel Stehule, Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
We always store XML strings in the database encoding, so allowing
|
||||
libxml to act on a declaration of another encoding gave wrong results.
|
||||
In encodings other than UTF8, we don't promise to support non-ASCII
|
||||
XML data anyway, so retain the previous behavior for bug compatibility.
|
||||
This change affects only <function>xpath()</function> and related
|
||||
functions; other XML code paths already acted this way.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Provide for forward compatibility with future minor protocol versions
|
||||
(Robert Haas, Badrul Chowdhury)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Up to now, <productname>PostgreSQL</productname> servers simply
|
||||
rejected requests to use protocol versions newer than 3.0, so that
|
||||
there was no functional difference between the major and minor parts
|
||||
of the protocol version number. Allow clients to request versions 3.x
|
||||
without failing, sending back a message showing that the server only
|
||||
understands 3.0. This makes no difference at the moment, but
|
||||
back-patching this change should allow speedier introduction of future
|
||||
minor protocol upgrades.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Cope with failure to start a parallel worker process
|
||||
(Amit Kapila, Robert Haas)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Parallel query previously tended to hang indefinitely if a worker
|
||||
could not be started, as the result of <literal>fork()</literal>
|
||||
failure or other low-probability problems.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Prevent stack-overflow crashes when planning extremely deeply
|
||||
nested set operations
|
||||
(<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>)
|
||||
(Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix null-pointer crashes for some types of LDAP URLs appearing
|
||||
in <filename>pg_hba.conf</filename> (Thomas Munro)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix sample <function>INSTR()</function> functions in the PL/pgSQL
|
||||
documentation (Yugo Nagata, Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
These functions are stated to
|
||||
be <trademark class="registered">Oracle</trademark> compatible, but
|
||||
they weren't exactly. In particular, there was a discrepancy in the
|
||||
interpretation of a negative third parameter: Oracle thinks that a
|
||||
negative value indicates the last place where the target substring can
|
||||
begin, whereas our functions took it as the last place where the
|
||||
target can end. Also, Oracle throws an error for a zero or negative
|
||||
fourth parameter, whereas our functions returned zero.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The sample code has been adjusted to match Oracle's behavior more
|
||||
precisely. Users who have copied this code into their applications
|
||||
may wish to update their copies.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <application>pg_dump</application> to make ACL (permissions),
|
||||
comment, and security label entries reliably identifiable in archive
|
||||
output formats (Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <quote>tag</quote> portion of an ACL archive entry was usually
|
||||
just the name of the associated object. Make it start with the object
|
||||
type instead, bringing ACLs into line with the convention already used
|
||||
for comment and security label archive entries. Also, fix the
|
||||
comment and security label entries for the whole database, if present,
|
||||
to make their tags start with <literal>DATABASE</literal> so that they
|
||||
also follow this convention. This prevents false matches in code that
|
||||
tries to identify large-object-related entries by seeing if the tag
|
||||
starts with <literal>LARGE OBJECT</literal>. That could have resulted
|
||||
in misclassifying entries as data rather than schema, with undesirable
|
||||
results in a schema-only or data-only dump.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note that this change has user-visible results in the output
|
||||
of <command>pg_restore --list</command>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In <application>ecpg</application>, detect indicator arrays that do
|
||||
not have the correct length and report an error (David Rader)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid triggering a libc assertion
|
||||
in <filename>contrib/hstore</filename>, due to use
|
||||
of <function>memcpy()</function> with equal source and destination
|
||||
pointers (Tomas Vondra)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Provide modern examples of how to auto-start Postgres on macOS
|
||||
(Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The scripts in <filename>contrib/start-scripts/osx</filename> use
|
||||
infrastructure that's been deprecated for over a decade, and which no
|
||||
longer works at all in macOS releases of the last couple of years.
|
||||
Add a new subdirectory <filename>contrib/start-scripts/macos</filename>
|
||||
containing scripts that use the newer <application>launchd</application>
|
||||
infrastructure.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix incorrect selection of configuration-specific libraries for
|
||||
OpenSSL on Windows (Andrew Dunstan)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Support linking to MinGW-built versions of libperl (Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This allows building PL/Perl with some common Perl distributions for
|
||||
Windows.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix MSVC build to test whether 32-bit libperl
|
||||
needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Available Perl distributions are inconsistent about what they expect,
|
||||
and lack any reliable means of reporting it, so resort to a build-time
|
||||
test on what the library being used actually does.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
On Windows, install the crash dump handler earlier in postmaster
|
||||
startup (Takayuki Tsunakawa)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This may allow collection of a core dump for some early-startup
|
||||
failures that did not produce a dump before.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
On Windows, avoid encoding-conversion-related crashes when emitting
|
||||
messages very early in postmaster startup (Takayuki Tsunakawa)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Use our existing Motorola 68K spinlock code on OpenBSD as
|
||||
well as NetBSD (David Carlier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Add support for spinlocks on Motorola 88K (David Carlier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Update time zone data files to <application>tzdata</application>
|
||||
release 2018c for DST law changes in Brazil, Sao Tome and Principe,
|
||||
plus historical corrections for Bolivia, Japan, and South Sudan.
|
||||
The <literal>US/Pacific-New</literal> zone has been removed (it was
|
||||
only an alias for <literal>America/Los_Angeles</literal> anyway).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="release-9-4-15">
|
||||
<title>Release 9.4.15</title>
|
||||
|
||||
|
@ -1,6 +1,399 @@
|
||||
<!-- doc/src/sgml/release-9.5.sgml -->
|
||||
<!-- See header comment in release.sgml about typical markup -->
|
||||
|
||||
<sect1 id="release-9-5-11">
|
||||
<title>Release 9.5.11</title>
|
||||
|
||||
<formalpara>
|
||||
<title>Release date:</title>
|
||||
<para>2018-02-08</para>
|
||||
</formalpara>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 9.5.10.
|
||||
For information about new features in the 9.5 major release, see
|
||||
<xref linkend="release-9-5"/>.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to Version 9.5.11</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 9.5.X.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However, if you are upgrading from a version earlier than 9.5.10,
|
||||
see <xref linkend="release-9-5-10"/>.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Changes</title>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix vacuuming of tuples that were updated while key-share locked
|
||||
(Andres Freund, Álvaro Herrera)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In some cases <command>VACUUM</command> would fail to remove such
|
||||
tuples even though they are now dead, leading to assorted data
|
||||
corruption scenarios.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix inadequate buffer locking in some LSN fetches (Jacob Champion,
|
||||
Asim Praveen, Ashwin Agrawal)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
These errors could result in misbehavior under concurrent load.
|
||||
The potential consequences have not been characterized fully.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix incorrect query results from cases involving flattening of
|
||||
subqueries whose outputs are used in <literal>GROUPING SETS</literal>
|
||||
(Heikki Linnakangas)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid unnecessary failure in a query on an inheritance tree that
|
||||
occurs concurrently with some child table being removed from the tree
|
||||
by <command>ALTER TABLE NO INHERIT</command> (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix spurious deadlock failures when multiple sessions are
|
||||
running <command>CREATE INDEX CONCURRENTLY</command> (Jeff Janes)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix failures when an inheritance tree contains foreign child tables
|
||||
(Etsuro Fujita)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A mix of regular and foreign tables in an inheritance tree resulted in
|
||||
creation of incorrect plans for <command>UPDATE</command>
|
||||
and <command>DELETE</command> queries. This led to visible failures in
|
||||
some cases, notably when there are row-level triggers on a foreign
|
||||
child table.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Repair failure with correlated sub-<literal>SELECT</literal>
|
||||
inside <literal>VALUES</literal> inside a <literal>LATERAL</literal>
|
||||
subquery (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <quote>could not devise a query plan for the given query</quote>
|
||||
planner failure for some cases involving nested <literal>UNION
|
||||
ALL</literal> inside a lateral subquery (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix logical decoding to correctly clean up disk files for crashed
|
||||
transactions (Atsushi Torikoshi)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Logical decoding may spill WAL records to disk for transactions
|
||||
generating many WAL records. Normally these files are cleaned up
|
||||
after the transaction's commit or abort record arrives; but if
|
||||
no such record is ever seen, the removal code misbehaved.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix walsender timeout failure and failure to respond to interrupts
|
||||
when processing a large transaction (Petr Jelinek)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <function>has_sequence_privilege()</function> to
|
||||
support <literal>WITH GRANT OPTION</literal> tests,
|
||||
as other privilege-testing functions do (Joe Conway)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In databases using UTF8 encoding, ignore any XML declaration that
|
||||
asserts a different encoding (Pavel Stehule, Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
We always store XML strings in the database encoding, so allowing
|
||||
libxml to act on a declaration of another encoding gave wrong results.
|
||||
In encodings other than UTF8, we don't promise to support non-ASCII
|
||||
XML data anyway, so retain the previous behavior for bug compatibility.
|
||||
This change affects only <function>xpath()</function> and related
|
||||
functions; other XML code paths already acted this way.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Provide for forward compatibility with future minor protocol versions
|
||||
(Robert Haas, Badrul Chowdhury)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Up to now, <productname>PostgreSQL</productname> servers simply
|
||||
rejected requests to use protocol versions newer than 3.0, so that
|
||||
there was no functional difference between the major and minor parts
|
||||
of the protocol version number. Allow clients to request versions 3.x
|
||||
without failing, sending back a message showing that the server only
|
||||
understands 3.0. This makes no difference at the moment, but
|
||||
back-patching this change should allow speedier introduction of future
|
||||
minor protocol upgrades.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Cope with failure to start a parallel worker process
|
||||
(Amit Kapila, Robert Haas)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Parallel query previously tended to hang indefinitely if a worker
|
||||
could not be started, as the result of <literal>fork()</literal>
|
||||
failure or other low-probability problems.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid unsafe alignment assumptions when working
|
||||
with <type>__int128</type> (Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Typically, compilers assume that <type>__int128</type> variables are
|
||||
aligned on 16-byte boundaries, but our memory allocation
|
||||
infrastructure isn't prepared to guarantee that, and increasing the
|
||||
setting of MAXALIGN seems infeasible for multiple reasons. Adjust the
|
||||
code to allow use of <type>__int128</type> only when we can tell the
|
||||
compiler to assume lesser alignment. The only known symptom of this
|
||||
problem so far is crashes in some parallel aggregation queries.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Prevent stack-overflow crashes when planning extremely deeply
|
||||
nested set operations
|
||||
(<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>)
|
||||
(Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix null-pointer crashes for some types of LDAP URLs appearing
|
||||
in <filename>pg_hba.conf</filename> (Thomas Munro)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix sample <function>INSTR()</function> functions in the PL/pgSQL
|
||||
documentation (Yugo Nagata, Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
These functions are stated to
|
||||
be <trademark class="registered">Oracle</trademark> compatible, but
|
||||
they weren't exactly. In particular, there was a discrepancy in the
|
||||
interpretation of a negative third parameter: Oracle thinks that a
|
||||
negative value indicates the last place where the target substring can
|
||||
begin, whereas our functions took it as the last place where the
|
||||
target can end. Also, Oracle throws an error for a zero or negative
|
||||
fourth parameter, whereas our functions returned zero.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The sample code has been adjusted to match Oracle's behavior more
|
||||
precisely. Users who have copied this code into their applications
|
||||
may wish to update their copies.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <application>pg_dump</application> to make ACL (permissions),
|
||||
comment, and security label entries reliably identifiable in archive
|
||||
output formats (Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <quote>tag</quote> portion of an ACL archive entry was usually
|
||||
just the name of the associated object. Make it start with the object
|
||||
type instead, bringing ACLs into line with the convention already used
|
||||
for comment and security label archive entries. Also, fix the
|
||||
comment and security label entries for the whole database, if present,
|
||||
to make their tags start with <literal>DATABASE</literal> so that they
|
||||
also follow this convention. This prevents false matches in code that
|
||||
tries to identify large-object-related entries by seeing if the tag
|
||||
starts with <literal>LARGE OBJECT</literal>. That could have resulted
|
||||
in misclassifying entries as data rather than schema, with undesirable
|
||||
results in a schema-only or data-only dump.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note that this change has user-visible results in the output
|
||||
of <command>pg_restore --list</command>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Rename <application>pg_rewind</application>'s
|
||||
<function>copy_file_range</function> function to avoid conflict
|
||||
with new Linux system call of that name (Andres Freund)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This change prevents build failures with newer glibc versions.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In <application>ecpg</application>, detect indicator arrays that do
|
||||
not have the correct length and report an error (David Rader)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid triggering a libc assertion
|
||||
in <filename>contrib/hstore</filename>, due to use
|
||||
of <function>memcpy()</function> with equal source and destination
|
||||
pointers (Tomas Vondra)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Provide modern examples of how to auto-start Postgres on macOS
|
||||
(Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The scripts in <filename>contrib/start-scripts/osx</filename> use
|
||||
infrastructure that's been deprecated for over a decade, and which no
|
||||
longer works at all in macOS releases of the last couple of years.
|
||||
Add a new subdirectory <filename>contrib/start-scripts/macos</filename>
|
||||
containing scripts that use the newer <application>launchd</application>
|
||||
infrastructure.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix incorrect selection of configuration-specific libraries for
|
||||
OpenSSL on Windows (Andrew Dunstan)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Support linking to MinGW-built versions of libperl (Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This allows building PL/Perl with some common Perl distributions for
|
||||
Windows.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix MSVC build to test whether 32-bit libperl
|
||||
needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Available Perl distributions are inconsistent about what they expect,
|
||||
and lack any reliable means of reporting it, so resort to a build-time
|
||||
test on what the library being used actually does.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
On Windows, install the crash dump handler earlier in postmaster
|
||||
startup (Takayuki Tsunakawa)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This may allow collection of a core dump for some early-startup
|
||||
failures that did not produce a dump before.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
On Windows, avoid encoding-conversion-related crashes when emitting
|
||||
messages very early in postmaster startup (Takayuki Tsunakawa)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Use our existing Motorola 68K spinlock code on OpenBSD as
|
||||
well as NetBSD (David Carlier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Add support for spinlocks on Motorola 88K (David Carlier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Update time zone data files to <application>tzdata</application>
|
||||
release 2018c for DST law changes in Brazil, Sao Tome and Principe,
|
||||
plus historical corrections for Bolivia, Japan, and South Sudan.
|
||||
The <literal>US/Pacific-New</literal> zone has been removed (it was
|
||||
only an alias for <literal>America/Los_Angeles</literal> anyway).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="release-9-5-10">
|
||||
<title>Release 9.5.10</title>
|
||||
|
||||
|
@ -1,6 +1,463 @@
|
||||
<!-- doc/src/sgml/release-9.6.sgml -->
|
||||
<!-- See header comment in release.sgml about typical markup -->
|
||||
|
||||
<sect1 id="release-9-6-7">
|
||||
<title>Release 9.6.7</title>
|
||||
|
||||
<formalpara>
|
||||
<title>Release date:</title>
|
||||
<para>2018-02-08</para>
|
||||
</formalpara>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 9.6.6.
|
||||
For information about new features in the 9.6 major release, see
|
||||
<xref linkend="release-9-6"/>.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to Version 9.6.7</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 9.6.X.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
However,
|
||||
if you use <filename>contrib/cube</filename>'s <literal>~></literal>
|
||||
operator, see the entry below about that.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Also, if you are upgrading from a version earlier than 9.6.6,
|
||||
see <xref linkend="release-9-6-6"/>.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Changes</title>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix vacuuming of tuples that were updated while key-share locked
|
||||
(Andres Freund, Álvaro Herrera)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In some cases <command>VACUUM</command> would fail to remove such
|
||||
tuples even though they are now dead, leading to assorted data
|
||||
corruption scenarios.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Ensure that vacuum will always clean up the pending-insertions list of
|
||||
a GIN index (Masahiko Sawada)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This is necessary to ensure that dead index entries get removed.
|
||||
The old code got it backwards, allowing vacuum to skip the cleanup if
|
||||
some other process were running cleanup concurrently, thus risking
|
||||
invalid entries being left behind in the index.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix inadequate buffer locking in some LSN fetches (Jacob Champion,
|
||||
Asim Praveen, Ashwin Agrawal)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
These errors could result in misbehavior under concurrent load.
|
||||
The potential consequences have not been characterized fully.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix incorrect query results from cases involving flattening of
|
||||
subqueries whose outputs are used in <literal>GROUPING SETS</literal>
|
||||
(Heikki Linnakangas)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid unnecessary failure in a query on an inheritance tree that
|
||||
occurs concurrently with some child table being removed from the tree
|
||||
by <command>ALTER TABLE NO INHERIT</command> (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix spurious deadlock failures when multiple sessions are
|
||||
running <command>CREATE INDEX CONCURRENTLY</command> (Jeff Janes)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix failures when an inheritance tree contains foreign child tables
|
||||
(Etsuro Fujita)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A mix of regular and foreign tables in an inheritance tree resulted in
|
||||
creation of incorrect plans for <command>UPDATE</command>
|
||||
and <command>DELETE</command> queries. This led to visible failures in
|
||||
some cases, notably when there are row-level triggers on a foreign
|
||||
child table.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Repair failure with correlated sub-<literal>SELECT</literal>
|
||||
inside <literal>VALUES</literal> inside a <literal>LATERAL</literal>
|
||||
subquery (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <quote>could not devise a query plan for the given query</quote>
|
||||
planner failure for some cases involving nested <literal>UNION
|
||||
ALL</literal> inside a lateral subquery (Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix logical decoding to correctly clean up disk files for crashed
|
||||
transactions (Atsushi Torikoshi)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Logical decoding may spill WAL records to disk for transactions
|
||||
generating many WAL records. Normally these files are cleaned up
|
||||
after the transaction's commit or abort record arrives; but if
|
||||
no such record is ever seen, the removal code misbehaved.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix walsender timeout failure and failure to respond to interrupts
|
||||
when processing a large transaction (Petr Jelinek)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <function>has_sequence_privilege()</function> to
|
||||
support <literal>WITH GRANT OPTION</literal> tests,
|
||||
as other privilege-testing functions do (Joe Conway)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In databases using UTF8 encoding, ignore any XML declaration that
|
||||
asserts a different encoding (Pavel Stehule, Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
We always store XML strings in the database encoding, so allowing
|
||||
libxml to act on a declaration of another encoding gave wrong results.
|
||||
In encodings other than UTF8, we don't promise to support non-ASCII
|
||||
XML data anyway, so retain the previous behavior for bug compatibility.
|
||||
This change affects only <function>xpath()</function> and related
|
||||
functions; other XML code paths already acted this way.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Provide for forward compatibility with future minor protocol versions
|
||||
(Robert Haas, Badrul Chowdhury)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Up to now, <productname>PostgreSQL</productname> servers simply
|
||||
rejected requests to use protocol versions newer than 3.0, so that
|
||||
there was no functional difference between the major and minor parts
|
||||
of the protocol version number. Allow clients to request versions 3.x
|
||||
without failing, sending back a message showing that the server only
|
||||
understands 3.0. This makes no difference at the moment, but
|
||||
back-patching this change should allow speedier introduction of future
|
||||
minor protocol upgrades.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Cope with failure to start a parallel worker process
|
||||
(Amit Kapila, Robert Haas)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Parallel query previously tended to hang indefinitely if a worker
|
||||
could not be started, as the result of <literal>fork()</literal>
|
||||
failure or other low-probability problems.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix collection of <command>EXPLAIN</command> statistics from parallel
|
||||
workers (Amit Kapila, Thomas Munro)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid unsafe alignment assumptions when working
|
||||
with <type>__int128</type> (Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Typically, compilers assume that <type>__int128</type> variables are
|
||||
aligned on 16-byte boundaries, but our memory allocation
|
||||
infrastructure isn't prepared to guarantee that, and increasing the
|
||||
setting of MAXALIGN seems infeasible for multiple reasons. Adjust the
|
||||
code to allow use of <type>__int128</type> only when we can tell the
|
||||
compiler to assume lesser alignment. The only known symptom of this
|
||||
problem so far is crashes in some parallel aggregation queries.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Prevent stack-overflow crashes when planning extremely deeply
|
||||
nested set operations
|
||||
(<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>)
|
||||
(Tom Lane)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix null-pointer crashes for some types of LDAP URLs appearing
|
||||
in <filename>pg_hba.conf</filename> (Thomas Munro)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix sample <function>INSTR()</function> functions in the PL/pgSQL
|
||||
documentation (Yugo Nagata, Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
These functions are stated to
|
||||
be <trademark class="registered">Oracle</trademark> compatible, but
|
||||
they weren't exactly. In particular, there was a discrepancy in the
|
||||
interpretation of a negative third parameter: Oracle thinks that a
|
||||
negative value indicates the last place where the target substring can
|
||||
begin, whereas our functions took it as the last place where the
|
||||
target can end. Also, Oracle throws an error for a zero or negative
|
||||
fourth parameter, whereas our functions returned zero.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The sample code has been adjusted to match Oracle's behavior more
|
||||
precisely. Users who have copied this code into their applications
|
||||
may wish to update their copies.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix <application>pg_dump</application> to make ACL (permissions),
|
||||
comment, and security label entries reliably identifiable in archive
|
||||
output formats (Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <quote>tag</quote> portion of an ACL archive entry was usually
|
||||
just the name of the associated object. Make it start with the object
|
||||
type instead, bringing ACLs into line with the convention already used
|
||||
for comment and security label archive entries. Also, fix the
|
||||
comment and security label entries for the whole database, if present,
|
||||
to make their tags start with <literal>DATABASE</literal> so that they
|
||||
also follow this convention. This prevents false matches in code that
|
||||
tries to identify large-object-related entries by seeing if the tag
|
||||
starts with <literal>LARGE OBJECT</literal>. That could have resulted
|
||||
in misclassifying entries as data rather than schema, with undesirable
|
||||
results in a schema-only or data-only dump.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note that this change has user-visible results in the output
|
||||
of <command>pg_restore --list</command>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Rename <application>pg_rewind</application>'s
|
||||
<function>copy_file_range</function> function to avoid conflict
|
||||
with new Linux system call of that name (Andres Freund)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This change prevents build failures with newer glibc versions.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In <application>ecpg</application>, detect indicator arrays that do
|
||||
not have the correct length and report an error (David Rader)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Change the behavior of <filename>contrib/cube</filename>'s
|
||||
<type>cube</type> <literal>~></literal> <type>int</type>
|
||||
operator to make it compatible with KNN search (Alexander Korotkov)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The meaning of the second argument (the dimension selector) has been
|
||||
changed to make it predictable which value is selected even when
|
||||
dealing with cubes of varying dimensionalities.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This is an incompatible change, but since the point of the operator
|
||||
was to be used in KNN searches, it seems rather useless as-is.
|
||||
After installing this update, any expression indexes or materialized
|
||||
views using this operator will need to be reindexed/refreshed.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Avoid triggering a libc assertion
|
||||
in <filename>contrib/hstore</filename>, due to use
|
||||
of <function>memcpy()</function> with equal source and destination
|
||||
pointers (Tomas Vondra)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix incorrect display of tuples' null bitmaps
|
||||
in <filename>contrib/pageinspect</filename> (Maksim Milyutin)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
In <filename>contrib/postgres_fdw</filename>, avoid
|
||||
<quote>outer pathkeys do not match mergeclauses</quote>
|
||||
planner error when constructing a plan involving a remote join
|
||||
(Robert Haas)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Provide modern examples of how to auto-start Postgres on macOS
|
||||
(Tom Lane)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The scripts in <filename>contrib/start-scripts/osx</filename> use
|
||||
infrastructure that's been deprecated for over a decade, and which no
|
||||
longer works at all in macOS releases of the last couple of years.
|
||||
Add a new subdirectory <filename>contrib/start-scripts/macos</filename>
|
||||
containing scripts that use the newer <application>launchd</application>
|
||||
infrastructure.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix incorrect selection of configuration-specific libraries for
|
||||
OpenSSL on Windows (Andrew Dunstan)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Support linking to MinGW-built versions of libperl (Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This allows building PL/Perl with some common Perl distributions for
|
||||
Windows.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Fix MSVC build to test whether 32-bit libperl
|
||||
needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Available Perl distributions are inconsistent about what they expect,
|
||||
and lack any reliable means of reporting it, so resort to a build-time
|
||||
test on what the library being used actually does.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
On Windows, install the crash dump handler earlier in postmaster
|
||||
startup (Takayuki Tsunakawa)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This may allow collection of a core dump for some early-startup
|
||||
failures that did not produce a dump before.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
On Windows, avoid encoding-conversion-related crashes when emitting
|
||||
messages very early in postmaster startup (Takayuki Tsunakawa)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Use our existing Motorola 68K spinlock code on OpenBSD as
|
||||
well as NetBSD (David Carlier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Add support for spinlocks on Motorola 88K (David Carlier)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Update time zone data files to <application>tzdata</application>
|
||||
release 2018c for DST law changes in Brazil, Sao Tome and Principe,
|
||||
plus historical corrections for Bolivia, Japan, and South Sudan.
|
||||
The <literal>US/Pacific-New</literal> zone has been removed (it was
|
||||
only an alias for <literal>America/Los_Angeles</literal> anyway).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="release-9-6-6">
|
||||
<title>Release 9.6.6</title>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user