~ubuntu-branches/debian/experimental/postgresql-11/experimental

« back to all changes in this revision

Viewing changes to doc/src/sgml/html/release-9-5-4.html

  • Committer: Package Import Robot
  • Author(s): Christoph Berg
  • Date: 2018-05-22 14:19:08 UTC
  • Revision ID: package-import@ubuntu.com-20180522141908-0oy9ujs1b5vrda74
Tags: upstream-11~beta1
Import upstream version 11~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>E.26. Release 9.5.4</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="release-9-5-5.html" title="E.25. Release 9.5.5" /><link rel="next" href="release-9-5-3.html" title="E.27. Release 9.5.3" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">E.26. Release 9.5.4</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-9-5-5.html" title="E.25. Release 9.5.5">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="release.html" title="Appendix E. Release Notes">Up</a></td><th width="60%" align="center">Appendix E. Release Notes</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 11beta1 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-9-5-3.html" title="E.27. Release 9.5.3">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RELEASE-9-5-4"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.26. Release 9.5.4</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-9-5-4.html#id-1.11.6.30.4">E.26.1. Migration to Version 9.5.4</a></span></dt><dt><span class="sect2"><a href="release-9-5-4.html#id-1.11.6.30.5">E.26.2. Changes</a></span></dt></dl></div><p><strong>Release date: </strong>2016-08-11</p><p>
 
3
   This release contains a variety of fixes from 9.5.3.
 
4
   For information about new features in the 9.5 major release, see
 
5
   <a class="xref" href="release-9-5.html" title="E.30. Release 9.5">Section E.30</a>.
 
6
  </p><div class="sect2" id="id-1.11.6.30.4"><div class="titlepage"><div><div><h3 class="title">E.26.1. Migration to Version 9.5.4</h3></div></div></div><p>
 
7
    A dump/restore is not required for those running 9.5.X.
 
8
   </p><p>
 
9
    However, if you are upgrading from a version earlier than 9.5.2,
 
10
    see <a class="xref" href="release-9-5-2.html" title="E.28. Release 9.5.2">Section E.28</a>.
 
11
   </p></div><div class="sect2" id="id-1.11.6.30.5"><div class="titlepage"><div><div><h3 class="title">E.26.2. Changes</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
 
12
      Fix possible mis-evaluation of
 
13
      nested <code class="literal">CASE</code>-<code class="literal">WHEN</code> expressions (Heikki
 
14
      Linnakangas, Michael Paquier, Tom Lane)
 
15
     </p><p>
 
16
      A <code class="literal">CASE</code> expression appearing within the test value
 
17
      subexpression of another <code class="literal">CASE</code> could become confused about
 
18
      whether its own test value was null or not.  Also, inlining of a SQL
 
19
      function implementing the equality operator used by
 
20
      a <code class="literal">CASE</code> expression could result in passing the wrong test
 
21
      value to functions called within a <code class="literal">CASE</code> expression in the
 
22
      SQL function's body.  If the test values were of different data
 
23
      types, a crash might result; moreover such situations could be abused
 
24
      to allow disclosure of portions of server memory.  (CVE-2016-5423)
 
25
     </p></li><li class="listitem"><p>
 
26
      Fix client programs' handling of special characters in database and
 
27
      role names (Noah Misch, Nathan Bossart, Michael Paquier)
 
28
     </p><p>
 
29
      Numerous places in <span class="application">vacuumdb</span> and other client programs
 
30
      could become confused by database and role names containing double
 
31
      quotes or backslashes.  Tighten up quoting rules to make that safe.
 
32
      Also, ensure that when a conninfo string is used as a database name
 
33
      parameter to these programs, it is correctly treated as such throughout.
 
34
     </p><p>
 
35
      Fix handling of paired double quotes
 
36
      in <span class="application">psql</span>'s <code class="command">\connect</code>
 
37
      and <code class="command">\password</code> commands to match the documentation.
 
38
     </p><p>
 
39
      Introduce a new <code class="option">-reuse-previous</code> option
 
40
      in <span class="application">psql</span>'s <code class="command">\connect</code> command to allow
 
41
      explicit control of whether to re-use connection parameters from a
 
42
      previous connection.  (Without this, the choice is based on whether
 
43
      the database name looks like a conninfo string, as before.)  This
 
44
      allows secure handling of database names containing special
 
45
      characters in <span class="application">pg_dumpall</span> scripts.
 
46
     </p><p>
 
