|
|
|
|
@ -1,6 +1,268 @@ |
|
|
|
|
<!-- doc/src/sgml/release-9.1.sgml --> |
|
|
|
|
<!-- See header comment in release.sgml about typical markup --> |
|
|
|
|
|
|
|
|
|
<sect1 id="release-9-1-23"> |
|
|
|
|
<title>Release 9.1.23</title> |
|
|
|
|
|
|
|
|
|
<note> |
|
|
|
|
<title>Release Date</title> |
|
|
|
|
<simpara>2016-08-11</simpara> |
|
|
|
|
</note> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This release contains a variety of fixes from 9.1.22. |
|
|
|
|
For information about new features in the 9.1 major release, see |
|
|
|
|
<xref linkend="release-9-1">. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
The <productname>PostgreSQL</> community will stop releasing updates |
|
|
|
|
for the 9.1.X release series in September 2016. |
|
|
|
|
Users are encouraged to update to a newer release branch soon. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<sect2> |
|
|
|
|
<title>Migration to Version 9.1.23</title> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
A dump/restore is not required for those running 9.1.X. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
However, if you are upgrading from a version earlier than 9.1.16, |
|
|
|
|
see <xref linkend="release-9-1-16">. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
</sect2> |
|
|
|
|
|
|
|
|
|
<sect2> |
|
|
|
|
<title>Changes</title> |
|
|
|
|
|
|
|
|
|
<itemizedlist> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT |
|
|
|
|
NULL</> applied to nested composite values (Andrew Gierth, Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
The SQL standard specifies that <literal>IS NULL</> should return |
|
|
|
|
TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS |
|
|
|
|
NULL</> yields TRUE), but this is not meant to apply recursively |
|
|
|
|
(thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE). |
|
|
|
|
The core executor got this right, but certain planner optimizations |
|
|
|
|
treated the test as recursive (thus producing TRUE in both cases), |
|
|
|
|
and <filename>contrib/postgres_fdw</> could produce remote queries |
|
|
|
|
that misbehaved similarly. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Make the <type>inet</> and <type>cidr</> data types properly reject |
|
|
|
|
IPv6 addresses with too many colon-separated fields (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Prevent crash in <function>close_ps()</> |
|
|
|
|
(the <type>point</> <literal>##</> <type>lseg</> operator) |
|
|
|
|
for NaN input coordinates (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Make it return NULL instead of crashing. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Avoid unsafe intermediate state during expensive paths |
|
|
|
|
through <function>heap_update()</> (Masahiko Sawada, Andres Freund) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Previously, these cases locked the target tuple (by setting its XMAX) |
|
|
|
|
but did not WAL-log that action, thus risking data integrity problems |
|
|
|
|
if the page were spilled to disk and then a database crash occurred |
|
|
|
|
before the tuple update could be completed. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Avoid consuming a transaction ID during <command>VACUUM</> |
|
|
|
|
(Alexander Korotkov) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Some cases in <command>VACUUM</> unnecessarily caused an XID to be |
|
|
|
|
assigned to the current transaction. Normally this is negligible, |
|
|
|
|
but if one is up against the XID wraparound limit, consuming more |
|
|
|
|
XIDs during anti-wraparound vacuums is a very bad thing. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Avoid canceling hot-standby queries during <command>VACUUM FREEZE</> |
|
|
|
|
(Simon Riggs, Álvaro Herrera) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
<command>VACUUM FREEZE</> on an otherwise-idle master server could |
|
|
|
|
result in unnecessary cancellations of queries on its standby |
|
|
|
|
servers. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
When a manual <command>ANALYZE</> specifies a column list, don't |
|
|
|
|
reset the table's <literal>changes_since_analyze</> counter |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
If we're only analyzing some columns, we should not prevent routine |
|
|
|
|
auto-analyze from happening for the other columns. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</> |
|
|
|
|
for a unique or nearly-unique column with many null entries (Tom |
|
|
|
|
Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
The nulls could get counted as though they were themselves distinct |
|
|
|
|
values, leading to serious planner misestimates in some types of |
|
|
|
|
queries. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Prevent autovacuum from starting multiple workers for the same shared |
|
|
|
|
catalog (Álvaro Herrera) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Normally this isn't much of a problem because the vacuum doesn't take |
|
|
|
|
long anyway; but in the case of a severely bloated catalog, it could |
|
|
|
|
result in all but one worker uselessly waiting instead of doing |
|
|
|
|
useful work on other tables. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <filename>contrib/btree_gin</> to handle the smallest |
|
|
|
|
possible <type>bigint</> value correctly (Peter Eisentraut) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Teach libpq to correctly decode server version from future servers |
|
|
|
|
(Peter Eisentraut) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
It's planned to switch to two-part instead of three-part server |
|
|
|
|
version numbers for releases after 9.6. Make sure |
|
|
|
|
that <function>PQserverVersion()</> returns the correct value for |
|
|
|
|
such cases. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <application>ecpg</>'s code for <literal>unsigned long long</> |
|
|
|
|
array elements (Michael Meskes) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Make <application>pg_basebackup</> accept <literal>-Z 0</> as |
|
|
|
|
specifying no compression (Fujii Masao) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<!-- |
|
|
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us> |
|
|
|
|
Branch: REL9_1_STABLE [d56c02f1a] 2016-06-19 13:45:03 -0400 |
|
|
|
|
Branch: REL9_1_STABLE [354b3a3ac] 2016-06-19 14:01:17 -0400 |
|
|
|
|
--> |
|
|
|
|
<para> |
|
|
|
|
Revert to the old heuristic timeout for <literal>pg_ctl start -w</> |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
The new method adopted as of release 9.1.20 does not work |
|
|
|
|
when <varname>silent_mode</> is enabled, so go back to the old way. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix makefiles' rule for building AIX shared libraries to be safe for |
|
|
|
|
parallel make (Noah Misch) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix TAP tests and MSVC scripts to work when build directory's path |
|
|
|
|
name contains spaces (Michael Paquier, Kyotaro Horiguchi) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Make regression tests safe for Danish and Welsh locales (Jeff Janes, |
|
|
|
|
Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Change some test data that triggered the unusual sorting rules of |
|
|
|
|
these locales. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Update our copy of the timezone code to match |
|
|
|
|
IANA's <application>tzcode</> release 2016c (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This is needed to cope with anticipated future changes in the time |
|
|
|
|
zone data files. It also fixes some corner-case bugs in coping with |
|
|
|
|
unusual time zones. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Update time zone data files to <application>tzdata</> release 2016f |
|
|
|
|
for DST law changes in Kemerovo and Novosibirsk, plus historical |
|
|
|
|
corrections for Azerbaijan, Belarus, and Morocco. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
</itemizedlist> |
|
|
|
|
|
|
|
|
|
</sect2> |
|
|
|
|
</sect1> |
|
|
|
|
|
|
|
|
|
<sect1 id="release-9-1-22"> |
|
|
|
|
<title>Release 9.1.22</title> |
|
|
|
|
|
|
|
|
|
|