Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
proc
/
212
/
root
/
opt
/
postgresql-11
/
doc
/
html
/
//proc/212/root/opt/postgresql-11/doc/html/release-9-3-14.html
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!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.70. Release 9.3.14</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-3-15.html" title="E.69. Release 9.3.15" /><link rel="next" href="release-9-3-13.html" title="E.71. Release 9.3.13" /></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.70. Release 9.3.14</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-9-3-15.html" title="E.69. Release 9.3.15">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 11.1 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-9-3-13.html" title="E.71. Release 9.3.13">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RELEASE-9-3-14"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.70. Release 9.3.14</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-9-3-14.html#id-1.11.6.74.4">E.70.1. Migration to Version 9.3.14</a></span></dt><dt><span class="sect2"><a href="release-9-3-14.html#id-1.11.6.74.5">E.70.2. Changes</a></span></dt></dl></div><p><strong>Release date: </strong>2016-08-11</p><p> This release contains a variety of fixes from 9.3.13. For information about new features in the 9.3 major release, see <a class="xref" href="release-9-3.html" title="E.84. Release 9.3">Section E.84</a>. </p><div class="sect2" id="id-1.11.6.74.4"><div class="titlepage"><div><div><h3 class="title">E.70.1. Migration to Version 9.3.14</h3></div></div></div><p> A dump/restore is not required for those running 9.3.X. </p><p> However, if you are upgrading from a version earlier than 9.3.9, see <a class="xref" href="release-9-3-9.html" title="E.75. Release 9.3.9">Section E.75</a>. </p></div><div class="sect2" id="id-1.11.6.74.5"><div class="titlepage"><div><div><h3 class="title">E.70.2. Changes</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Fix possible mis-evaluation of nested <code class="literal">CASE</code>-<code class="literal">WHEN</code> expressions (Heikki Linnakangas, Michael Paquier, Tom Lane) </p><p> A <code class="literal">CASE</code> expression appearing within the test value subexpression of another <code class="literal">CASE</code> could become confused about whether its own test value was null or not. Also, inlining of a SQL function implementing the equality operator used by a <code class="literal">CASE</code> expression could result in passing the wrong test value to functions called within a <code class="literal">CASE</code> expression in the SQL function's body. If the test values were of different data types, a crash might result; moreover such situations could be abused to allow disclosure of portions of server memory. (CVE-2016-5423) </p></li><li class="listitem"><p> Fix client programs' handling of special characters in database and role names (Noah Misch, Nathan Bossart, Michael Paquier) </p><p> Numerous places in <span class="application">vacuumdb</span> and other client programs could become confused by database and role names containing double quotes or backslashes. Tighten up quoting rules to make that safe. Also, ensure that when a conninfo string is used as a database name parameter to these programs, it is correctly treated as such throughout. </p><p> Fix handling of paired double quotes in <span class="application">psql</span>'s <code class="command">\connect</code> and <code class="command">\password</code> commands to match the documentation. </p><p> Introduce a new <code class="option">-reuse-previous</code> option in <span class="application">psql</span>'s <code class="command">\connect</code> command to allow explicit control of whether to re-use connection parameters from a previous connection. (Without this, the choice is based on whether the database name looks like a conninfo string, as before.) This allows secure handling of database names containing special characters in <span class="application">pg_dumpall</span> scripts. </p><p> <span class="application">pg_dumpall</span> now refuses to deal with database and role names containing carriage returns or newlines, as it seems impractical to quote those characters safely on Windows. In future we may reject such names on the server side, but that step has not been taken yet. </p><p> These are considered security fixes because crafted object names containing special characters could have been used to execute commands with superuser privileges the next time a superuser executes <span class="application">pg_dumpall</span> or other routine maintenance operations. (CVE-2016-5424) </p></li><li class="listitem"><p> Fix corner-case misbehaviors for <code class="literal">IS NULL</code>/<code class="literal">IS NOT NULL</code> applied to nested composite values (Andrew Gierth, Tom Lane) </p><p> The SQL standard specifies that <code class="literal">IS NULL</code> should return TRUE for a row of all null values (thus <code class="literal">ROW(NULL,NULL) IS NULL</code> yields TRUE), but this is not meant to apply recursively (thus <code class="literal">ROW(NULL, ROW(NULL,NULL)) IS NULL</code> yields FALSE). The core executor got this right, but certain planner optimizations treated the test as recursive (thus producing TRUE in both cases), and <code class="filename">contrib/postgres_fdw</code> could produce remote queries that misbehaved similarly. </p></li><li class="listitem"><p> Make the <code class="type">inet</code> and <code class="type">cidr</code> data types properly reject IPv6 addresses with too many colon-separated fields (Tom Lane) </p></li><li class="listitem"><p> Prevent crash in <code class="function">close_ps()</code> (the <code class="type">point</code> <code class="literal">##</code> <code class="type">lseg</code> operator) for NaN input coordinates (Tom Lane) </p><p> Make it return NULL instead of crashing. </p></li><li class="listitem"><p> Avoid possible crash in <code class="function">pg_get_expr()</code> when inconsistent values are passed to it (Michael Paquier, Thomas Munro) </p></li><li class="listitem"><p> Fix several one-byte buffer over-reads in <code class="function">to_number()</code> (Peter Eisentraut) </p><p> In several cases the <code class="function">to_number()</code> function would read one more character than it should from the input string. There is a small chance of a crash, if the input happens to be adjacent to the end of memory. </p></li><li class="listitem"><p> Do not run the planner on the query contained in <code class="literal">CREATE MATERIALIZED VIEW</code> or <code class="literal">CREATE TABLE AS</code> when <code class="literal">WITH NO DATA</code> is specified (Michael Paquier, Tom Lane) </p><p> This avoids some unnecessary failure conditions, for example if a stable function invoked by the materialized view depends on a table that doesn't exist yet. </p></li><li class="listitem"><p> Avoid unsafe intermediate state during expensive paths through <code class="function">heap_update()</code> (Masahiko Sawada, Andres Freund) </p><p> 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. </p></li><li class="listitem"><p> Fix hint bit update during WAL replay of row locking operations (Andres Freund) </p><p> The only known consequence of this problem is that row locks held by a prepared, but uncommitted, transaction might fail to be enforced after a crash and restart. </p></li><li class="listitem"><p> Avoid unnecessary <span class="quote">“<span class="quote">could not serialize access</span>”</span> errors when acquiring <code class="literal">FOR KEY SHARE</code> row locks in serializable mode (Álvaro Herrera) </p></li><li class="listitem"><p> Avoid crash in <code class="literal">postgres -C</code> when the specified variable has a null string value (Michael Paquier) </p></li><li class="listitem"><p> Ensure that backends see up-to-date statistics for shared catalogs (Tom Lane) </p><p> The statistics collector failed to update the statistics file for shared catalogs after a request from a regular backend. This problem was partially masked because the autovacuum launcher regularly makes requests that did cause such updates; however, it became obvious with autovacuum disabled. </p></li><li class="listitem"><p> Avoid redundant writes of the statistics files when multiple backends request updates close together (Tom Lane, Tomas Vondra) </p></li><li class="listitem"><p> Avoid consuming a transaction ID during <code class="command">VACUUM</code> (Alexander Korotkov) </p><p> Some cases in <code class="command">VACUUM</code> 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. </p></li><li class="listitem"><p> Avoid canceling hot-standby queries during <code class="command">VACUUM FREEZE</code> (Simon Riggs, Álvaro Herrera) </p><p> <code class="command">VACUUM FREEZE</code> on an otherwise-idle master server could result in unnecessary cancellations of queries on its standby servers. </p></li><li class="listitem"><p> Prevent possible failure when vacuuming multixact IDs in an installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth, Álvaro Herrera) </p><p> The usual symptom of this bug is errors like <span class="quote">“<span class="quote">MultiXactId <em class="replaceable"><code>NNN</code></em> has not been created yet -- apparent wraparound</span>”</span>. </p></li><li class="listitem"><p> When a manual <code class="command">ANALYZE</code> specifies a column list, don't reset the table's <code class="literal">changes_since_analyze</code> counter (Tom Lane) </p><p> If we're only analyzing some columns, we should not prevent routine auto-analyze from happening for the other columns. </p></li><li class="listitem"><p> Fix <code class="command">ANALYZE</code>'s overestimation of <code class="literal">n_distinct</code> for a unique or nearly-unique column with many null entries (Tom Lane) </p><p> The nulls could get counted as though they were themselves distinct values, leading to serious planner misestimates in some types of queries. </p></li><li class="listitem"><p> Prevent autovacuum from starting multiple workers for the same shared catalog (Álvaro Herrera) </p><p> 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. </p></li><li class="listitem"><p> Prevent infinite loop in GiST index build for geometric columns containing NaN component values (Tom Lane) </p></li><li class="listitem"><p> Fix <code class="filename">contrib/btree_gin</code> to handle the smallest possible <code class="type">bigint</code> value correctly (Peter Eisentraut) </p></li><li class="listitem"><p> Teach libpq to correctly decode server version from future servers (Peter Eisentraut) </p><p> It's planned to switch to two-part instead of three-part server version numbers for releases after 9.6. Make sure that <code class="function">PQserverVersion()</code> returns the correct value for such cases. </p></li><li class="listitem"><p> Fix <span class="application">ecpg</span>'s code for <code class="literal">unsigned long long</code> array elements (Michael Meskes) </p></li><li class="listitem"><p> In <span class="application">pg_dump</span> with both <code class="option">-c</code> and <code class="option">-C</code> options, avoid emitting an unwanted <code class="literal">CREATE SCHEMA public</code> command (David Johnston, Tom Lane) </p></li><li class="listitem"><p> Improve handling of <span class="systemitem">SIGTERM</span>/control-C in parallel <span class="application">pg_dump</span> and <span class="application">pg_restore</span> (Tom Lane) </p><p> Make sure that the worker processes will exit promptly, and also arrange to send query-cancel requests to the connected backends, in case they are doing something long-running such as a <code class="command">CREATE INDEX</code>. </p></li><li class="listitem"><p> Fix error reporting in parallel <span class="application">pg_dump</span> and <span class="application">pg_restore</span> (Tom Lane) </p><p> Previously, errors reported by <span class="application">pg_dump</span> or <span class="application">pg_restore</span> worker processes might never make it to the user's console, because the messages went through the master process, and there were various deadlock scenarios that would prevent the master process from passing on the messages. Instead, just print everything to <code class="literal">stderr</code>. In some cases this will result in duplicate messages (for instance, if all the workers report a server shutdown), but that seems better than no message. </p></li><li class="listitem"><p> Ensure that parallel <span class="application">pg_dump</span> or <span class="application">pg_restore</span> on Windows will shut down properly after an error (Kyotaro Horiguchi) </p><p> Previously, it would report the error, but then just sit until manually stopped by the user. </p></li><li class="listitem"><p> Make <span class="application">pg_dump</span> behave better when built without zlib support (Kyotaro Horiguchi) </p><p> It didn't work right for parallel dumps, and emitted some rather pointless warnings in other cases. </p></li><li class="listitem"><p> Make <span class="application">pg_basebackup</span> accept <code class="literal">-Z 0</code> as specifying no compression (Fujii Masao) </p></li><li class="listitem"><p> Fix makefiles' rule for building AIX shared libraries to be safe for parallel make (Noah Misch) </p></li><li class="listitem"><p> Fix TAP tests and MSVC scripts to work when build directory's path name contains spaces (Michael Paquier, Kyotaro Horiguchi) </p></li><li class="listitem"><p> Be more predictable about reporting <span class="quote">“<span class="quote">statement timeout</span>”</span> versus <span class="quote">“<span class="quote">lock timeout</span>”</span> (Tom Lane) </p><p> On heavily loaded machines, the regression tests sometimes failed due to reporting <span class="quote">“<span class="quote">lock timeout</span>”</span> even though the statement timeout should have occurred first. </p></li><li class="listitem"><p> Make regression tests safe for Danish and Welsh locales (Jeff Janes, Tom Lane) </p><p> Change some test data that triggered the unusual sorting rules of these locales. </p></li><li class="listitem"><p> Update our copy of the timezone code to match IANA's <span class="application">tzcode</span> release 2016c (Tom Lane) </p><p> 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. </p></li><li class="listitem"><p> Update time zone data files to <span class="application">tzdata</span> release 2016f for DST law changes in Kemerovo and Novosibirsk, plus historical corrections for Azerbaijan, Belarus, and Morocco. </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-3-15.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-3-13.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.69. Release 9.3.15 </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> E.71. Release 9.3.13</td></tr></table></div></body></html>