47
      <span class="application">pg_dumpall</span> now refuses to deal with database and role
 
48
      names containing carriage returns or newlines, as it seems impractical
 
49
      to quote those characters safely on Windows.  In future we may reject
 
50
      such names on the server side, but that step has not been taken yet.
 
51
     </p><p>
 
52
      These are considered security fixes because crafted object names
 
53
      containing special characters could have been used to execute
 
54
      commands with superuser privileges the next time a superuser
 
55
      executes <span class="application">pg_dumpall</span> or other routine maintenance
 
56
      operations.  (CVE-2016-5424)
 
57
     </p></li><li class="listitem"><p>
 
58
      Fix corner-case misbehaviors for <code class="literal">IS NULL</code>/<code class="literal">IS NOT
 
59
      NULL</code> applied to nested composite values (Andrew Gierth, Tom Lane)
 
60
     </p><p>
 
61
      The SQL standard specifies that <code class="literal">IS NULL</code> should return
 
62
      TRUE for a row of all null values (thus <code class="literal">ROW(NULL,NULL) IS
 
63
      NULL</code> yields TRUE), but this is not meant to apply recursively
 
64
      (thus <code class="literal">ROW(NULL, ROW(NULL,NULL)) IS NULL</code> yields FALSE).
 
65
      The core executor got this right, but certain planner optimizations
 
66
      treated the test as recursive (thus producing TRUE in both cases),
 
67
      and <code class="filename">contrib/postgres_fdw</code> could produce remote queries
 
68
      that misbehaved similarly.
 
69
     </p></li><li class="listitem"><p>
 
70
      Fix <span class="quote">“<span class="quote">unrecognized node type</span>”</span> error for <code class="command">INSERT ... ON
 
71
      CONFLICT</code> within a recursive CTE (a <code class="literal">WITH</code> item) (Peter
 
72
      Geoghegan)
 
73
     </p></li><li class="listitem"><p>
 
74
      Fix <code class="command">INSERT ... ON CONFLICT</code> to successfully match index
 
75
      expressions or index predicates that are simplified during the
 
76
      planner's expression preprocessing phase (Tom Lane)
 
77
     </p></li><li class="listitem"><p>
 
78
      Correctly handle violations of exclusion constraints that apply to
 
79
      the target table of an <code class="literal">INSERT ... ON CONFLICT</code> command,
 
80
      but are not one of the selected arbiter indexes (Tom Lane)
 
81
     </p><p>
 
82
      Such a case should raise a normal constraint-violation error, but it
 
83
      got into an infinite loop instead.
 
84
     </p></li><li class="listitem"><p>
 
85
      Fix <code class="command">INSERT ... ON CONFLICT</code> to not fail if the target
 
86
      table has a unique index on OID (Tom Lane)
 
87
     </p></li><li class="listitem"><p>
 
88
      Make the <code class="type">inet</code> and <code class="type">cidr</code> data types properly reject
 
89
      IPv6 addresses with too many colon-separated fields (Tom Lane)
 
90
     </p></li><li class="listitem"><p>
 
91
      Prevent crash in <code class="function">close_ps()</code>
 
