|
1 | 1 | <!-- doc/src/sgml/release-9.4.sgml -->
|
2 | 2 | <!-- See header comment in release.sgml about typical markup -->
|
3 | 3 |
|
| 4 | + <sect1 id="release-9-4-22"> |
| 5 | + <title>Release 9.4.22</title> |
| 6 | + |
| 7 | + <formalpara> |
| 8 | + <title>Release date:</title> |
| 9 | + <para>2019-05-09</para> |
| 10 | + </formalpara> |
| 11 | + |
| 12 | + <para> |
| 13 | + This release contains a variety of fixes from 9.4.21. |
| 14 | + For information about new features in the 9.4 major release, see |
| 15 | + <xref linkend="release-9-4">. |
| 16 | + </para> |
| 17 | + |
| 18 | + <para> |
| 19 | + The <productname>PostgreSQL</productname> community will stop |
| 20 | + releasing updates for the 9.4.X release series in February 2020. |
| 21 | + Users are encouraged to update to a newer release branch soon. |
| 22 | + </para> |
| 23 | + |
| 24 | + <sect2> |
| 25 | + <title>Migration to Version 9.4.22</title> |
| 26 | + |
| 27 | + <para> |
| 28 | + A dump/restore is not required for those running 9.4.X. |
| 29 | + </para> |
| 30 | + |
| 31 | + <para> |
| 32 | + However, if you are upgrading from a version earlier than 9.4.18, |
| 33 | + see <xref linkend="release-9-4-18">. |
| 34 | + </para> |
| 35 | + </sect2> |
| 36 | + |
| 37 | + <sect2> |
| 38 | + <title>Changes</title> |
| 39 | + |
| 40 | + <itemizedlist> |
| 41 | + |
| 42 | + <listitem> |
| 43 | + <para> |
| 44 | + Fix behavior for an <command>UPDATE</command> |
| 45 | + or <command>DELETE</command> on an inheritance tree or partitioned |
| 46 | + table in which every table can be excluded (Amit Langote, Tom Lane) |
| 47 | + </para> |
| 48 | + |
| 49 | + <para> |
| 50 | + In such cases, the query did not report the correct set of output |
| 51 | + columns when a <literal>RETURNING</literal> clause was present, and |
| 52 | + if there were any statement-level triggers that should be fired, it |
| 53 | + didn't fire them. |
| 54 | + </para> |
| 55 | + </listitem> |
| 56 | + |
| 57 | + <listitem> |
| 58 | + <para> |
| 59 | + Fix handling of explicit <literal>DEFAULT</literal> items in |
| 60 | + an <command>INSERT ... VALUES</command> command with |
| 61 | + multiple <literal>VALUES</literal> rows, if the target relation is |
| 62 | + an updatable view (Amit Langote, Dean Rasheed) |
| 63 | + </para> |
| 64 | + |
| 65 | + <para> |
| 66 | + When the updatable view has no default for the column but its |
| 67 | + underlying table has one, a single-row <command>INSERT |
| 68 | + ... VALUES</command> will use the underlying table's default. |
| 69 | + In the multi-row case, however, NULL was always used. Correct it to |
| 70 | + act like the single-row case. |
| 71 | + </para> |
| 72 | + </listitem> |
| 73 | + |
| 74 | + <listitem> |
| 75 | + <para> |
| 76 | + Fix <command>CREATE VIEW</command> to allow zero-column views |
| 77 | + (Ashutosh Sharma) |
| 78 | + </para> |
| 79 | + |
| 80 | + <para> |
| 81 | + We should allow this for consistency with allowing zero-column |
| 82 | + tables. Since a table can be converted to a view, zero-column views |
| 83 | + could be created even with the restriction in place, leading to |
| 84 | + dump/reload failures. |
| 85 | + </para> |
| 86 | + </listitem> |
| 87 | + |
| 88 | + <listitem> |
| 89 | + <para> |
| 90 | + Accept XML documents as valid values of type <type>xml</type> |
| 91 | + when <varname>xmloption</varname> is set |
| 92 | + to <literal>content</literal>, as required by SQL:2006 and later |
| 93 | + (Chapman Flack) |
| 94 | + </para> |
| 95 | + |
| 96 | + <para> |
| 97 | + Previously <productname>PostgreSQL</productname> followed the |
| 98 | + SQL:2003 definition, which doesn't allow this. But that creates a |
| 99 | + serious problem for dump/restore: there is no setting |
| 100 | + of <varname>xmloption</varname> that will accept all valid XML data. |
| 101 | + Hence, switch to the 2006 definition. |
| 102 | + </para> |
| 103 | + |
| 104 | + <para> |
| 105 | + <application>pg_dump</application> is also modified to emit |
| 106 | + <literal>SET xmloption = content</literal> while restoring data, |
| 107 | + ensuring that dump/restore works even if the prevailing |
| 108 | + setting is <literal>document</literal>. |
| 109 | + </para> |
| 110 | + </listitem> |
| 111 | + |
| 112 | + <listitem> |
| 113 | + <para> |
| 114 | + Improve server's startup-time checks for whether a pre-existing |
| 115 | + shared memory segment is still in use (Noah Misch) |
| 116 | + </para> |
| 117 | + |
| 118 | + <para> |
| 119 | + The postmaster is now more likely to detect that there are still |
| 120 | + active processes from a previous postmaster incarnation, even if |
| 121 | + the <filename>postmaster.pid</filename> file has been removed. |
| 122 | + </para> |
| 123 | + </listitem> |
| 124 | + |
| 125 | + <listitem> |
| 126 | + <para> |
| 127 | + Fix incompatibility of GIN-index WAL records (Alexander Korotkov) |
| 128 | + </para> |
| 129 | + |
| 130 | + <para> |
| 131 | + A fix applied in February's minor releases was not sufficiently |
| 132 | + careful about backwards compatibility, leading to problems if a |
| 133 | + standby server of that vintage reads GIN page-deletion WAL records |
| 134 | + generated by a primary server of a previous minor release. |
| 135 | + </para> |
| 136 | + </listitem> |
| 137 | + |
| 138 | + <listitem> |
| 139 | + <para> |
| 140 | + Tolerate <literal>EINVAL</literal> and <literal>ENOSYS</literal> |
| 141 | + error results, where appropriate, for <function>fsync</function> |
| 142 | + and <function>sync_file_range</function> calls |
| 143 | + (Thomas Munro, James Sewell) |
| 144 | + </para> |
| 145 | + |
| 146 | + <para> |
| 147 | + The previous change to panic on file synchronization failures turns |
| 148 | + out to have been excessively paranoid for certain cases where a |
| 149 | + failure is predictable and essentially means <quote>operation not |
| 150 | + supported</quote>. |
| 151 | + </para> |
| 152 | + </listitem> |
| 153 | + |
| 154 | + <listitem> |
| 155 | + <para> |
| 156 | + Fix <quote>failed to build any <replaceable>N</replaceable>-way |
| 157 | + joins</quote> planner failures with lateral references leading out |
| 158 | + of <literal>FULL</literal> outer joins (Tom Lane) |
| 159 | + </para> |
| 160 | + </listitem> |
| 161 | + |
| 162 | + <listitem> |
| 163 | + <para> |
| 164 | + Avoid O(N^2) performance issue when rolling back a transaction that |
| 165 | + created many tables (Tomas Vondra) |
| 166 | + </para> |
| 167 | + </listitem> |
| 168 | + |
| 169 | + <listitem> |
| 170 | + <para> |
| 171 | + Fix race conditions in management of dynamic shared memory |
| 172 | + (Thomas Munro) |
| 173 | + </para> |
| 174 | + <para> |
| 175 | + These could lead to <quote>dsa_area could not attach to |
| 176 | + segment</quote> or <quote>cannot unpin a segment that is not |
| 177 | + pinned</quote> errors. |
| 178 | + </para> |
| 179 | + </listitem> |
| 180 | + |
| 181 | + <listitem> |
| 182 | + <para> |
| 183 | + Fix race condition in which a hot-standby postmaster could fail to |
| 184 | + shut down after receiving a smart-shutdown request (Tom Lane) |
| 185 | + </para> |
| 186 | + </listitem> |
| 187 | + |
| 188 | + <listitem> |
| 189 | + <para> |
| 190 | + Tighten validation of encoded SCRAM-SHA-256 and MD5 passwords |
| 191 | + (Jonathan Katz) |
| 192 | + </para> |
| 193 | + |
| 194 | + <para> |
| 195 | + A password string that had the right initial characters could be |
| 196 | + mistaken for one that is correctly hashed into SCRAM-SHA-256 or MD5 |
| 197 | + format. The password would be accepted but would be unusable later. |
| 198 | + </para> |
| 199 | + </listitem> |
| 200 | + |
| 201 | + <listitem> |
| 202 | + <para> |
| 203 | + Fix handling of <varname>lc_time</varname> settings that imply an |
| 204 | + encoding different from the database's encoding (Juan José |
| 205 | + Santamaría Flecha, Tom Lane) |
| 206 | + </para> |
| 207 | + |
| 208 | + <para> |
| 209 | + Localized month or day names that include non-ASCII characters |
| 210 | + previously caused unexpected errors or wrong output in such locales. |
| 211 | + </para> |
| 212 | + </listitem> |
| 213 | + |
| 214 | + <listitem> |
| 215 | + <para> |
| 216 | + Disallow <literal>NaN</literal> as a value for floating-point server |
| 217 | + parameters (Tom Lane) |
| 218 | + </para> |
| 219 | + </listitem> |
| 220 | + |
| 221 | + <listitem> |
| 222 | + <para> |
| 223 | + Rearrange <command>REINDEX</command> processing to avoid assertion |
| 224 | + failures when reindexing individual indexes |
| 225 | + of <structname>pg_class</structname> (Andres Freund, Tom Lane) |
| 226 | + </para> |
| 227 | + </listitem> |
| 228 | + |
| 229 | + <listitem> |
| 230 | + <para> |
| 231 | + Fix planner assertion failure for parameterized dummy paths (Tom Lane) |
| 232 | + </para> |
| 233 | + </listitem> |
| 234 | + |
| 235 | + <listitem> |
| 236 | + <para> |
| 237 | + Insert correct test function in the result |
| 238 | + of <function>SnapBuildInitialSnapshot()</function> (Antonin Houska) |
| 239 | + </para> |
| 240 | + |
| 241 | + <para> |
| 242 | + No core code cares about this, but some extensions do. |
| 243 | + </para> |
| 244 | + </listitem> |
| 245 | + |
| 246 | + <listitem> |
| 247 | + <para> |
| 248 | + Fix intermittent <quote>could not reattach to shared memory</quote> |
| 249 | + session startup failures on Windows (Noah Misch) |
| 250 | + </para> |
| 251 | + |
| 252 | + <para> |
| 253 | + A previously unrecognized source of these failures is creation of |
| 254 | + thread stacks for a process's default thread pool. Arrange for such |
| 255 | + stacks to be allocated in a different memory region. |
| 256 | + </para> |
| 257 | + </listitem> |
| 258 | + |
| 259 | + <listitem> |
| 260 | + <para> |
| 261 | + Fix error detection in directory scanning on Windows (Konstantin |
| 262 | + Knizhnik) |
| 263 | + </para> |
| 264 | + |
| 265 | + <para> |
| 266 | + Errors, such as lack of permissions to read the directory, were not |
| 267 | + detected or reported correctly; instead the code silently acted as |
| 268 | + though the directory were empty. |
| 269 | + </para> |
| 270 | + </listitem> |
| 271 | + |
| 272 | + <listitem> |
| 273 | + <para> |
| 274 | + Fix grammar problems in <application>ecpg</application> (Tom Lane) |
| 275 | + </para> |
| 276 | + |
| 277 | + <para> |
| 278 | + A missing semicolon led to mistranslation |
| 279 | + of <literal>SET <replaceable>variable</replaceable> = |
| 280 | + DEFAULT</literal> (but |
| 281 | + not <literal>SET <replaceable>variable</replaceable> TO |
| 282 | + DEFAULT</literal>) in <application>ecpg</application> programs, |
| 283 | + producing syntactically invalid output that the server would reject. |
| 284 | + Additionally, in a <command>DROP TYPE</command> or <command>DROP |
| 285 | + DOMAIN</command> command that listed multiple type names, only the |
| 286 | + first type name was actually processed. |
| 287 | + </para> |
| 288 | + </listitem> |
| 289 | + |
| 290 | + <listitem> |
| 291 | + <para> |
| 292 | + Fix possible buffer overruns in <application>ecpg</application>'s |
| 293 | + processing of include filenames (Liu Huailing, Fei Wu) |
| 294 | + </para> |
| 295 | + </listitem> |
| 296 | + |
| 297 | + <listitem> |
| 298 | + <para> |
| 299 | + Avoid crash in <filename>contrib/vacuumlo</filename> if |
| 300 | + an <function>lo_unlink()</function> call failed (Tom Lane) |
| 301 | + </para> |
| 302 | + </listitem> |
| 303 | + |
| 304 | + <listitem> |
| 305 | + <para> |
| 306 | + Sync our copy of the timezone library with IANA tzcode release 2019a |
| 307 | + (Tom Lane) |
| 308 | + </para> |
| 309 | + |
| 310 | + <para> |
| 311 | + This corrects a small bug in <application>zic</application> that |
| 312 | + caused it to output an incorrect year-2440 transition in |
| 313 | + the <literal>Africa/Casablanca</literal> zone, and adds support |
| 314 | + for <application>zic</application>'s new <option>-r</option> option. |
| 315 | + </para> |
| 316 | + </listitem> |
| 317 | + |
| 318 | + <listitem> |
| 319 | + <para> |
| 320 | + Update time zone data files to <application>tzdata</application> |
| 321 | + release 2019a for DST law changes in Palestine and Metlakatla, |
| 322 | + plus historical corrections for Israel. |
| 323 | + </para> |
| 324 | + |
| 325 | + <para> |
| 326 | + <literal>Etc/UCT</literal> is now a backward-compatibility link |
| 327 | + to <literal>Etc/UTC</literal>, instead of being a separate zone that |
| 328 | + generates the abbreviation <literal>UCT</literal>, which nowadays is |
| 329 | + typically a typo. <productname>PostgreSQL</productname> will still |
| 330 | + accept <literal>UCT</literal> as an input zone abbreviation, but it |
| 331 | + won't output it. |
| 332 | + </para> |
| 333 | + </listitem> |
| 334 | + |
| 335 | + </itemizedlist> |
| 336 | + |
| 337 | + </sect2> |
| 338 | + </sect1> |
| 339 | + |
4 | 340 | <sect1 id="release-9-4-21">
|
5 | 341 | <title>Release 9.4.21</title>
|
6 | 342 |
|
|
0 commit comments