|
1 | 1 | <!-- doc/src/sgml/release-9.1.sgml -->
|
2 | 2 | <!-- See header comment in release.sgml about typical markup -->
|
3 | 3 |
|
| 4 | + <sect1 id="release-9-1-23"> |
| 5 | + <title>Release 9.1.23</title> |
| 6 | + |
| 7 | + <note> |
| 8 | + <title>Release Date</title> |
| 9 | + <simpara>2016-08-11</simpara> |
| 10 | + </note> |
| 11 | + |
| 12 | + <para> |
| 13 | + This release contains a variety of fixes from 9.1.22. |
| 14 | + For information about new features in the 9.1 major release, see |
| 15 | + <xref linkend="release-9-1">. |
| 16 | + </para> |
| 17 | + |
| 18 | + <para> |
| 19 | + The <productname>PostgreSQL</> community will stop releasing updates |
| 20 | + for the 9.1.X release series in September 2016. |
| 21 | + Users are encouraged to update to a newer release branch soon. |
| 22 | + </para> |
| 23 | + |
| 24 | + <sect2> |
| 25 | + <title>Migration to Version 9.1.23</title> |
| 26 | + |
| 27 | + <para> |
| 28 | + A dump/restore is not required for those running 9.1.X. |
| 29 | + </para> |
| 30 | + |
| 31 | + <para> |
| 32 | + However, if you are upgrading from a version earlier than 9.1.16, |
| 33 | + see <xref linkend="release-9-1-16">. |
| 34 | + </para> |
| 35 | + |
| 36 | + </sect2> |
| 37 | + |
| 38 | + <sect2> |
| 39 | + <title>Changes</title> |
| 40 | + |
| 41 | + <itemizedlist> |
| 42 | + |
| 43 | + <listitem> |
| 44 | + <para> |
| 45 | + Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT |
| 46 | + NULL</> applied to nested composite values (Andrew Gierth, Tom Lane) |
| 47 | + </para> |
| 48 | + |
| 49 | + <para> |
| 50 | + The SQL standard specifies that <literal>IS NULL</> should return |
| 51 | + TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS |
| 52 | + NULL</> yields TRUE), but this is not meant to apply recursively |
| 53 | + (thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE). |
| 54 | + The core executor got this right, but certain planner optimizations |
| 55 | + treated the test as recursive (thus producing TRUE in both cases), |
| 56 | + and <filename>contrib/postgres_fdw</> could produce remote queries |
| 57 | + that misbehaved similarly. |
| 58 | + </para> |
| 59 | + </listitem> |
| 60 | + |
| 61 | + <listitem> |
| 62 | + <para> |
| 63 | + Make the <type>inet</> and <type>cidr</> data types properly reject |
| 64 | + IPv6 addresses with too many colon-separated fields (Tom Lane) |
| 65 | + </para> |
| 66 | + </listitem> |
| 67 | + |
| 68 | + <listitem> |
| 69 | + <para> |
| 70 | + Prevent crash in <function>close_ps()</> |
| 71 | + (the <type>point</> <literal>##</> <type>lseg</> operator) |
| 72 | + for NaN input coordinates (Tom Lane) |
| 73 | + </para> |
| 74 | + |
| 75 | + <para> |
| 76 | + Make it return NULL instead of crashing. |
| 77 | + </para> |
| 78 | + </listitem> |
| 79 | + |
| 80 | + <listitem> |
| 81 | + <para> |
| 82 | + Avoid unsafe intermediate state during expensive paths |
| 83 | + through <function>heap_update()</> (Masahiko Sawada, Andres Freund) |
| 84 | + </para> |
| 85 | + |
| 86 | + <para> |
| 87 | + Previously, these cases locked the target tuple (by setting its XMAX) |
| 88 | + but did not WAL-log that action, thus risking data integrity problems |
| 89 | + if the page were spilled to disk and then a database crash occurred |
| 90 | + before the tuple update could be completed. |
| 91 | + </para> |
| 92 | + </listitem> |
| 93 | + |
| 94 | + <listitem> |
| 95 | + <para> |
| 96 | + Avoid consuming a transaction ID during <command>VACUUM</> |
| 97 | + (Alexander Korotkov) |
| 98 | + </para> |
| 99 | + |
| 100 | + <para> |
| 101 | + Some cases in <command>VACUUM</> unnecessarily caused an XID to be |
| 102 | + assigned to the current transaction. Normally this is negligible, |
| 103 | + but if one is up against the XID wraparound limit, consuming more |
| 104 | + XIDs during anti-wraparound vacuums is a very bad thing. |
| 105 | + </para> |
| 106 | + </listitem> |
| 107 | + |
| 108 | + <listitem> |
| 109 | + <para> |
| 110 | + Avoid canceling hot-standby queries during <command>VACUUM FREEZE</> |
| 111 | + (Simon Riggs, Álvaro Herrera) |
| 112 | + </para> |
| 113 | + |
| 114 | + <para> |
| 115 | + <command>VACUUM FREEZE</> on an otherwise-idle master server could |
| 116 | + result in unnecessary cancellations of queries on its standby |
| 117 | + servers. |
| 118 | + </para> |
| 119 | + </listitem> |
| 120 | + |
| 121 | + <listitem> |
| 122 | + <para> |
| 123 | + When a manual <command>ANALYZE</> specifies a column list, don't |
| 124 | + reset the table's <literal>changes_since_analyze</> counter |
| 125 | + (Tom Lane) |
| 126 | + </para> |
| 127 | + |
| 128 | + <para> |
| 129 | + If we're only analyzing some columns, we should not prevent routine |
| 130 | + auto-analyze from happening for the other columns. |
| 131 | + </para> |
| 132 | + </listitem> |
| 133 | + |
| 134 | + <listitem> |
| 135 | + <para> |
| 136 | + Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</> |
| 137 | + for a unique or nearly-unique column with many null entries (Tom |
| 138 | + Lane) |
| 139 | + </para> |
| 140 | + |
| 141 | + <para> |
| 142 | + The nulls could get counted as though they were themselves distinct |
| 143 | + values, leading to serious planner misestimates in some types of |
| 144 | + queries. |
| 145 | + </para> |
| 146 | + </listitem> |
| 147 | + |
| 148 | + <listitem> |
| 149 | + <para> |
| 150 | + Prevent autovacuum from starting multiple workers for the same shared |
| 151 | + catalog (Álvaro Herrera) |
| 152 | + </para> |
| 153 | + |
| 154 | + <para> |
| 155 | + Normally this isn't much of a problem because the vacuum doesn't take |
| 156 | + long anyway; but in the case of a severely bloated catalog, it could |
| 157 | + result in all but one worker uselessly waiting instead of doing |
| 158 | + useful work on other tables. |
| 159 | + </para> |
| 160 | + </listitem> |
| 161 | + |
| 162 | + <listitem> |
| 163 | + <para> |
| 164 | + Fix <filename>contrib/btree_gin</> to handle the smallest |
| 165 | + possible <type>bigint</> value correctly (Peter Eisentraut) |
| 166 | + </para> |
| 167 | + </listitem> |
| 168 | + |
| 169 | + <listitem> |
| 170 | + <para> |
| 171 | + Teach libpq to correctly decode server version from future servers |
| 172 | + (Peter Eisentraut) |
| 173 | + </para> |
| 174 | + |
| 175 | + <para> |
| 176 | + It's planned to switch to two-part instead of three-part server |
| 177 | + version numbers for releases after 9.6. Make sure |
| 178 | + that <function>PQserverVersion()</> returns the correct value for |
| 179 | + such cases. |
| 180 | + </para> |
| 181 | + </listitem> |
| 182 | + |
| 183 | + <listitem> |
| 184 | + <para> |
| 185 | + Fix <application>ecpg</>'s code for <literal>unsigned long long</> |
| 186 | + array elements (Michael Meskes) |
| 187 | + </para> |
| 188 | + </listitem> |
| 189 | + |
| 190 | + <listitem> |
| 191 | + <para> |
| 192 | + Make <application>pg_basebackup</> accept <literal>-Z 0</> as |
| 193 | + specifying no compression (Fujii Masao) |
| 194 | + </para> |
| 195 | + </listitem> |
| 196 | + |
| 197 | + <listitem> |
| 198 | +<!-- |
| 199 | +Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 200 | +Branch: REL9_1_STABLE [d56c02f1a] 2016-06-19 13:45:03 -0400 |
| 201 | +Branch: REL9_1_STABLE [354b3a3ac] 2016-06-19 14:01:17 -0400 |
| 202 | +--> |
| 203 | + <para> |
| 204 | + Revert to the old heuristic timeout for <literal>pg_ctl start -w</> |
| 205 | + (Tom Lane) |
| 206 | + </para> |
| 207 | + |
| 208 | + <para> |
| 209 | + The new method adopted as of release 9.1.20 does not work |
| 210 | + when <varname>silent_mode</> is enabled, so go back to the old way. |
| 211 | + </para> |
| 212 | + </listitem> |
| 213 | + |
| 214 | + <listitem> |
| 215 | + <para> |
| 216 | + Fix makefiles' rule for building AIX shared libraries to be safe for |
| 217 | + parallel make (Noah Misch) |
| 218 | + </para> |
| 219 | + </listitem> |
| 220 | + |
| 221 | + <listitem> |
| 222 | + <para> |
| 223 | + Fix TAP tests and MSVC scripts to work when build directory's path |
| 224 | + name contains spaces (Michael Paquier, Kyotaro Horiguchi) |
| 225 | + </para> |
| 226 | + </listitem> |
| 227 | + |
| 228 | + <listitem> |
| 229 | + <para> |
| 230 | + Make regression tests safe for Danish and Welsh locales (Jeff Janes, |
| 231 | + Tom Lane) |
| 232 | + </para> |
| 233 | + |
| 234 | + <para> |
| 235 | + Change some test data that triggered the unusual sorting rules of |
| 236 | + these locales. |
| 237 | + </para> |
| 238 | + </listitem> |
| 239 | + |
| 240 | + <listitem> |
| 241 | + <para> |
| 242 | + Update our copy of the timezone code to match |
| 243 | + IANA's <application>tzcode</> release 2016c (Tom Lane) |
| 244 | + </para> |
| 245 | + |
| 246 | + <para> |
| 247 | + This is needed to cope with anticipated future changes in the time |
| 248 | + zone data files. It also fixes some corner-case bugs in coping with |
| 249 | + unusual time zones. |
| 250 | + </para> |
| 251 | + </listitem> |
| 252 | + |
| 253 | + <listitem> |
| 254 | + <para> |
| 255 | + Update time zone data files to <application>tzdata</> release 2016f |
| 256 | + for DST law changes in Kemerovo and Novosibirsk, plus historical |
| 257 | + corrections for Azerbaijan, Belarus, and Morocco. |
| 258 | + </para> |
| 259 | + </listitem> |
| 260 | + |
| 261 | + </itemizedlist> |
| 262 | + |
| 263 | + </sect2> |
| 264 | + </sect1> |
| 265 | + |
4 | 266 | <sect1 id="release-9-1-22">
|
5 | 267 | <title>Release 9.1.22</title>
|
6 | 268 |
|
|
0 commit comments