92
      (the <code class="type">point</code> <code class="literal">##</code> <code class="type">lseg</code> operator)
 
93
      for NaN input coordinates (Tom Lane)
 
94
     </p><p>
 
95
      Make it return NULL instead of crashing.
 
96
     </p></li><li class="listitem"><p>
 
97
      Avoid possible crash in <code class="function">pg_get_expr()</code> when inconsistent
 
98
      values are passed to it (Michael Paquier, Thomas Munro)
 
99
     </p></li><li class="listitem"><p>
 
100
      Fix several one-byte buffer over-reads in <code class="function">to_number()</code>
 
101
      (Peter Eisentraut)
 
102
     </p><p>
 
103
      In several cases the <code class="function">to_number()</code> function would read one
 
104
      more character than it should from the input string.  There is a
 
105
      small chance of a crash, if the input happens to be adjacent to the
 
106
      end of memory.
 
107
     </p></li><li class="listitem"><p>
 
108
      Do not run the planner on the query contained in <code class="literal">CREATE
 
109
      MATERIALIZED VIEW</code> or <code class="literal">CREATE TABLE AS</code>
 
110
      when <code class="literal">WITH NO DATA</code> is specified (Michael Paquier,
 
111
      Tom Lane)
 
112
     </p><p>
 
113
      This avoids some unnecessary failure conditions, for example if a
 
114
      stable function invoked by the materialized view depends on a table
 
115
      that doesn't exist yet.
 
116
     </p></li><li class="listitem"><p>
 
117
      Avoid unsafe intermediate state during expensive paths
 
118
      through <code class="function">heap_update()</code> (Masahiko Sawada, Andres Freund)
 
119
     </p><p>
 
120
      Previously, these cases locked the target tuple (by setting its XMAX)
 
121
      but did not WAL-log that action, thus risking data integrity problems
 
122
      if the page were spilled to disk and then a database crash occurred
 
123
      before the tuple update could be completed.
 
124
     </p></li><li class="listitem"><p>
 
125
      Fix hint bit update during WAL replay of row locking operations
 
126
      (Andres Freund)
 
127
     </p><p>
 
128
      The only known consequence of this problem is that row locks held by
 
129
      a prepared, but uncommitted, transaction might fail to be enforced
 
130
      after a crash and restart.
 
131
     </p></li><li class="listitem"><p>
 
132
      Avoid unnecessary <span class="quote">“<span class="quote">could not serialize access</span>”</span> errors when
 
133
      acquiring <code class="literal">FOR KEY SHARE</code> row locks in serializable mode
 
134
      (Álvaro Herrera)
 
135
     </p></li><li class="listitem"><p>
 
136
      Make sure <span class="quote">“<span class="quote">expanded</span>”</span> datums returned by a plan node are
 
137
      read-only (Tom Lane)
 
138
     </p><p>
 
139
      This avoids failures in some cases where the result of a lower plan
 
140
      node is referenced in multiple places in upper nodes.  So far as
 
141
      core <span class="productname">PostgreSQL</span> is concerned, only array values
 
142
      returned by PL/pgSQL functions are at risk; but extensions might
 
143
      use expanded datums for other things.
 
144
     </p></li><li class="listitem"><p>
 
145
      Avoid crash in <code class="literal">postgres -C</code> when the specified variable
 
146
      has a null string value (Michael Paquier)
 
147
     </p></li><li class="listitem"><p>
 
148
      Prevent unintended waits for the receiver in WAL sender processes
 
149
      (Kyotaro Horiguchi)
 
150
     </p></li><li class="listitem"><p>
 
151
      Fix possible loss of large subtransactions in logical decoding
 
152
      (Petru-Florin Mihancea)
 
153
     </p></li><li class="listitem"><p>
 
154
      Fix failure of logical decoding when a subtransaction contains no
 
155
      actual changes (Marko Tiikkaja, Andrew Gierth)
 
156
     </p></li><li class="listitem"><p>
 
157
      Ensure that backends see up-to-date statistics for shared catalogs
 
158
      (Tom Lane)
 
159
     </p><p>
 
160
      The statistics collector failed to update the statistics file for
 
161
      shared catalogs after a request from a regular backend.  This problem
 
162
      was partially masked because the autovacuum launcher regularly makes
 
163
      requests that did cause such updates; however, it became obvious with
 
164
      autovacuum disabled.
 
165
     </p></li><li class="listitem"><p>
 
166
      Avoid redundant writes of the statistics files when multiple
 
167
      backends request updates close together (Tom Lane, Tomas Vondra)
 
168
     </p></li><li class="listitem"><p>
 
169
      Avoid consuming a transaction ID during <code class="command">VACUUM</code>
 
170
      (Alexander Korotkov)
 
171
     </p><p>
 
172
      Some cases in <code class="command">VACUUM</code> unnecessarily caused an XID to be
 
173
      assigned to the current transaction.  Normally this is negligible,
 
174
      but if one is up against the XID wraparound limit, consuming more
 
175
      XIDs during anti-wraparound vacuums is a very bad thing.
 
176
     </p></li><li class="listitem"><p>
 
177
      Prevent possible failure when vacuuming multixact IDs in an
 
178
      installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
 
179
      Álvaro Herrera)
 
180
     </p><p>
 
181
      The usual symptom of this bug is errors
 
182
      like <span class="quote">“<span class="quote">MultiXactId <em class="replaceable"><code>NNN</code></em> has not been created
 
183
      yet -- apparent wraparound</span>”</span>.
 
184
     </p></li><li class="listitem"><p>
 
185
      When a manual <code class="command">ANALYZE</code> specifies a column list, don't
 
186
      reset the table's <code class="literal">changes_since_analyze</code> counter
 
187
      (Tom Lane)
 
188
     </p><p>
 
189
      If we're only analyzing some columns, we should not prevent routine
 
