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.
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)
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)
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.
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.
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.
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.
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)
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
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)
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)
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>
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
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,
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)
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
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
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
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
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
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
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>
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,
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
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
196
The nulls could get counted as though they were themselves distinct
197
values, leading to serious planner misestimates in some types of
199
</p></li><li class="listitem"><p>
200
Prevent autovacuum from starting multiple workers for the same shared
201
catalog (Álvaro Herrera)
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)
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)
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)
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
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
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
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)
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)
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)
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)
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)
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,
319
Change some test data that triggered the unusual sorting rules of
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)
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
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'