190
      auto-analyze from happening for the other columns.
 
191
     </p></li><li class="listitem"><p>
 
192
      Fix <code class="command">ANALYZE</code>'s overestimation of <code class="literal">n_distinct</code>
 
193
      for a unique or nearly-unique column with many null entries (Tom
 
194
      Lane)
 
195
     </p><p>
 
196
      The nulls could get counted as though they were themselves distinct
 
197
      values, leading to serious planner misestimates in some types of
 
198
      queries.
 
199
     </p></li><li class="listitem"><p>
 
200
      Prevent autovacuum from starting multiple workers for the same shared
 
201
      catalog (Álvaro Herrera)
 
202
     </p><p>
 
203
      Normally this isn't much of a problem because the vacuum doesn't take
 
204
      long anyway; but in the case of a severely bloated catalog, it could
 
205
      result in all but one worker uselessly waiting instead of doing
 
206
      useful work on other tables.
 
207
     </p></li><li class="listitem"><p>
 
208
      Fix bug in b-tree mark/restore processing (Kevin Grittner)
 
209
     </p><p>
 
210
      This error could lead to incorrect join results or assertion failures
 
211
      in a merge join whose inner source node is a b-tree indexscan.
 
212
     </p></li><li class="listitem"><p>
 
213
      Avoid duplicate buffer lock release when abandoning a b-tree index
 
214
      page deletion attempt (Tom Lane)
 
215
     </p><p>
 
216
      This mistake prevented <code class="command">VACUUM</code> from completing in some
 
217
      cases involving corrupt b-tree indexes.
 
218
     </p></li><li class="listitem"><p>
 
219
      Fix building of large (bigger than <code class="varname">shared_buffers</code>)
 
220
      hash indexes (Tom Lane)
 
221
     </p><p>
 
222
      The code path used for large indexes contained a bug causing
 
223
      incorrect hash values to be inserted into the index, so that
 
224
      subsequent index searches always failed, except for tuples inserted
 
225
      into the index after the initial build.
 
226
     </p></li><li class="listitem"><p>
 
227
      Prevent infinite loop in GiST index build for geometric columns
 
228
      containing NaN component values (Tom Lane)
 
229
     </p></li><li class="listitem"><p>
 
230
      Fix possible crash during a nearest-neighbor (<code class="literal">ORDER BY</code>
 
231
      distance) indexscan on a <code class="filename">contrib/btree_gist</code> index on
 
232
      an <code class="type">interval</code> column (Peter Geoghegan)
 
233
     </p></li><li class="listitem"><p>
 
234
      Fix <span class="quote">“<span class="quote">PANIC: failed to add BRIN tuple</span>”</span> error when attempting
 
235
      to update a BRIN index entry (Álvaro Herrera)
 
236
     </p></li><li class="listitem"><p>
 
237
      Fix possible crash during background worker shutdown (Dmitry Ivanov)
 
238
     </p></li><li class="listitem"><p>
 
239
      Fix PL/pgSQL's handling of the <code class="literal">INTO</code> clause
 
240
      within <code class="command">IMPORT FOREIGN SCHEMA</code> commands (Tom Lane)
 
241
     </p></li><li class="listitem"><p>
 
242
      Fix <code class="filename">contrib/btree_gin</code> to handle the smallest
 
243
      possible <code class="type">bigint</code> value correctly (Peter Eisentraut)
 
244
     </p></li><li class="listitem"><p>
 
245
      Teach libpq to correctly decode server version from future servers
 
246
      (Peter Eisentraut)
 
247
     </p><p>
 
248
      It's planned to switch to two-part instead of three-part server
 
249
      version numbers for releases after 9.6.  Make sure
 
250
      that <code class="function">PQserverVersion()</code> returns the correct value for
 
251
      such cases.
 
252
     </p></li><li class="listitem"><p>
 
253
      Fix <span class="application">ecpg</span>'s code for <code class="literal">unsigned long long</code>
 
254
      array elements (Michael Meskes)
 
255
     </p></li><li class="listitem"><p>
 
256
      In <span class="application">pg_dump</span> with both <code class="option">-c</code> and <code class="option">-C</code>
 
257
      options, avoid emitting an unwanted <code class="literal">CREATE SCHEMA public</code>
 
258
      command (David Johnston, Tom Lane)
 
259
     </p></li><li class="listitem"><p>
 
260
      Improve handling of <span class="systemitem">SIGTERM</span>/control-C in
 
261
      parallel <span class="application">pg_dump</span> and <span class="application">pg_restore</span> (Tom
 
262
      Lane)
 
263
     </p><p>
 
264
      Make sure that the worker processes will exit promptly, and also arrange
 
265
      to send query-cancel requests to the connected backends, in case they
 
266
      are doing something long-running such as a <code class="command">CREATE INDEX</code>.
 
267
     </p></li><li class="listitem"><p>
 
268
      Fix error reporting in parallel <span class="application">pg_dump</span>
 
269
      and <span class="application">pg_restore</span> (Tom Lane)
 
270
     </p><p>
 
271
      Previously, errors reported by <span class="application">pg_dump</span>
 
272
      or <span class="application">pg_restore</span> worker processes might never make it to
 
273
      the user's console, because the messages went through the master
 
274
      process, and there were various deadlock scenarios that would prevent
 
275
      the master process from passing on the messages.  Instead, just print
 
276
      everything to <code class="literal">stderr</code>.  In some cases this will result in
 
277
      duplicate messages (for instance, if all the workers report a server
 
278
      shutdown), but that seems better than no message.
 
279
     </p></li><li class="listitem"><p>
 
280
      Ensure that parallel <span class="application">pg_dump</span>
 
281
      or <span class="application">pg_restore</span> on Windows will shut down properly
 
282
      after an error (Kyotaro Horiguchi)
 
283
     </p><p>
 
284
      Previously, it would report the error, but then just sit until
 
285
      manually stopped by the user.
 
286
     </p></li><li class="listitem"><p>
 
287
      Make parallel <span class="application">pg_dump</span> fail cleanly when run against a
 
288
      standby server (Magnus Hagander)
 
289
     </p><p>
 
290
      This usage is not supported
 
291
      unless <code class="option">--no-synchronized-snapshots</code> is specified, but the
 
292
      error was not handled very well.
 
293
     </p></li><li class="listitem"><p>
 
294
      Make <span class="application">pg_dump</span> behave better when built without zlib
 
295
      support (Kyotaro Horiguchi)
 
296
     </p><p>
 
297
      It didn't work right for parallel dumps, and emitted some rather
 
298
      pointless warnings in other cases.
 
299
     </p></li><li class="listitem"><p>
 
300
      Make <span class="application">pg_basebackup</span> accept <code class="literal">-Z 0</code> as
 
301
      specifying no compression (Fujii Masao)
 
302
     </p></li><li class="listitem"><p>
 
303
      Fix makefiles' rule for building AIX shared libraries to be safe for
 
304
      parallel make (Noah Misch)
 
305
     </p></li><li class="listitem"><p>
 
306
      Fix TAP tests and MSVC scripts to work when build directory's path
 
307
      name contains spaces (Michael Paquier, Kyotaro Horiguchi)
 
308
     </p></li><li class="listitem"><p>
 
309
      Be more predictable about reporting <span class="quote">“<span class="quote">statement timeout</span>”</span>
 
310
      versus <span class="quote">“<span class="quote">lock timeout</span>”</span> (Tom Lane)
 
311
     </p><p>
 
312
      On heavily loaded machines, the regression tests sometimes failed due
 
313
      to reporting <span class="quote">“<span class="quote">lock timeout</span>”</span> even though the statement timeout
 
314
      should have occurred first.
 
315
     </p></li><li class="listitem"><p>
 
316
      Make regression tests safe for Danish and Welsh locales (Jeff Janes,
 
317
      Tom Lane)
 
318
     </p><p>
 
319
      Change some test data that triggered the unusual sorting rules of
 
320
      these locales.
 
321
     </p></li><li class="listitem"><p>
 
322
      Update our copy of the timezone code to match
 
323
      IANA's <span class="application">tzcode</span> release 2016c (Tom Lane)
 
324
     </p><p>
 
325
      This is needed to cope with anticipated future changes in the time
 
326
      zone data files.  It also fixes some corner-case bugs in coping with
 
327
      unusual time zones.
 
328
     </p></li><li class="listitem"><p>
 
329
      Update time zone data files to <span class="application">tzdata</span> release 2016f
 
330
      for DST law changes in Kemerovo and Novosibirsk, plus historical
 
331
      corrections for Azerbaijan, Belarus, and Morocco.
 
332
     </p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-9-5-5.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="release.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="release-9-5-3.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.25. Release 9.5.5 </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> E.27. Release 9.5.3</td></tr></table></div></body></html>
 
 
b'\\ No newline at end of file'