1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3-14">
5 <title>Release 9.3.14</title>
8 <title>Release Date</title>
9 <simpara>2016-08-11</simpara>
13 This release contains a variety of fixes from 9.3.13.
14 For information about new features in the 9.3 major release, see
15 <xref linkend="release-9-3">.
19 <title>Migration to Version 9.3.14</title>
22 A dump/restore is not required for those running 9.3.X.
26 However, if you are upgrading from a version earlier than 9.3.9,
27 see <xref linkend="release-9-3-9">.
33 <title>Changes</title>
39 Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
40 NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
44 The SQL standard specifies that <literal>IS NULL</> should return
45 TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
46 NULL</> yields TRUE), but this is not meant to apply recursively
47 (thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
48 The core executor got this right, but certain planner optimizations
49 treated the test as recursive (thus producing TRUE in both cases),
50 and <filename>contrib/postgres_fdw</> could produce remote queries
51 that misbehaved similarly.
57 Make the <type>inet</> and <type>cidr</> data types properly reject
58 IPv6 addresses with too many colon-separated fields (Tom Lane)
64 Prevent crash in <function>close_ps()</>
65 (the <type>point</> <literal>##</> <type>lseg</> operator)
66 for NaN input coordinates (Tom Lane)
70 Make it return NULL instead of crashing.
76 Avoid possible crash in <function>pg_get_expr()</> when inconsistent
77 values are passed to it (Michael Paquier, Thomas Munro)
83 Do not run the planner on the query contained in <literal>CREATE
84 MATERIALIZED VIEW</> or <literal>CREATE TABLE AS</>
85 when <literal>WITH NO DATA</> is specified (Michael Paquier,
90 This avoids some unnecessary failure conditions, for example if a
91 stable function invoked by the materialized view depends on a table
92 that doesn't exist yet.
98 Avoid unsafe intermediate state during expensive paths
99 through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
103 Previously, these cases locked the target tuple (by setting its XMAX)
104 but did not WAL-log that action, thus risking data integrity problems
105 if the page were spilled to disk and then a database crash occurred
106 before the tuple update could be completed.
112 Fix hint bit update during WAL replay of row locking operations
117 The only known consequence of this problem is that row locks held by
118 a prepared, but uncommitted, transaction might fail to be enforced
119 after a crash and restart.
125 Avoid unnecessary <quote>could not serialize access</> errors when
126 acquiring <literal>FOR KEY SHARE</> row locks in serializable mode
127 (Álvaro Herrera)
133 Avoid crash in <literal>postgres -C</> when the specified variable
134 has a null string value (Michael Paquier)
140 Ensure that backends see up-to-date statistics for shared catalogs
145 The statistics collector failed to update the statistics file for
146 shared catalogs after a request from a regular backend. This problem
147 was partially masked because the autovacuum launcher regularly makes
148 requests that did cause such updates; however, it became obvious with
155 Avoid redundant writes of the statistics files when multiple
156 backends request updates close together (Tom Lane, Tomas Vondra)
162 Avoid consuming a transaction ID during <command>VACUUM</>
167 Some cases in <command>VACUUM</> unnecessarily caused an XID to be
168 assigned to the current transaction. Normally this is negligible,
169 but if one is up against the XID wraparound limit, consuming more
170 XIDs during anti-wraparound vacuums is a very bad thing.
176 Avoid canceling hot-standby queries during <command>VACUUM FREEZE</>
177 (Simon Riggs, Álvaro Herrera)
181 <command>VACUUM FREEZE</> on an otherwise-idle master server could
182 result in unnecessary cancellations of queries on its standby
189 Prevent possible failure when vacuuming multixact IDs in an
190 installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
191 Álvaro Herrera)
195 The usual symptom of this bug is errors
196 like <quote>MultiXactId <replaceable>NNN</> has not been created
197 yet -- apparent wraparound</quote>.
203 When a manual <command>ANALYZE</> specifies a column list, don't
204 reset the table's <literal>changes_since_analyze</> counter
209 If we're only analyzing some columns, we should not prevent routine
210 auto-analyze from happening for the other columns.
216 Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
217 for a unique or nearly-unique column with many null entries (Tom
222 The nulls could get counted as though they were themselves distinct
223 values, leading to serious planner misestimates in some types of
230 Prevent autovacuum from starting multiple workers for the same shared
231 catalog (Álvaro Herrera)
235 Normally this isn't much of a problem because the vacuum doesn't take
236 long anyway; but in the case of a severely bloated catalog, it could
237 result in all but one worker uselessly waiting instead of doing
238 useful work on other tables.
244 Prevent infinite loop in GiST index build for geometric columns
245 containing NaN component values (Tom Lane)
251 Fix <filename>contrib/btree_gin</> to handle the smallest
252 possible <type>bigint</> value correctly (Peter Eisentraut)
258 Teach libpq to correctly decode server version from future servers
263 It's planned to switch to two-part instead of three-part server
264 version numbers for releases after 9.6. Make sure
265 that <function>PQserverVersion()</> returns the correct value for
272 Fix <application>ecpg</>'s code for <literal>unsigned long long</>
273 array elements (Michael Meskes)
279 In <application>pg_dump</> with both <option>-c</> and <option>-C</>
280 options, avoid emitting an unwanted <literal>CREATE SCHEMA public</>
281 command (David Johnston, Tom Lane)
287 Improve handling of <systemitem>SIGTERM</>/control-C in
288 parallel <application>pg_dump</> and <application>pg_restore</> (Tom
293 Make sure that the worker processes will exit promptly, and also arrange
294 to send query-cancel requests to the connected backends, in case they
295 are doing something long-running such as a <command>CREATE INDEX</>.
301 Fix error reporting in parallel <application>pg_dump</>
302 and <application>pg_restore</> (Tom Lane)
306 Previously, errors reported by <application>pg_dump</>
307 or <application>pg_restore</> worker processes might never make it to
308 the user's console, because the messages went through the master
309 process, and there were various deadlock scenarios that would prevent
310 the master process from passing on the messages. Instead, just print
311 everything to <literal>stderr</>. In some cases this will result in
312 duplicate messages (for instance, if all the workers report a server
313 shutdown), but that seems better than no message.
319 Ensure that parallel <application>pg_dump</>
320 or <application>pg_restore</> on Windows will shut down properly
321 after an error (Kyotaro Horiguchi)
325 Previously, it would report the error, but then just sit until
326 manually stopped by the user.
332 Make <application>pg_dump</> behave better when built without zlib
333 support (Kyotaro Horiguchi)
337 It didn't work right for parallel dumps, and emitted some rather
338 pointless warnings in other cases.
344 Make <application>pg_basebackup</> accept <literal>-Z 0</> as
345 specifying no compression (Fujii Masao)
351 Fix makefiles' rule for building AIX shared libraries to be safe for
352 parallel make (Noah Misch)
358 Fix TAP tests and MSVC scripts to work when build directory's path
359 name contains spaces (Michael Paquier, Kyotaro Horiguchi)
365 Be more predictable about reporting <quote>statement timeout</>
366 versus <quote>lock timeout</> (Tom Lane)
370 On heavily loaded machines, the regression tests sometimes failed due
371 to reporting <quote>lock timeout</> even though the statement timeout
372 should have occurred first.
378 Make regression tests safe for Danish and Welsh locales (Jeff Janes,
383 Change some test data that triggered the unusual sorting rules of
390 Update our copy of the timezone code to match
391 IANA's <application>tzcode</> release 2016c (Tom Lane)
395 This is needed to cope with anticipated future changes in the time
396 zone data files. It also fixes some corner-case bugs in coping with
403 Update time zone data files to <application>tzdata</> release 2016f
404 for DST law changes in Kemerovo and Novosibirsk, plus historical
405 corrections for Azerbaijan, Belarus, and Morocco.
414 <sect1 id="release-9-3-13">
415 <title>Release 9.3.13</title>
418 <title>Release Date</title>
419 <simpara>2016-05-12</simpara>
423 This release contains a variety of fixes from 9.3.12.
424 For information about new features in the 9.3 major release, see
425 <xref linkend="release-9-3">.
429 <title>Migration to Version 9.3.13</title>
432 A dump/restore is not required for those running 9.3.X.
436 However, if you are upgrading from a version earlier than 9.3.9,
437 see <xref linkend="release-9-3-9">.
443 <title>Changes</title>
449 Clear the OpenSSL error queue before OpenSSL calls, rather than
450 assuming it's clear already; and make sure we leave it clear
451 afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
455 This change prevents problems when there are multiple connections
456 using OpenSSL within a single process and not all the code involved
457 follows the same rules for when to clear the error queue.
458 Failures have been reported specifically when a client application
459 uses SSL connections in <application>libpq</> concurrently with
460 SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL.
461 It's possible for similar problems to arise within the server as well,
462 if an extension module establishes an outgoing SSL connection.
468 Fix <quote>failed to build any <replaceable>N</>-way joins</quote>
469 planner error with a full join enclosed in the right-hand side of a
476 Fix incorrect handling of equivalence-class tests in multilevel
477 nestloop plans (Tom Lane)
481 Given a three-or-more-way equivalence class of variables, such
482 as <literal>X.X = Y.Y = Z.Z</>, it was possible for the planner to omit
483 some of the tests needed to enforce that all the variables are actually
484 equal, leading to join rows being output that didn't satisfy
485 the <literal>WHERE</> clauses. For various reasons, erroneous plans
486 were seldom selected in practice, so that this bug has gone undetected
493 Fix possible misbehavior of <literal>TH</>, <literal>th</>,
494 and <literal>Y,YYY</> format codes in <function>to_timestamp()</>
499 These could advance off the end of the input string, causing subsequent
500 format codes to read garbage.
506 Fix dumping of rules and views in which the <replaceable>array</>
507 argument of a <literal><replaceable>value</> <replaceable>operator</>
508 ANY (<replaceable>array</>)</literal> construct is a sub-SELECT
515 Make <application>pg_regress</> use a startup timeout from the
516 <envar>PGCTLTIMEOUT</> environment variable, if that's set (Tom Lane)
520 This is for consistency with a behavior recently added
521 to <application>pg_ctl</>; it eases automated testing on slow machines.
527 Fix <application>pg_upgrade</> to correctly restore extension
528 membership for operator families containing only one operator class
533 In such a case, the operator family was restored into the new database,
534 but it was no longer marked as part of the extension. This had no
535 immediate ill effects, but would cause later <application>pg_dump</>
536 runs to emit output that would cause (harmless) errors on restore.
542 Fix <application>pg_upgrade</> to not fail when new-cluster TOAST rules
543 differ from old (Tom Lane)
547 <application>pg_upgrade</> had special-case code to handle the
548 situation where the new <productname>PostgreSQL</> version thinks that
549 a table should have a TOAST table while the old version did not. That
550 code was broken, so remove it, and instead do nothing in such cases;
551 there seems no reason to believe that we can't get along fine without
552 a TOAST table if that was okay according to the old version's rules.
558 Author: Tom Lane <tgl@sss.pgh.pa.us>
559 Branch: REL9_3_STABLE [f4f4f6990] 2016-04-15 16:49:48 -0400
560 Branch: REL9_2_STABLE [d7dbc882d] 2016-04-15 16:49:48 -0400
561 Author: Tom Lane <tgl@sss.pgh.pa.us>
562 Branch: REL9_3_STABLE [992df9658] 2016-04-16 10:42:07 -0400
563 Branch: REL9_2_STABLE [9008922bf] 2016-04-16 10:41:57 -0400
564 Author: Tom Lane <tgl@sss.pgh.pa.us>
565 Branch: REL9_3_STABLE [35166fd76] 2016-04-18 13:19:52 -0400
566 Branch: REL9_2_STABLE [37f30b251] 2016-04-18 13:19:52 -0400
569 Back-port 9.4-era memory-barrier code changes into 9.2 and 9.3 (Tom Lane)
573 These changes were not originally needed in pre-9.4 branches, but we
574 recently back-patched a fix that expected the barrier code to work
575 properly. Only IA64 (when using icc), HPPA, and Alpha platforms are
582 Reduce the number of SysV semaphores used by a build configured with
583 <option>--disable-spinlocks</> (Tom Lane)
589 Rename internal function <function>strtoi()</>
590 to <function>strtoint()</> to avoid conflict with a NetBSD library
591 function (Thomas Munro)
597 Fix reporting of errors from <function>bind()</>
598 and <function>listen()</> system calls on Windows (Tom Lane)
604 Reduce verbosity of compiler output when building with Microsoft Visual
605 Studio (Christian Ullrich)
611 Fix <function>putenv()</> to work properly with Visual Studio 2013
618 Avoid possibly-unsafe use of Windows' <function>FormatMessage()</>
619 function (Christian Ullrich)
623 Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</> flag where
624 appropriate. No live bug is known to exist here, but it seems like a
625 good idea to be careful.
631 Update time zone data files to <application>tzdata</> release 2016d
632 for DST law changes in Russia and Venezuela. There are new zone
633 names <literal>Europe/Kirov</> and <literal>Asia/Tomsk</> to reflect
634 the fact that these regions now have different time zone histories from
644 <sect1 id="release-9-3-12">
645 <title>Release 9.3.12</title>
648 <title>Release Date</title>
649 <simpara>2016-03-31</simpara>
653 This release contains a variety of fixes from 9.3.11.
654 For information about new features in the 9.3 major release, see
655 <xref linkend="release-9-3">.
659 <title>Migration to Version 9.3.12</title>
662 A dump/restore is not required for those running 9.3.X.
666 However, if you are upgrading from a version earlier than 9.3.9,
667 see <xref linkend="release-9-3-9">.
673 <title>Changes</title>
679 Fix incorrect handling of NULL index entries in
680 indexed <literal>ROW()</> comparisons (Tom Lane)
684 An index search using a row comparison such as <literal>ROW(a, b) >
685 ROW('x', 'y')</> would stop upon reaching a NULL entry in
686 the <structfield>b</> column, ignoring the fact that there might be
687 non-NULL <structfield>b</> values associated with later values
688 of <structfield>a</>.
694 Avoid unlikely data-loss scenarios due to renaming files without
695 adequate <function>fsync()</> calls before and after (Michael Paquier,
696 Tomas Vondra, Andres Freund)
702 Correctly handle cases where <literal>pg_subtrans</> is close to XID
703 wraparound during server startup (Jeff Janes)
709 Fix corner-case crash due to trying to free <function>localeconv()</>
710 output strings more than once (Tom Lane)
716 Fix parsing of affix files for <literal>ispell</> dictionaries
721 The code could go wrong if the affix file contained any characters
722 whose byte length changes during case-folding, for
723 example <literal>I</> in Turkish UTF8 locales.
729 Avoid use of <function>sscanf()</> to parse <literal>ispell</>
730 dictionary files (Artur Zakirov)
734 This dodges a portability problem on FreeBSD-derived platforms
741 Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an
742 AVX2-capable CPU and a Postgres build done with Visual Studio 2013
747 This is a workaround for a bug in Visual Studio 2013's runtime
748 library, which Microsoft have stated they will not fix in that
755 Fix <application>psql</>'s tab completion logic to handle multibyte
756 characters properly (Kyotaro Horiguchi, Robert Haas)
762 Fix <application>psql</>'s tab completion for
763 <literal>SECURITY LABEL</> (Tom Lane)
767 Pressing TAB after <literal>SECURITY LABEL</> might cause a crash
768 or offering of inappropriate keywords.
774 Make <application>pg_ctl</> accept a wait timeout from the
775 <envar>PGCTLTIMEOUT</> environment variable, if none is specified on
776 the command line (Noah Misch)
780 This eases testing of slower buildfarm members by allowing them
781 to globally specify a longer-than-normal timeout for postmaster
782 startup and shutdown.
788 Fix incorrect test for Windows service status
789 in <application>pg_ctl</> (Manuel Mathar)
793 The previous set of minor releases attempted to
794 fix <application>pg_ctl</> to properly determine whether to send log
795 messages to Window's Event Log, but got the test backwards.
801 Fix <application>pgbench</> to correctly handle the combination
802 of <literal>-C</> and <literal>-M prepared</> options (Tom Lane)
808 In <application>pg_upgrade</>, skip creating a deletion script when
809 the new data directory is inside the old data directory (Bruce
814 Blind application of the script in such cases would result in loss of
815 the new data directory.
821 In PL/Perl, properly translate empty Postgres arrays into empty Perl
822 arrays (Alex Hunsaker)
828 Make PL/Python cope with function names that aren't valid Python
829 identifiers (Jim Nasby)
835 Fix multiple mistakes in the statistics returned
836 by <filename>contrib/pgstattuple</>'s <function>pgstatindex()</>
843 Remove dependency on <literal>psed</> in MSVC builds, since it's no
844 longer provided by core Perl (Michael Paquier, Andrew Dunstan)
850 Update time zone data files to <application>tzdata</> release 2016c
851 for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia
852 (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus
853 historical corrections for Lithuania, Moldova, and Russia
854 (Kaliningrad, Samara, Volgograd).
863 <sect1 id="release-9-3-11">
864 <title>Release 9.3.11</title>
867 <title>Release Date</title>
868 <simpara>2016-02-11</simpara>
872 This release contains a variety of fixes from 9.3.10.
873 For information about new features in the 9.3 major release, see
874 <xref linkend="release-9-3">.
878 <title>Migration to Version 9.3.11</title>
881 A dump/restore is not required for those running 9.3.X.
885 However, if you are upgrading from a version earlier than 9.3.9,
886 see <xref linkend="release-9-3-9">.
892 <title>Changes</title>
898 Fix infinite loops and buffer-overrun problems in regular expressions
903 Very large character ranges in bracket expressions could cause
904 infinite loops in some cases, and memory overwrites in other cases.
911 Perform an immediate shutdown if the <filename>postmaster.pid</> file
912 is removed (Tom Lane)
916 The postmaster now checks every minute or so
917 that <filename>postmaster.pid</> is still there and still contains its
918 own PID. If not, it performs an immediate shutdown, as though it had
919 received <systemitem>SIGQUIT</>. The main motivation for this change
920 is to ensure that failed buildfarm runs will get cleaned up without
921 manual intervention; but it also serves to limit the bad effects if a
922 DBA forcibly removes <filename>postmaster.pid</> and then starts a new
929 In <literal>SERIALIZABLE</> transaction isolation mode, serialization
930 anomalies could be missed due to race conditions during insertions
931 (Kevin Grittner, Thomas Munro)
937 Fix failure to emit appropriate WAL records when doing <literal>ALTER
938 TABLE ... SET TABLESPACE</> for unlogged relations (Michael Paquier,
943 Even though the relation's data is unlogged, the move must be logged or
944 the relation will be inaccessible after a standby is promoted to master.
950 Fix possible misinitialization of unlogged relations at the end of
951 crash recovery (Andres Freund, Michael Paquier)
957 Ensure walsender slots are fully re-initialized when being re-used
964 Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check
965 constraints properly (Tom Lane)
971 Fix <command>REASSIGN OWNED</> to change ownership of composite types
972 properly (Álvaro Herrera)
978 Fix <command>REASSIGN OWNED</> and <command>ALTER OWNER</> to correctly
979 update granted-permissions lists when changing owners of data types,
980 foreign data wrappers, or foreign servers (Bruce Momjian,
981 Álvaro Herrera)
987 Fix <command>REASSIGN OWNED</> to ignore foreign user mappings,
988 rather than fail (Álvaro Herrera)
994 Fix possible crash after doing query rewrite for an updatable view
1001 Fix planner's handling of <literal>LATERAL</> references (Tom
1006 This fixes some corner cases that led to <quote>failed to build any
1007 N-way joins</> or <quote>could not devise a query plan</> planner
1014 Add more defenses against bad planner cost estimates for GIN index
1015 scans when the index's internal statistics are very out-of-date
1022 Make planner cope with hypothetical GIN indexes suggested by an index
1023 advisor plug-in (Julien Rouhaud)
1029 Speed up generation of unique table aliases in <command>EXPLAIN</> and
1030 rule dumping, and ensure that generated aliases do not
1031 exceed <literal>NAMEDATALEN</> (Tom Lane)
1037 Fix dumping of whole-row Vars in <literal>ROW()</>
1038 and <literal>VALUES()</> lists (Tom Lane)
1044 Fix possible internal overflow in <type>numeric</> division
1051 Fix enforcement of restrictions inside parentheses within regular
1052 expression lookahead constraints (Tom Lane)
1056 Lookahead constraints aren't allowed to contain backrefs, and
1057 parentheses within them are always considered non-capturing, according
1058 to the manual. However, the code failed to handle these cases properly
1059 inside a parenthesized subexpression, and would give unexpected
1066 Conversion of regular expressions to indexscan bounds could produce
1067 incorrect bounds from regexps containing lookahead constraints
1074 Fix regular-expression compiler to handle loops of constraint arcs
1079 The code added for CVE-2007-4772 was both incomplete, in that it didn't
1080 handle loops involving more than one state, and incorrect, in that it
1081 could cause assertion failures (though there seem to be no bad
1082 consequences of that in a non-assert build). Multi-state loops would
1083 cause the compiler to run until the query was canceled or it reached
1084 the too-many-states error condition.
1090 Improve memory-usage accounting in regular-expression compiler
1095 This causes the code to emit <quote>regular expression is too
1096 complex</> errors in some cases that previously used unreasonable
1097 amounts of time and memory.
1103 Improve performance of regular-expression compiler (Tom Lane)
1109 Make <literal>%h</> and <literal>%r</> escapes
1110 in <varname>log_line_prefix</> work for messages emitted due
1111 to <varname>log_connections</> (Tom Lane)
1115 Previously, <literal>%h</>/<literal>%r</> started to work just after a
1116 new session had emitted the <quote>connection received</> log message;
1117 now they work for that message too.
1123 On Windows, ensure the shared-memory mapping handle gets closed in
1124 child processes that don't need it (Tom Lane, Amit Kapila)
1128 This oversight resulted in failure to recover from crashes
1129 whenever <varname>logging_collector</> is turned on.
1135 Fix possible failure to detect socket EOF in non-blocking mode on
1140 It's not entirely clear whether this problem can happen in pre-9.5
1141 branches, but if it did, the symptom would be that a walsender process
1142 would wait indefinitely rather than noticing a loss of connection.
1148 Avoid leaking a token handle during SSPI authentication
1155 In <application>psql</>, ensure that <application>libreadline</>'s idea
1156 of the screen size is updated when the terminal window size changes
1161 Previously, <application>libreadline</> did not notice if the window
1162 was resized during query output, leading to strange behavior during
1163 later input of multiline queries.
1169 Fix <application>psql</>'s <literal>\det</> command to interpret its
1170 pattern argument the same way as other <literal>\d</> commands with
1171 potentially schema-qualified patterns do (Reece Hart)
1177 Avoid possible crash in <application>psql</>'s <literal>\c</> command
1178 when previous connection was via Unix socket and command specifies a
1179 new hostname and same username (Tom Lane)
1185 In <literal>pg_ctl start -w</>, test child process status directly
1186 rather than relying on heuristics (Tom Lane, Michael Paquier)
1190 Previously, <application>pg_ctl</> relied on an assumption that the new
1191 postmaster would always create <filename>postmaster.pid</> within five
1192 seconds. But that can fail on heavily-loaded systems,
1193 causing <application>pg_ctl</> to report incorrectly that the
1194 postmaster failed to start.
1198 Except on Windows, this change also means that a <literal>pg_ctl start
1199 -w</> done immediately after another such command will now reliably
1200 fail, whereas previously it would report success if done within two
1201 seconds of the first command.
1207 In <literal>pg_ctl start -w</>, don't attempt to use a wildcard listen
1208 address to connect to the postmaster (Kondo Yuta)
1212 On Windows, <application>pg_ctl</> would fail to detect postmaster
1213 startup if <varname>listen_addresses</> is set to <literal>0.0.0.0</>
1214 or <literal>::</>, because it would try to use that value verbatim as
1215 the address to connect to, which doesn't work. Instead assume
1216 that <literal>127.0.0.1</> or <literal>::1</>, respectively, is the
1223 In <application>pg_ctl</> on Windows, check service status to decide
1224 where to send output, rather than checking if standard output is a
1225 terminal (Michael Paquier)
1231 In <application>pg_dump</> and <application>pg_basebackup</>, adopt
1232 the GNU convention for handling tar-archive members exceeding 8GB
1237 The POSIX standard for <literal>tar</> file format does not allow
1238 archive member files to exceed 8GB, but most modern implementations
1239 of <application>tar</> support an extension that fixes that. Adopt
1240 this extension so that <application>pg_dump</> with <option>-Ft</> no
1241 longer fails on tables with more than 8GB of data, and so
1242 that <application>pg_basebackup</> can handle files larger than 8GB.
1243 In addition, fix some portability issues that could cause failures for
1244 members between 4GB and 8GB on some platforms. Potentially these
1245 problems could cause unrecoverable data loss due to unreadable backup
1252 Fix assorted corner-case bugs in <application>pg_dump</>'s processing
1253 of extension member objects (Tom Lane)
1259 Make <application>pg_dump</> mark a view's triggers as needing to be
1260 processed after its rule, to prevent possible failure during
1261 parallel <application>pg_restore</> (Tom Lane)
1267 Ensure that relation option values are properly quoted
1268 in <application>pg_dump</> (Kouhei Sutou, Tom Lane)
1272 A reloption value that isn't a simple identifier or number could lead
1273 to dump/reload failures due to syntax errors in CREATE statements
1274 issued by <application>pg_dump</>. This is not an issue with any
1275 reloption currently supported by core <productname>PostgreSQL</>, but
1276 extensions could allow reloptions that cause the problem.
1282 Avoid repeated password prompts during parallel <application>pg_dump</>
1289 Fix <application>pg_upgrade</>'s file-copying code to handle errors
1290 properly on Windows (Bruce Momjian)
1296 Install guards in <application>pgbench</> against corner-case overflow
1297 conditions during evaluation of script-specified division or modulo
1298 operators (Fabien Coelho, Michael Paquier)
1304 Fix failure to localize messages emitted
1305 by <application>pg_receivexlog</> and <application>pg_recvlogical</>
1312 Avoid dump/reload problems when using both <application>plpython2</>
1313 and <application>plpython3</> (Tom Lane)
1317 In principle, both versions of <application>PL/Python</> can be used in
1318 the same database, though not in the same session (because the two
1319 versions of <application>libpython</> cannot safely be used concurrently).
1320 However, <application>pg_restore</> and <application>pg_upgrade</> both
1321 do things that can fall foul of the same-session restriction. Work
1322 around that by changing the timing of the check.
1328 Fix <application>PL/Python</> regression tests to pass with Python 3.5
1335 Fix premature clearing of <application>libpq</>'s input buffer when
1336 socket EOF is seen (Tom Lane)
1340 This mistake caused <application>libpq</> to sometimes not report the
1341 backend's final error message before reporting <quote>server closed the
1342 connection unexpectedly</>.
1348 Prevent certain <application>PL/Java</> parameters from being set by
1349 non-superusers (Noah Misch)
1353 This change mitigates a <application>PL/Java</> security bug
1354 (CVE-2016-0766), which was fixed in <application>PL/Java</> by marking
1355 these parameters as superuser-only. To fix the security hazard for
1356 sites that update <productname>PostgreSQL</> more frequently
1357 than <application>PL/Java</>, make the core code aware of them also.
1363 Improve <application>libpq</>'s handling of out-of-memory situations
1364 (Michael Paquier, Amit Kapila, Heikki Linnakangas)
1370 Fix order of arguments
1371 in <application>ecpg</>-generated <literal>typedef</> statements
1378 Use <literal>%g</> not <literal>%f</> format
1379 in <application>ecpg</>'s <function>PGTYPESnumeric_from_double()</>
1386 Fix <application>ecpg</>-supplied header files to not contain comments
1387 continued from a preprocessor directive line onto the next line
1392 Such a comment is rejected by <application>ecpg</>. It's not yet clear
1393 whether <application>ecpg</> itself should be changed.
1399 Fix <function>hstore_to_json_loose()</>'s test for whether
1400 an <type>hstore</> value can be converted to a JSON number (Tom Lane)
1404 Previously this function could be fooled by non-alphanumeric trailing
1405 characters, leading to emitting syntactically-invalid JSON.
1411 Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</>
1412 function can be interrupted by query cancel (Andreas Karlsson)
1418 Accept <application>flex</> versions later than 2.5.x
1419 (Tom Lane, Michael Paquier)
1423 Now that flex 2.6.0 has been released, the version checks in our build
1424 scripts needed to be adjusted.
1430 Improve reproducibility of build output by ensuring filenames are given
1431 to the linker in a fixed order (Christoph Berg)
1435 This avoids possible bitwise differences in the produced executable
1436 files from one build to the next.
1442 Install our <filename>missing</> script where PGXS builds can find it
1447 This allows sane behavior in a PGXS build done on a machine where build
1448 tools such as <application>bison</> are missing.
1454 Ensure that <filename>dynloader.h</> is included in the installed
1455 header files in MSVC builds (Bruce Momjian, Michael Paquier)
1461 Add variant regression test expected-output file to match behavior of
1462 current <application>libxml2</> (Tom Lane)
1466 The fix for <application>libxml2</>'s CVE-2015-7499 causes it not to
1467 output error context reports in some cases where it used to do so.
1468 This seems to be a bug, but we'll probably have to live with it for
1469 some time, so work around it.
1475 Update time zone data files to <application>tzdata</> release 2016a for
1476 DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
1477 Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
1486 <sect1 id="release-9-3-10">
1487 <title>Release 9.3.10</title>
1490 <title>Release Date</title>
1491 <simpara>2015-10-08</simpara>
1495 This release contains a variety of fixes from 9.3.9.
1496 For information about new features in the 9.3 major release, see
1497 <xref linkend="release-9-3">.
1501 <title>Migration to Version 9.3.10</title>
1504 A dump/restore is not required for those running 9.3.X.
1508 However, if you are upgrading from a version earlier than 9.3.9,
1509 see <xref linkend="release-9-3-9">.
1515 <title>Changes</title>
1521 Guard against stack overflows in <type>json</> parsing
1526 If an application constructs PostgreSQL <type>json</>
1527 or <type>jsonb</> values from arbitrary user input, the application's
1528 users can reliably crash the PostgreSQL server, causing momentary
1529 denial of service. (CVE-2015-5289)
1535 Fix <filename>contrib/pgcrypto</> to detect and report
1536 too-short <function>crypt()</> salts (Josh Kupershmidt)
1540 Certain invalid salt arguments crashed the server or disclosed a few
1541 bytes of server memory. We have not ruled out the viability of
1542 attacks that arrange for presence of confidential information in the
1543 disclosed bytes, but they seem unlikely. (CVE-2015-5288)
1549 Fix subtransaction cleanup after a portal (cursor) belonging to an
1550 outer subtransaction fails (Tom Lane, Michael Paquier)
1554 A function executed in an outer-subtransaction cursor could cause an
1555 assertion failure or crash by referencing a relation created within an
1556 inner subtransaction.
1562 Ensure all relations referred to by an updatable view are properly
1563 locked during an update statement (Dean Rasheed)
1569 Fix insertion of relations into the relation cache <quote>init file</>
1574 An oversight in a patch in the most recent minor releases
1575 caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted
1576 from the init file. Subsequent sessions detected this, then deemed the
1577 init file to be broken and silently ignored it, resulting in a
1578 significant degradation in session startup time. In addition to fixing
1579 the bug, install some guards so that any similar future mistake will be
1586 Avoid O(N^2) behavior when inserting many tuples into a SPI query
1587 result (Neil Conway)
1593 Improve <command>LISTEN</> startup time when there are many unread
1594 notifications (Matt Newell)
1600 Fix performance problem when a session alters large numbers of foreign
1601 key constraints (Jan Wieck, Tom Lane)
1605 This was seen primarily when restoring <application>pg_dump</> output
1606 for databases with many thousands of tables.
1612 Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
1616 While use of SSL renegotiation is a good idea in theory, we have seen
1617 too many bugs in practice, both in the underlying OpenSSL library and
1618 in our usage of it. Renegotiation will be removed entirely in 9.5 and
1619 later. In the older branches, just change the default value
1620 of <varname>ssl_renegotiation_limit</> to zero (disabled).
1626 Lower the minimum values of the <literal>*_freeze_max_age</> parameters
1631 This is mainly to make tests of related behavior less time-consuming,
1632 but it may also be of value for installations with limited disk space.
1638 Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
1639 server crashes (Josh Berkus)
1645 Avoid logging complaints when a parameter that can only be set at
1646 server start appears multiple times in <filename>postgresql.conf</>,
1647 and fix counting of line numbers after an <literal>include_dir</>
1648 directive (Tom Lane)
1654 Fix rare internal overflow in multiplication of <type>numeric</> values
1661 Guard against hard-to-reach stack overflows involving record types,
1662 range types, <type>json</>, <type>jsonb</>, <type>tsquery</>,
1663 <type>ltxtquery</> and <type>query_int</> (Noah Misch)
1669 Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input
1674 These tokens aren't meant to be used in datetime values, but previously
1675 they resulted in opaque internal error messages rather
1676 than <quote>invalid input syntax</>.
1682 Add more query-cancel checks to regular expression matching (Tom Lane)
1688 Add recursion depth protections to regular expression, <literal>SIMILAR
1689 TO</>, and <literal>LIKE</> matching (Tom Lane)
1693 Suitable search patterns and a low stack depth limit could lead to
1694 stack-overrun crashes.
1700 Fix potential infinite loop in regular expression execution (Tom Lane)
1704 A search pattern that can apparently match a zero-length string, but
1705 actually doesn't match because of a back reference, could lead to an
1712 In regular expression execution, correctly record match data for
1713 capturing parentheses within a quantifier even when the match is
1714 zero-length (Tom Lane)
1720 Fix low-memory failures in regular expression compilation
1721 (Andreas Seltenreich)
1727 Fix low-probability memory leak during regular expression execution
1734 Fix rare low-memory failure in lock cleanup during transaction abort
1741 Fix <quote>unexpected out-of-memory situation during sort</> errors
1742 when using tuplestores with small <varname>work_mem</> settings (Tom
1749 Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
1755 Fix <quote>invalid memory alloc request size</> failure in hash joins
1756 with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane)
1762 Fix assorted planner bugs (Tom Lane)
1766 These mistakes could lead to incorrect query plans that would give wrong
1767 answers, or to assertion failures in assert-enabled builds, or to odd
1768 planner errors such as <quote>could not devise a query plan for the
1769 given query</>, <quote>could not find pathkey item to
1770 sort</>, <quote>plan should not reference subplan's variable</>,
1771 or <quote>failed to assign all NestLoopParams to plan nodes</>.
1772 Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
1773 testing that exposed these problems.
1779 Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
1780 on large inheritance sets (Tom Lane, Dean Rasheed)
1786 Ensure standby promotion trigger files are removed at postmaster
1787 startup (Michael Paquier, Fujii Masao)
1791 This prevents unwanted promotion from occurring if these files appear
1792 in a database backup that is used to initialize a new standby server.
1798 During postmaster shutdown, ensure that per-socket lock files are
1799 removed and listen sockets are closed before we remove
1800 the <filename>postmaster.pid</> file (Tom Lane)
1804 This avoids race-condition failures if an external script attempts to
1805 start a new postmaster as soon as <literal>pg_ctl stop</> returns.
1811 Fix postmaster's handling of a startup-process crash during crash
1816 If, during a crash recovery cycle, the startup process crashes without
1817 having restored database consistency, we'd try to launch a new startup
1818 process, which typically would just crash again, leading to an infinite
1825 Make emergency autovacuuming for multixact wraparound more robust
1832 Do not print a <literal>WARNING</> when an autovacuum worker is already
1833 gone when we attempt to signal it, and reduce log verbosity for such
1840 Prevent autovacuum launcher from sleeping unduly long if the server
1841 clock is moved backwards a large amount (Álvaro Herrera)
1847 Ensure that cleanup of a GIN index's pending-insertions list is
1848 interruptable by cancel requests (Jeff Janes)
1854 Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
1858 Such a page might be left behind after a crash.
1864 Fix handling of all-zeroes pages in SP-GiST indexes (Heikki
1869 <command>VACUUM</> attempted to recycle such pages, but did so in a
1870 way that wasn't crash-safe.
1876 Fix off-by-one error that led to otherwise-harmless warnings
1877 about <quote>apparent wraparound</> in subtrans/multixact truncation
1884 Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement
1885 types in <application>PL/pgSQL</>'s error context messages
1886 (Pavel Stehule, Tom Lane)
1892 Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
1893 message texts correctly (Alex Hunsaker)
1899 Fix <application>PL/Python</> crash when returning the string
1900 representation of a <type>record</> result (Tom Lane)
1906 Fix some places in <application>PL/Tcl</> that neglected to check for
1907 failure of <function>malloc()</> calls (Michael Paquier, Álvaro
1914 In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin
1915 with 979 (Fabien Coelho)
1919 EANs beginning with 979 (but not 9790) are considered ISBNs, but they
1920 must be printed in the new 13-digit format, not the 10-digit format.
1926 Improve <filename>contrib/postgres_fdw</>'s handling of
1927 collation-related decisions (Tom Lane)
1931 The main user-visible effect is expected to be that comparisons
1932 involving <type>varchar</> columns will be sent to the remote server
1933 for execution in more cases than before.
1939 Improve <application>libpq</>'s handling of out-of-memory conditions
1940 (Michael Paquier, Heikki Linnakangas)
1946 Fix memory leaks and missing out-of-memory checks
1947 in <application>ecpg</> (Michael Paquier)
1953 Fix <application>psql</>'s code for locale-aware formatting of numeric
1958 The formatting code invoked by <literal>\pset numericlocale on</>
1959 did the wrong thing for some uncommon cases such as numbers with an
1960 exponent but no decimal point. It could also mangle already-localized
1961 output from the <type>money</> data type.
1967 Prevent crash in <application>psql</>'s <command>\c</> command when
1968 there is no current connection (Noah Misch)
1974 Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
1975 check constraints correctly (Tom Lane)
1981 Fix selection of default <application>zlib</> compression level
1982 in <application>pg_dump</>'s directory output format (Andrew Dunstan)
1988 Ensure that temporary files created during a <application>pg_dump</>
1989 run with <acronym>tar</>-format output are not world-readable (Michael
1996 Fix <application>pg_dump</> and <application>pg_upgrade</> to support
1997 cases where the <literal>postgres</> or <literal>template1</> database
1998 is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
2004 Fix <application>pg_dump</> to handle object privileges sanely when
2005 dumping from a server too old to have a particular privilege type
2010 When dumping data types from pre-9.2 servers, and when dumping
2011 functions or procedural languages from pre-7.3
2012 servers, <application>pg_dump</> would
2013 produce <command>GRANT</>/<command>REVOKE</> commands that revoked the
2014 owner's grantable privileges and instead granted all privileges
2015 to <literal>PUBLIC</>. Since the privileges involved are
2016 just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security
2017 problem, but it's certainly a surprising representation of the older
2018 systems' behavior. Fix it to leave the default privilege state alone
2025 Fix <application>pg_dump</> to dump shell types (Tom Lane)
2029 Shell types (that is, not-yet-fully-defined types) aren't useful for
2030 much, but nonetheless <application>pg_dump</> should dump them.
2036 Fix assorted minor memory leaks in <application>pg_dump</> and other
2037 client-side programs (Michael Paquier)
2043 Fix spinlock assembly code for PPC hardware to be compatible
2044 with <acronym>AIX</>'s native assembler (Tom Lane)
2048 Building with <application>gcc</> didn't work if <application>gcc</>
2049 had been configured to use the native assembler, which is becoming more
2056 On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
2057 rather than just assuming it's safe to use (Noah Misch)
2063 On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow
2064 symbols to be resolved at runtime (Noah Misch)
2068 Perl relies on this ability in 5.8.0 and later.
2074 Avoid use of inline functions when compiling with
2075 32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
2081 Use <filename>librt</> for <function>sched_yield()</> when necessary,
2082 which it is on some Solaris versions (Oskari Saarenmaa)
2088 Fix Windows <filename>install.bat</> script to handle target directory
2089 names that contain spaces (Heikki Linnakangas)
2095 Make the numeric form of the <productname>PostgreSQL</> version number
2096 (e.g., <literal>90405</>) readily available to extension Makefiles,
2097 as a variable named <varname>VERSION_NUM</> (Michael Paquier)
2103 Update time zone data files to <application>tzdata</> release 2015g for
2104 DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
2105 Island, North Korea, Turkey, and Uruguay. There is a new zone name
2106 <literal>America/Fort_Nelson</> for the Canadian Northern Rockies.
2115 <sect1 id="release-9-3-9">
2116 <title>Release 9.3.9</title>
2119 <title>Release Date</title>
2120 <simpara>2015-06-12</simpara>
2124 This release contains a small number of fixes from 9.3.8.
2125 For information about new features in the 9.3 major release, see
2126 <xref linkend="release-9-3">.
2130 <title>Migration to Version 9.3.9</title>
2133 A dump/restore is not required for those running 9.3.X.
2137 However, if you are upgrading an installation that was previously
2138 upgraded using a <application>pg_upgrade</> version between 9.3.0 and
2139 9.3.4 inclusive, see the first changelog entry below.
2143 Also, if you are upgrading from a version earlier than 9.3.7,
2144 see <xref linkend="release-9-3-7">.
2150 <title>Changes</title>
2156 Fix possible failure to recover from an inconsistent database state
2161 Recent <productname>PostgreSQL</> releases introduced mechanisms to
2162 protect against multixact wraparound, but some of that code did not
2163 account for the possibility that it would need to run during crash
2164 recovery, when the database may not be in a consistent state. This
2165 could result in failure to restart after a crash, or failure to start
2166 up a secondary server. The lingering effects of a previously-fixed
2167 bug in <application>pg_upgrade</> could also cause such a failure, in
2168 installations that had used <application>pg_upgrade</> versions
2169 between 9.3.0 and 9.3.4.
2173 The <application>pg_upgrade</> bug in question was that it would
2174 set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even
2175 if the true value should be higher. With the fixes introduced in
2176 this release, such a situation will result in immediate emergency
2177 autovacuuming until a correct <literal>oldestMultiXid</> value can be
2178 determined. If that would pose a hardship, users can avoid it by
2179 doing manual vacuuming <emphasis>before</> upgrading to this release.
2185 Check whether <application>pg_controldata</> reports <quote>Latest
2186 checkpoint's oldestMultiXid</> to be 1. If not, there's nothing
2192 Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a
2193 file named <filename>0000</>. If there is, there's nothing to do.
2198 Otherwise, for each table that has
2199 <structname>pg_class</>.<structfield>relminmxid</> equal to 1,
2200 <command>VACUUM</> that table with
2201 both <xref linkend="guc-vacuum-multixact-freeze-min-age">
2202 and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to
2203 zero. (You can use the vacuum cost delay parameters described
2204 in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce
2205 the performance consequences for concurrent sessions.) You must
2206 use <productname>PostgreSQL</> 9.3.5 or later to perform this step.
2215 Fix rare failure to invalidate relation cache init file (Tom Lane)
2219 With just the wrong timing of concurrent activity, a <command>VACUUM
2220 FULL</> on a system catalog might fail to update the <quote>init file</>
2221 that's used to avoid cache-loading work for new sessions. This would
2222 result in later sessions being unable to access that catalog at all.
2223 This is a very ancient bug, but it's so hard to trigger that no
2224 reproducible case had been seen until recently.
2230 Avoid deadlock between incoming sessions and <literal>CREATE/DROP
2231 DATABASE</> (Tom Lane)
2235 A new session starting in a database that is the target of
2236 a <command>DROP DATABASE</> command, or is the template for
2237 a <command>CREATE DATABASE</> command, could cause the command to wait
2238 for five seconds and then fail, even if the new session would have
2245 Improve planner's cost estimates for semi-joins and anti-joins with
2246 inner indexscans (Tom Lane, Tomas Vondra)
2250 This type of plan is quite cheap when all the join clauses are used
2251 as index scan conditions, even if the inner scan would nominally
2252 fetch many rows, because the executor will stop after obtaining one
2253 row. The planner only partially accounted for that effect, and would
2254 therefore overestimate the cost, leading it to possibly choose some
2255 other much less efficient plan type.
2264 <sect1 id="release-9-3-8">
2265 <title>Release 9.3.8</title>
2268 <title>Release Date</title>
2269 <simpara>2015-06-04</simpara>
2273 This release contains a small number of fixes from 9.3.7.
2274 For information about new features in the 9.3 major release, see
2275 <xref linkend="release-9-3">.
2279 <title>Migration to Version 9.3.8</title>
2282 A dump/restore is not required for those running 9.3.X.
2286 However, if you are upgrading from a version earlier than 9.3.7,
2287 see <xref linkend="release-9-3-7">.
2293 <title>Changes</title>
2299 Avoid failures while <function>fsync</>'ing data directory during
2300 crash restart (Abhijit Menon-Sen, Tom Lane)
2304 In the previous minor releases we added a patch to <function>fsync</>
2305 everything in the data directory after a crash. Unfortunately its
2306 response to any error condition was to fail, thereby preventing the
2307 server from starting up, even when the problem was quite harmless.
2308 An example is that an unwritable file in the data directory would
2309 prevent restart on some platforms; but it is common to make SSL
2310 certificate files unwritable by the server. Revise this behavior so
2311 that permissions failures are ignored altogether, and other types of
2312 failures are logged but do not prevent continuing.
2316 Also apply the same rules in <literal>initdb --sync-only</>.
2317 This case is less critical but it should act similarly.
2323 Fix <function>pg_get_functiondef()</> to show
2324 functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
2330 Remove <application>configure</>'s check prohibiting linking to a
2331 threaded <application>libpython</>
2332 on <systemitem class="osname">OpenBSD</> (Tom Lane)
2336 The failure this restriction was meant to prevent seems to not be a
2337 problem anymore on current <systemitem class="osname">OpenBSD</>
2343 Author: Tom Lane <tgl@sss.pgh.pa.us>
2344 Branch: REL9_3_STABLE [c6b7b9a9c] 2015-05-21 20:41:55 -0400
2345 Branch: REL9_2_STABLE [b78fbfe65] 2015-05-21 20:41:55 -0400
2346 Branch: REL9_1_STABLE [2c2c5f0e0] 2015-05-21 20:41:55 -0400
2347 Branch: REL9_0_STABLE [4dddf8552] 2015-05-21 20:41:55 -0400
2352 Allow <application>libpq</> to use TLS protocol versions beyond v1
2357 For a long time, <application>libpq</> was coded so that the only SSL
2358 protocol it would allow was TLS v1. Now that newer TLS versions are
2359 becoming popular, allow it to negotiate the highest commonly-supported
2360 TLS version with the server. (<productname>PostgreSQL</> servers were
2361 already capable of such negotiation, so no change is needed on the
2362 server side.) This is a back-patch of a change already released in
2372 <sect1 id="release-9-3-7">
2373 <title>Release 9.3.7</title>
2376 <title>Release Date</title>
2377 <simpara>2015-05-22</simpara>
2381 This release contains a variety of fixes from 9.3.6.
2382 For information about new features in the 9.3 major release, see
2383 <xref linkend="release-9-3">.
2387 <title>Migration to Version 9.3.7</title>
2390 A dump/restore is not required for those running 9.3.X.
2394 However, if you use <filename>contrib/citext</>'s
2395 <function>regexp_matches()</> functions, see the changelog entry below
2400 Also, if you are upgrading from a version earlier than 9.3.6,
2401 see <xref linkend="release-9-3-6">.
2407 <title>Changes</title>
2413 Avoid possible crash when client disconnects just before the
2414 authentication timeout expires (Benkocs Norbert Attila)
2418 If the timeout interrupt fired partway through the session shutdown
2419 sequence, SSL-related state would be freed twice, typically causing a
2420 crash and hence denial of service to other sessions. Experimentation
2421 shows that an unauthenticated remote attacker could trigger the bug
2422 somewhat consistently, hence treat as security issue.
2429 Improve detection of system-call failures (Noah Misch)
2433 Our replacement implementation of <function>snprintf()</> failed to
2434 check for errors reported by the underlying system library calls;
2435 the main case that might be missed is out-of-memory situations.
2436 In the worst case this might lead to information exposure, due to our
2437 code assuming that a buffer had been overwritten when it hadn't been.
2438 Also, there were a few places in which security-relevant calls of other
2439 system library functions did not check for failure.
2443 It remains possible that some calls of the <function>*printf()</>
2444 family of functions are vulnerable to information disclosure if an
2445 out-of-memory error occurs at just the wrong time. We judge the risk
2446 to not be large, but will continue analysis in this area.
2453 In <filename>contrib/pgcrypto</>, uniformly report decryption failures
2454 as <quote>Wrong key or corrupt data</> (Noah Misch)
2458 Previously, some cases of decryption with an incorrect key could report
2459 other error message texts. It has been shown that such variance in
2460 error reports can aid attackers in recovering keys from other systems.
2461 While it's unknown whether <filename>pgcrypto</>'s specific behaviors
2462 are likewise exploitable, it seems better to avoid the risk by using a
2463 one-size-fits-all message.
2470 Protect against wraparound of multixact member IDs
2471 (Álvaro Herrera, Robert Haas, Thomas Munro)
2475 Under certain usage patterns, the existing defenses against this might
2476 be insufficient, allowing <filename>pg_multixact/members</> files to be
2477 removed too early, resulting in data loss.
2478 The fix for this includes modifying the server to fail transactions
2479 that would result in overwriting old multixact member ID data, and
2480 improving autovacuum to ensure it will act proactively to prevent
2481 multixact member ID wraparound, as it does for transaction ID
2488 Fix incorrect declaration of <filename>contrib/citext</>'s
2489 <function>regexp_matches()</> functions (Tom Lane)
2493 These functions should return <type>setof text[]</>, like the core
2494 functions they are wrappers for; but they were incorrectly declared as
2495 returning just <type>text[]</>. This mistake had two results: first,
2496 if there was no match you got a scalar null result, whereas what you
2497 should get is an empty set (zero rows). Second, the <literal>g</> flag
2498 was effectively ignored, since you would get only one result array even
2499 if there were multiple matches.
2503 While the latter behavior is clearly a bug, there might be applications
2504 depending on the former behavior; therefore the function declarations
2505 will not be changed by default until <productname>PostgreSQL</> 9.5.
2506 In pre-9.5 branches, the old behavior exists in version 1.0 of
2507 the <literal>citext</> extension, while we have provided corrected
2508 declarations in version 1.1 (which is <emphasis>not</> installed by
2509 default). To adopt the fix in pre-9.5 branches, execute
2510 <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
2511 which <literal>citext</> is installed. (You can also <quote>update</>
2512 back to 1.0 if you need to undo that.) Be aware that either update
2513 direction will require dropping and recreating any views or rules that
2514 use <filename>citext</>'s <function>regexp_matches()</> functions.
2520 Fix incorrect checking of deferred exclusion constraints after a HOT
2525 If a new row that potentially violates a deferred exclusion constraint
2526 is HOT-updated (that is, no indexed columns change and the row can be
2527 stored back onto the same table page) later in the same transaction,
2528 the exclusion constraint would be reported as violated when the check
2529 finally occurred, even if the row(s) the new row originally conflicted
2530 with had been deleted.
2536 Fix planning of star-schema-style queries (Tom Lane)
2540 Sometimes, efficient scanning of a large table requires that index
2541 parameters be provided from more than one other table (commonly,
2542 dimension tables whose keys are needed to index a large fact table).
2543 The planner should be able to find such plans, but an overly
2544 restrictive search heuristic prevented it.
2550 Prevent improper reordering of antijoins (NOT EXISTS joins) versus
2551 other outer joins (Tom Lane)
2555 This oversight in the planner has been observed to cause <quote>could
2556 not find RelOptInfo for given relids</> errors, but it seems possible
2557 that sometimes an incorrect query plan might get past that consistency
2558 check and result in silently-wrong query output.
2564 Fix incorrect matching of subexpressions in outer-join plan nodes
2569 Previously, if textually identical non-strict subexpressions were used
2570 both above and below an outer join, the planner might try to re-use
2571 the value computed below the join, which would be incorrect because the
2572 executor would force the value to NULL in case of an unmatched outer row.
2578 Fix GEQO planner to cope with failure of its join order heuristic
2583 This oversight has been seen to lead to <quote>failed to join all
2584 relations together</> errors in queries involving <literal>LATERAL</>,
2585 and that might happen in other cases as well.
2591 Fix possible deadlock at startup
2592 when <literal>max_prepared_transactions</> is too small
2593 (Heikki Linnakangas)
2599 Don't archive useless preallocated WAL files after a timeline switch
2600 (Heikki Linnakangas)
2606 Recursively <function>fsync()</> the data directory after a crash
2607 (Abhijit Menon-Sen, Robert Haas)
2611 This ensures consistency if another crash occurs shortly later. (The
2612 second crash would have to be a system-level crash, not just a database
2613 crash, for there to be a problem.)
2619 Fix autovacuum launcher's possible failure to shut down, if an error
2620 occurs after it receives SIGTERM (Álvaro Herrera)
2626 Cope with unexpected signals in <function>LockBufferForCleanup()</>
2631 This oversight could result in spurious errors about <quote>multiple
2632 backends attempting to wait for pincount 1</>.
2638 Fix crash when doing <literal>COPY IN</> to a table with check
2639 constraints that contain whole-row references (Tom Lane)
2643 The known failure case only crashes in 9.4 and up, but there is very
2644 similar code in 9.3 and 9.2, so back-patch those branches as well.
2650 Avoid waiting for WAL flush or synchronous replication during commit of
2651 a transaction that was read-only so far as the user is concerned
2656 Previously, a delay could occur at commit in transactions that had
2657 written WAL due to HOT page pruning, leading to undesirable effects
2658 such as sessions getting stuck at startup if all synchronous replicas
2659 are down. Sessions have also been observed to get stuck in catchup
2660 interrupt processing when using synchronous replication; this will fix
2661 that problem as well.
2667 Fix crash when manipulating hash indexes on temporary tables
2668 (Heikki Linnakangas)
2674 Fix possible failure during hash index bucket split, if other processes
2675 are modifying the index concurrently (Tom Lane)
2681 Check for interrupts while analyzing index expressions (Jeff Janes)
2685 <command>ANALYZE</> executes index expressions many times; if there are
2686 slow functions in such an expression, it's desirable to be able to
2687 cancel the <command>ANALYZE</> before that loop finishes.
2693 Ensure <structfield>tableoid</> of a foreign table is reported
2694 correctly when a <literal>READ COMMITTED</> recheck occurs after
2695 locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
2696 or <command>DELETE</> (Etsuro Fujita)
2702 Add the name of the target server to object description strings for
2703 foreign-server user mappings (Álvaro Herrera)
2709 Include the schema name in object identity strings for conversions
2710 (Álvaro Herrera)
2716 Recommend setting <literal>include_realm</> to 1 when using
2717 Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
2721 Without this, identically-named users from different realms cannot be
2722 distinguished. For the moment this is only a documentation change, but
2723 it will become the default setting in <productname>PostgreSQL</> 9.5.
2729 Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
2730 IPv4-in-IPv6 addresses (Tom Lane)
2734 This hack was added in 2003 in response to a report that some Linux
2735 kernels of the time would report IPv4 connections as having
2736 IPv4-in-IPv6 addresses. However, the logic was accidentally broken in
2737 9.0. The lack of any field complaints since then shows that it's not
2738 needed anymore. Now we have reports that the broken code causes
2739 crashes on some systems, so let's just remove it rather than fix it.
2740 (Had we chosen to fix it, that would make for a subtle and potentially
2741 security-sensitive change in the effective meaning of
2742 IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
2743 thing to do in minor releases.)
2749 Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
2750 replication command (Heikki Linnakangas)
2754 This avoids a possible startup failure
2755 in <application>pg_receivexlog</>.
2761 While shutting down service on Windows, periodically send status
2762 updates to the Service Control Manager to prevent it from killing the
2763 service too soon; and ensure that <application>pg_ctl</> will wait for
2764 shutdown (Krystian Bigaj)
2770 Reduce risk of network deadlock when using <application>libpq</>'s
2771 non-blocking mode (Heikki Linnakangas)
2775 When sending large volumes of data, it's important to drain the input
2776 buffer every so often, in case the server has sent enough response data
2777 to cause it to block on output. (A typical scenario is that the server
2778 is sending a stream of NOTICE messages during <literal>COPY FROM
2779 STDIN</>.) This worked properly in the normal blocking mode, but not
2780 so much in non-blocking mode. We've modified <application>libpq</>
2781 to opportunistically drain input when it can, but a full defense
2782 against this problem requires application cooperation: the application
2783 should watch for socket read-ready as well as write-ready conditions,
2784 and be sure to call <function>PQconsumeInput()</> upon read-ready.
2790 In <application>libpq</>, fix misparsing of empty values in URI
2791 connection strings (Thomas Fanghaenel)
2797 Fix array handling in <application>ecpg</> (Michael Meskes)
2803 Fix <application>psql</> to sanely handle URIs and conninfo strings as
2804 the first parameter to <command>\connect</>
2805 (David Fetter, Andrew Dunstan, Álvaro Herrera)
2809 This syntax has been accepted (but undocumented) for a long time, but
2810 previously some parameters might be taken from the old connection
2811 instead of the given string, which was agreed to be undesirable.
2817 Suppress incorrect complaints from <application>psql</> on some
2818 platforms that it failed to write <filename>~/.psql_history</> at exit
2823 This misbehavior was caused by a workaround for a bug in very old
2824 (pre-2006) versions of <application>libedit</>. We fixed it by
2825 removing the workaround, which will cause a similar failure to appear
2826 for anyone still using such versions of <application>libedit</>.
2827 Recommendation: upgrade that library, or use <application>libreadline</>.
2833 Fix <application>pg_dump</>'s rule for deciding which casts are
2834 system-provided casts that should not be dumped (Tom Lane)
2840 In <application>pg_dump</>, fix failure to honor <literal>-Z</>
2841 compression level option together with <literal>-Fd</>
2848 Make <application>pg_dump</> consider foreign key relationships
2849 between extension configuration tables while choosing dump order
2850 (Gilles Darold, Michael Paquier, Stephen Frost)
2854 This oversight could result in producing dumps that fail to reload
2855 because foreign key constraints are transiently violated.
2861 Avoid possible <application>pg_dump</> failure when concurrent sessions
2862 are creating and dropping temporary functions (Tom Lane)
2868 Fix dumping of views that are just <literal>VALUES(...)</> but have
2869 column aliases (Tom Lane)
2875 In <application>pg_upgrade</>, force timeline 1 in the new cluster
2880 This change prevents upgrade failures caused by bogus complaints about
2881 missing WAL history files.
2887 In <application>pg_upgrade</>, check for improperly non-connectable
2888 databases before proceeding
2895 In <application>pg_upgrade</>, quote directory paths
2896 properly in the generated <literal>delete_old_cluster</> script
2903 In <application>pg_upgrade</>, preserve database-level freezing info
2909 This oversight could cause missing-clog-file errors for tables within
2910 the <literal>postgres</> and <literal>template1</> databases.
2916 Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
2917 restricted privileges on Windows, so that they don't fail when run by
2918 an administrator (Muhammad Asif Naeem)
2924 Improve handling of <function>readdir()</> failures when scanning
2925 directories in <application>initdb</> and <application>pg_basebackup</>
2932 Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
2938 Fix compile failure on Sparc V8 machines (Rob Rowan)
2944 Silence some build warnings on OS X (Tom Lane)
2950 Update time zone data files to <application>tzdata</> release 2015d
2951 for DST law changes in Egypt, Mongolia, and Palestine, plus historical
2952 changes in Canada and Chile. Also adopt revised zone abbreviations for
2953 the America/Adak zone (HST/HDT not HAST/HADT).
2962 <sect1 id="release-9-3-6">
2963 <title>Release 9.3.6</title>
2966 <title>Release Date</title>
2967 <simpara>2015-02-05</simpara>
2971 This release contains a variety of fixes from 9.3.5.
2972 For information about new features in the 9.3 major release, see
2973 <xref linkend="release-9-3">.
2977 <title>Migration to Version 9.3.6</title>
2980 A dump/restore is not required for those running 9.3.X.
2984 However, if you are a Windows user and are using the <quote>Norwegian
2985 (Bokmål)</> locale, manual action is needed after the upgrade to
2986 replace any <quote>Norwegian (Bokmål)_Norway</> locale names stored
2987 in <productname>PostgreSQL</> system catalogs with the plain-ASCII
2988 alias <quote>Norwegian_Norway</>. For details see
2989 <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
2993 Also, if you are upgrading from a version earlier than 9.3.5,
2994 see <xref linkend="release-9-3-5">.
3000 <title>Changes</title>
3005 Author: Bruce Momjian <bruce@momjian.us>
3006 Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
3007 Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
3008 Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
3009 Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
3010 Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
3011 Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
3012 Author: Bruce Momjian <bruce@momjian.us>
3013 Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
3014 Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
3015 Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
3016 Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
3017 Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
3018 Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
3023 Fix buffer overruns in <function>to_char()</>
3028 When <function>to_char()</> processes a numeric formatting template
3029 calling for a large number of digits, <productname>PostgreSQL</>
3030 would read past the end of a buffer. When processing a crafted
3031 timestamp formatting template, <productname>PostgreSQL</> would write
3032 past the end of a buffer. Either case could crash the server.
3033 We have not ruled out the possibility of attacks that lead to
3034 privilege escalation, though they seem unlikely.
3040 Author: Bruce Momjian <bruce@momjian.us>
3041 Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
3042 Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
3043 Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
3044 Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
3045 Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
3046 Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
3051 Fix buffer overrun in replacement <function>*printf()</> functions
3056 <productname>PostgreSQL</> includes a replacement implementation
3057 of <function>printf</> and related functions. This code will overrun
3058 a stack buffer when formatting a floating point number (conversion
3059 specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
3060 <literal>g</> or <literal>G</>) with requested precision greater than
3061 about 500. This will crash the server, and we have not ruled out the
3062 possibility of attacks that lead to privilege escalation.
3063 A database user can trigger such a buffer overrun through
3064 the <function>to_char()</> SQL function. While that is the only
3065 affected core <productname>PostgreSQL</> functionality, extension
3066 modules that use printf-family functions may be at risk as well.
3070 This issue primarily affects <productname>PostgreSQL</> on Windows.
3071 <productname>PostgreSQL</> uses the system implementation of these
3072 functions where adequate, which it is on other modern platforms.
3078 Author: Noah Misch <noah@leadboat.com>
3079 Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
3080 Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
3081 Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
3082 Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
3083 Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
3084 Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
3085 Author: Noah Misch <noah@leadboat.com>
3086 Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
3087 Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
3088 Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
3089 Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
3090 Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
3091 Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
3096 Fix buffer overruns in <filename>contrib/pgcrypto</>
3097 (Marko Tiikkaja, Noah Misch)
3101 Errors in memory size tracking within the <filename>pgcrypto</>
3102 module permitted stack buffer overruns and improper dependence on the
3103 contents of uninitialized memory. The buffer overrun cases can
3104 crash the server, and we have not ruled out the possibility of
3105 attacks that lead to privilege escalation.
3111 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3112 Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
3113 Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
3114 Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
3115 Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
3116 Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
3117 Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
3122 Fix possible loss of frontend/backend protocol synchronization after
3124 (Heikki Linnakangas)
3128 If any error occurred while the server was in the middle of reading a
3129 protocol message from the client, it could lose synchronization and
3130 incorrectly try to interpret part of the message's data as a new
3131 protocol message. An attacker able to submit crafted binary data
3132 within a command parameter might succeed in injecting his own SQL
3133 commands this way. Statement timeout and query cancellation are the
3134 most likely sources of errors triggering this scenario. Particularly
3135 vulnerable are applications that use a timeout and also submit
3136 arbitrary user-crafted data as binary query parameters. Disabling
3137 statement timeout will reduce, but not eliminate, the risk of
3138 exploit. Our thanks to Emil Lenngren for reporting this issue.
3144 Author: Stephen Frost <sfrost@snowman.net>
3145 Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
3146 Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
3147 Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
3148 Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
3149 Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
3150 Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
3155 Fix information leak via constraint-violation error messages
3160 Some server error messages show the values of columns that violate
3161 a constraint, such as a unique constraint. If the user does not have
3162 <literal>SELECT</> privilege on all columns of the table, this could
3163 mean exposing values that the user should not be able to see. Adjust
3164 the code so that values are displayed only when they came from the SQL
3165 command or could be selected by the user.
3171 Author: Noah Misch <noah@leadboat.com>
3172 Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
3173 Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
3174 Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
3175 Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
3176 Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
3177 Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
3182 Lock down regression testing's temporary installations on Windows
3187 Use SSPI authentication to allow connections only from the OS user
3188 who launched the test suite. This closes on Windows the same
3189 vulnerability previously closed on other platforms, namely that other
3190 users might be able to connect to the test postmaster.
3196 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3197 Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
3198 Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
3199 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3200 Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
3201 Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
3202 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3203 Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
3204 Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
3205 Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
3206 Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
3211 Cope with the Windows locale named <quote>Norwegian (Bokmål)</>
3212 (Heikki Linnakangas)
3216 Non-ASCII locale names are problematic since it's not clear what
3217 encoding they should be represented in. Map the troublesome locale
3218 name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
3223 Author: Tom Lane <tgl@sss.pgh.pa.us>
3224 Branch: REL9_3_STABLE [f88300168] 2014-11-04 13:24:14 -0500
3225 Branch: REL9_2_STABLE [db72ad02e] 2014-11-04 13:24:17 -0500
3226 Branch: REL9_1_STABLE [7c6f55e9e] 2014-11-04 13:24:22 -0500
3227 Branch: REL9_0_STABLE [45a607d5c] 2014-11-04 13:24:26 -0500
3232 Avoid possible data corruption if <command>ALTER DATABASE SET
3233 TABLESPACE</> is used to move a database to a new tablespace and then
3234 shortly later move it back to its original tablespace (Tom Lane)
3239 Author: Tom Lane <tgl@sss.pgh.pa.us>
3240 Branch: REL9_3_STABLE [81f0a5e38] 2014-10-29 18:12:08 -0400
3241 Branch: REL9_2_STABLE [40058fbce] 2014-10-29 18:12:11 -0400
3242 Branch: REL9_1_STABLE [6ec1c3ef8] 2014-10-29 18:12:17 -0400
3243 Branch: REL9_0_STABLE [9d06da58e] 2014-10-29 18:12:20 -0400
3244 Author: Tom Lane <tgl@sss.pgh.pa.us>
3245 Branch: REL9_3_STABLE [e65b550b3] 2014-10-30 13:03:28 -0400
3246 Branch: REL9_2_STABLE [38cb8687a] 2014-10-30 13:03:31 -0400
3247 Branch: REL9_1_STABLE [fcf0246b2] 2014-10-30 13:03:34 -0400
3248 Branch: REL9_0_STABLE [73f950fc8] 2014-10-30 13:03:39 -0400
3253 Avoid corrupting tables when <command>ANALYZE</> inside a transaction
3254 is rolled back (Andres Freund, Tom Lane, Michael Paquier)
3258 If the failing transaction had earlier removed the last index, rule, or
3259 trigger from the table, the table would be left in a corrupted state
3260 with the relevant <structname>pg_class</> flags not set though they
3266 Author: Andres Freund <andres@anarazel.de>
3267 Branch: REL9_3_STABLE [d7624e562] 2014-10-20 23:45:31 +0200
3268 Branch: REL9_2_STABLE [fd29810d1] 2014-10-20 23:47:00 +0200
3269 Branch: REL9_1_STABLE [d5fef87e9] 2014-10-20 23:47:45 +0200
3274 Ensure that unlogged tables are copied correctly
3275 during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
3276 TABLESPACE</> (Pavan Deolasee, Andres Freund)
3281 Author: Robert Haas <rhaas@postgresql.org>
3282 Branch: REL9_3_STABLE [e35db342a] 2014-09-22 16:19:59 -0400
3287 Fix incorrect processing
3288 of <structname>CreateEventTrigStmt</>.<structfield>eventname</> (Petr
3293 This could result in misbehavior if <command>CREATE EVENT TRIGGER</>
3294 were executed as a prepared query, or via extended query protocol.
3299 Author: Tom Lane <tgl@sss.pgh.pa.us>
3300 Branch: REL9_3_STABLE [2a83e0349] 2014-11-11 17:00:21 -0500
3301 Branch: REL9_2_STABLE [1c2f9a4f6] 2014-11-11 17:00:25 -0500
3302 Branch: REL9_1_STABLE [94d5d57d5] 2014-11-11 17:00:28 -0500
3307 Fix <command>DROP</>'s dependency searching to correctly handle the
3308 case where a table column is recursively visited before its table
3309 (Petr Jelinek, Tom Lane)
3313 This case is only known to arise when an extension creates both a
3314 datatype and a table using that datatype. The faulty code might
3315 refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
3316 specified, which should not be required.
3321 Author: Tom Lane <tgl@sss.pgh.pa.us>
3322 Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
3323 Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
3324 Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
3325 Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
3326 Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
3327 Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
3332 Fix use-of-already-freed-memory problem in EvalPlanQual processing
3337 In <literal>READ COMMITTED</> mode, queries that lock or update
3338 recently-updated rows could crash as a result of this bug.
3343 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3344 Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
3345 Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
3346 Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
3351 Avoid possible deadlock while trying to acquire tuple locks
3352 in EvalPlanQual processing (Álvaro Herrera, Mark Kirkwood)
3357 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3358 Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
3359 Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
3360 Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
3365 Fix failure to wait when a transaction tries to acquire a <literal>FOR
3366 NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
3367 currently hold <literal>FOR SHARE</> locks (Álvaro Herrera)
3372 Author: Tom Lane <tgl@sss.pgh.pa.us>
3373 Branch: REL9_3_STABLE [2ae8a01ca] 2014-12-11 21:02:31 -0500
3374 Branch: REL9_2_STABLE [cd63c57e5] 2014-12-11 21:02:34 -0500
3375 Branch: REL9_1_STABLE [bca39b578] 2014-12-11 21:02:38 -0500
3376 Branch: REL9_0_STABLE [662eebdc6] 2014-12-11 21:02:41 -0500
3381 Fix planning of <command>SELECT FOR UPDATE</> when using a partial
3382 index on a child table (Kyotaro Horiguchi)
3386 In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
3387 also recheck the partial index's <literal>WHERE</> condition when
3388 rechecking a recently-updated row to see if it still satisfies the
3389 query's <literal>WHERE</> condition. This requirement was missed if the
3390 index belonged to an inheritance child table, so that it was possible
3391 to incorrectly return rows that no longer satisfy the query condition.
3396 Author: Tom Lane <tgl@sss.pgh.pa.us>
3397 Branch: REL9_3_STABLE [f14196c35] 2014-12-11 19:37:07 -0500
3398 Branch: REL9_2_STABLE [deadbf4f3] 2014-12-11 19:37:10 -0500
3399 Branch: REL9_1_STABLE [21946ac9b] 2014-12-11 19:37:14 -0500
3400 Branch: REL9_0_STABLE [f5e4e92fb] 2014-12-11 19:37:17 -0500
3405 Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
3406 twice, and possibly miss returning other rows (Tom Lane)
3410 In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
3411 that is scanning an inheritance tree could incorrectly return a row
3412 from a prior child table instead of the one it should return from a
3418 Author: Tom Lane <tgl@sss.pgh.pa.us>
3419 Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
3420 Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
3421 Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
3426 Improve performance of <command>EXPLAIN</> with large range tables
3432 Author: Tom Lane <tgl@sss.pgh.pa.us>
3433 Branch: REL9_3_STABLE [7a9c8cefb] 2014-08-09 13:46:42 -0400
3434 Branch: REL9_2_STABLE [b4dacab12] 2014-08-09 13:46:45 -0400
3435 Branch: REL9_1_STABLE [bbe826f21] 2014-08-09 13:46:48 -0400
3436 Branch: REL9_0_STABLE [4ff49746e] 2014-08-09 13:46:52 -0400
3441 Reject duplicate column names in the referenced-columns list of
3442 a <literal>FOREIGN KEY</> declaration (David Rowley)
3446 This restriction is per SQL standard. Previously we did not reject
3447 the case explicitly, but later on the code would fail with
3448 bizarre-looking errors.
3453 Author: Tom Lane <tgl@sss.pgh.pa.us>
3454 Branch: REL9_3_STABLE [6306d0712] 2014-07-22 13:30:14 -0400
3459 Re-enable error for <literal>SELECT ... OFFSET -1</> (Tom Lane)
3463 A negative offset value has been an error since 8.4, but an
3464 optimization added in 9.3 accidentally turned the case into a no-op.
3465 Restore the expected behavior.
3470 Author: Tom Lane <tgl@sss.pgh.pa.us>
3471 Branch: REL9_3_STABLE [8b65e0a33] 2014-08-09 18:40:34 -0400
3472 Branch: REL9_2_STABLE [15026ab97] 2014-08-09 18:40:38 -0400
3477 Restore previous behavior of conversion of domains to JSON
3482 This change causes domains over numeric and boolean to be treated
3483 like their base types for purposes of conversion to JSON. It worked
3484 like that before 9.3.5 and 9.2.9, but was unintentionally changed
3485 while fixing a related problem.
3490 Author: Tom Lane <tgl@sss.pgh.pa.us>
3491 Branch: REL9_3_STABLE [8571ecb24] 2014-12-02 15:02:43 -0500
3496 Fix <function>json_agg()</> to not return extra trailing right
3497 brackets in its result (Tom Lane)
3502 Author: Tom Lane <tgl@sss.pgh.pa.us>
3503 Branch: REL9_3_STABLE [25bf13fe1] 2014-09-11 23:30:57 -0400
3504 Branch: REL9_2_STABLE [228ed4370] 2014-09-11 23:31:00 -0400
3505 Branch: REL9_1_STABLE [cf5c20b06] 2014-09-11 23:31:03 -0400
3506 Branch: REL9_0_STABLE [26f8a4691] 2014-09-11 23:31:06 -0400
3511 Fix bugs in raising a <type>numeric</> value to a large integral power
3516 The previous code could get a wrong answer, or consume excessive
3517 amounts of time and memory before realizing that the answer must
3523 Author: Tom Lane <tgl@sss.pgh.pa.us>
3524 Branch: REL9_3_STABLE [10b81fbdc] 2014-12-01 15:25:08 -0500
3525 Branch: REL9_2_STABLE [e640042e9] 2014-12-01 15:25:12 -0500
3526 Branch: REL9_1_STABLE [2e3cc3955] 2014-12-01 15:25:15 -0500
3527 Branch: REL9_0_STABLE [e6550626c] 2014-12-01 15:25:18 -0500
3532 In <function>numeric_recv()</>, truncate away any fractional digits
3533 that would be hidden according to the value's <literal>dscale</> field
3538 A <type>numeric</> value's display scale (<literal>dscale</>) should
3539 never be less than the number of nonzero fractional digits; but
3540 apparently there's at least one broken client application that
3541 transmits binary <type>numeric</> values in which that's true.
3542 This leads to strange behavior since the extra digits are taken into
3543 account by arithmetic operations even though they aren't printed.
3544 The least risky fix seems to be to truncate away such <quote>hidden</>
3545 digits on receipt, so that the value is indeed what it prints as.
3550 Author: Tom Lane <tgl@sss.pgh.pa.us>
3551 Branch: REL9_3_STABLE [bbfdf5d75] 2014-09-23 20:25:36 -0400
3552 Branch: REL9_2_STABLE [3359a818c] 2014-09-23 20:25:39 -0400
3557 Fix incorrect search for shortest-first regular expression matches
3562 Matching would often fail when the number of allowed iterations is
3563 limited by a <literal>?</> quantifier or a bound expression.
3568 Author: Tom Lane <tgl@sss.pgh.pa.us>
3569 Branch: REL9_3_STABLE [7672bbca0] 2014-07-21 22:41:27 -0400
3570 Branch: REL9_2_STABLE [f54d97c5e] 2014-07-21 22:41:30 -0400
3571 Branch: REL9_1_STABLE [124331b61] 2014-07-21 22:41:33 -0400
3572 Branch: REL9_0_STABLE [6e5a39c9e] 2014-07-21 22:41:36 -0400
3577 Reject out-of-range numeric timezone specifications (Tom Lane)
3581 Simple numeric timezone specifications exceeding +/- 168 hours (one
3582 week) would be accepted, but could then cause null-pointer dereference
3583 crashes in certain operations. There's no use-case for such large UTC
3584 offsets, so reject them.
3589 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3590 Branch: REL9_3_STABLE [1aa526f3f] 2014-10-27 10:51:29 +0200
3591 Branch: REL9_2_STABLE [604d94d4c] 2014-10-27 10:51:33 +0200
3592 Branch: REL9_1_STABLE [4d1c738d1] 2014-10-27 10:51:36 +0200
3593 Branch: REL9_0_STABLE [10059c2da] 2014-10-27 10:51:38 +0200
3598 Fix bugs in <type>tsquery</> <literal>@></> <type>tsquery</>
3599 operator (Heikki Linnakangas)
3603 Two different terms would be considered to match if they had the same
3604 CRC. Also, if the second operand had more terms than the first, it
3605 would be assumed not to be contained in the first; which is wrong
3606 since it might contain duplicate terms.
3611 Author: Tom Lane <tgl@sss.pgh.pa.us>
3612 Branch: REL9_3_STABLE [385f0d98a] 2014-10-23 13:11:34 -0400
3613 Branch: REL9_2_STABLE [f09369da8] 2014-10-23 13:11:37 -0400
3614 Branch: REL9_1_STABLE [94de3a679] 2014-10-23 13:11:41 -0400
3615 Branch: REL9_0_STABLE [21fa26b65] 2014-10-23 13:11:45 -0400
3620 Improve ispell dictionary's defenses against bad affix files (Tom Lane)
3625 Author: Tom Lane <tgl@sss.pgh.pa.us>
3626 Branch: REL9_3_STABLE [5a74ff373] 2014-11-06 20:52:52 -0500
3627 Branch: REL9_2_STABLE [0bb318595] 2014-11-06 20:52:57 -0500
3628 Branch: REL9_1_STABLE [076688084] 2014-11-06 20:53:02 -0500
3629 Branch: REL9_0_STABLE [39493e4d9] 2014-11-06 20:53:07 -0500
3634 Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
3638 The previous coding could crash on an oversize dictionary, so this was
3639 deemed a back-patchable bug fix rather than a feature addition.
3644 Author: Peter Eisentraut <peter_e@gmx.net>
3645 Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
3646 Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
3647 Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
3648 Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
3649 Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
3650 Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
3655 Fix namespace handling in <function>xpath()</> (Ali Akbar)
3659 Previously, the <type>xml</> value resulting from
3660 an <function>xpath()</> call would not have namespace declarations if
3661 the namespace declarations were attached to an ancestor element in the
3662 input <type>xml</> value, rather than to the specific element being
3663 returned. Propagate the ancestral declaration so that the result is
3664 correct when considered in isolation.
3669 Author: Tom Lane <tgl@sss.pgh.pa.us>
3670 Branch: REL9_3_STABLE [07ab4ec4c] 2014-11-10 15:21:20 -0500
3671 Branch: REL9_2_STABLE [19ccaf9d4] 2014-11-10 15:21:26 -0500
3676 Ensure that whole-row variables expose nonempty column names
3677 to functions that pay attention to column names within composite
3678 arguments (Tom Lane)
3682 In some contexts, constructs like <literal>row_to_json(tab.*)</> may
3683 not produce the expected column names. This is fixed properly as of
3684 9.4; in older branches, just ensure that we produce some nonempty
3685 name. (In some cases this will be the underlying table's column name
3686 rather than the query-assigned alias that should theoretically be
3692 Author: Tom Lane <tgl@sss.pgh.pa.us>
3693 Branch: REL9_3_STABLE [c57cdc9c1] 2014-11-22 16:01:12 -0500
3694 Branch: REL9_2_STABLE [906599f65] 2014-11-22 16:01:15 -0500
3699 Fix mishandling of system columns,
3700 particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
3705 Author: Tom Lane <tgl@sss.pgh.pa.us>
3706 Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
3707 Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
3708 Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
3713 Fix assorted oversights in range-operator selectivity estimation
3718 This patch fixes corner-case <quote>unexpected operator NNNN</> planner
3719 errors, and improves the selectivity estimates for some other cases.
3724 Author: Tom Lane <tgl@sss.pgh.pa.us>
3725 Branch: REL9_3_STABLE [f6abf8f08] 2014-10-26 16:12:29 -0400
3726 Branch: REL9_2_STABLE [4586572d7] 2014-10-26 16:12:32 -0400
3731 Avoid doing <literal><replaceable>indexed_column</> = ANY
3732 (<replaceable>array</>)</literal> as an index qualifier if that leads
3733 to an inferior plan (Andrew Gierth)
3737 In some cases, <literal>= ANY</> conditions applied to non-first index
3738 columns would be done as index conditions even though it would be
3739 better to use them as simple filter conditions.
3744 Author: Tom Lane <tgl@sss.pgh.pa.us>
3745 Branch: REL9_3_STABLE [4e54685d0] 2014-10-20 12:23:48 -0400
3750 Fix <quote>variable not found in subplan target list</> planner
3751 failure when an inline-able SQL function taking a composite argument
3752 is used in a <literal>LATERAL</> subselect and the composite argument
3753 is a lateral reference (Tom Lane)
3758 Author: Tom Lane <tgl@sss.pgh.pa.us>
3759 Branch: REL9_3_STABLE [b2b95de61] 2014-10-01 19:30:30 -0400
3760 Branch: REL9_2_STABLE [71b88cf52] 2014-10-01 19:30:34 -0400
3761 Branch: REL9_1_STABLE [477023e94] 2014-10-01 19:30:38 -0400
3762 Branch: REL9_0_STABLE [288f15b7c] 2014-10-01 19:30:41 -0400
3767 Fix planner problems with nested append relations, such as inherited
3768 tables within <literal>UNION ALL</> subqueries (Tom Lane)
3773 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3774 Branch: REL9_3_STABLE [ef8ac584e] 2014-10-03 14:50:29 +0300
3775 Branch: REL9_2_STABLE [8e137b075] 2014-10-03 14:50:40 +0300
3776 Branch: REL9_1_STABLE [f270a1611] 2014-10-03 14:50:46 +0300
3777 Branch: REL9_0_STABLE [f04b112d5] 2014-10-03 14:50:58 +0300
3782 Fail cleanly when a GiST index tuple doesn't fit on a page, rather
3783 than going into infinite recursion (Andrew Gierth)
3788 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3789 Branch: REL9_3_STABLE [67ed9d531] 2014-10-03 13:01:27 -0300
3790 Branch: REL9_2_STABLE [769d6815e] 2014-10-03 13:01:27 -0300
3791 Branch: REL9_1_STABLE [06646f52e] 2014-10-03 13:01:27 -0300
3792 Branch: REL9_0_STABLE [50a757698] 2014-10-03 13:01:27 -0300
3797 Exempt tables that have per-table <varname>cost_limit</>
3798 and/or <varname>cost_delay</> settings from autovacuum's global cost
3799 balancing rules (Álvaro Herrera)
3803 The previous behavior resulted in basically ignoring these per-table
3804 settings, which was unintended. Now, a table having such settings
3805 will be vacuumed using those settings, independently of what is going
3806 on in other autovacuum workers. This may result in heavier total I/O
3807 load than before, so such settings should be re-examined for sanity.
3812 Author: Tom Lane <tgl@sss.pgh.pa.us>
3813 Branch: REL9_3_STABLE [4cbecdaaa] 2014-07-30 14:41:49 -0400
3814 Branch: REL9_2_STABLE [c83aed34b] 2014-07-30 14:41:53 -0400
3815 Branch: REL9_1_STABLE [f21afe421] 2014-07-30 14:41:58 -0400
3816 Branch: REL9_0_STABLE [91b4a881c] 2014-07-30 14:42:12 -0400
3821 Avoid wholesale autovacuuming when autovacuum is nominally off
3826 Even when autovacuum is nominally off, we will still launch autovacuum
3827 worker processes to vacuum tables that are at risk of XID wraparound.
3828 However, such a worker process then proceeded to vacuum all tables in
3829 the target database, if they met the usual thresholds for
3830 autovacuuming. This is at best pretty unexpected; at worst it delays
3831 response to the wraparound threat. Fix it so that if autovacuum is
3832 turned off, workers <emphasis>only</> do anti-wraparound vacuums and
3838 Author: Andres Freund <andres@anarazel.de>
3839 Branch: REL9_3_STABLE [2c3ebfd1a] 2014-11-15 01:21:07 +0100
3840 Branch: REL9_2_STABLE [ea8b3833e] 2014-11-15 01:21:45 +0100
3841 Branch: REL9_1_STABLE [d85b646d0] 2014-11-15 01:22:32 +0100
3842 Author: Andres Freund <andres@anarazel.de>
3843 Branch: REL9_3_STABLE [672b43e68] 2014-11-15 01:21:02 +0100
3844 Branch: REL9_2_STABLE [c5baa708f] 2014-11-15 01:21:40 +0100
3845 Branch: REL9_1_STABLE [fde9994bc] 2014-11-15 01:22:32 +0100
3846 Author: Andres Freund <andres@anarazel.de>
3847 Branch: REL9_3_STABLE [c7299d32f] 2014-11-15 01:20:29 +0100
3848 Branch: REL9_2_STABLE [86673a44a] 2014-11-15 01:21:30 +0100
3849 Branch: REL9_1_STABLE [b0a48e996] 2014-11-15 01:22:32 +0100
3854 During crash recovery, ensure that unlogged relations are rewritten as
3855 empty and are synced to disk before recovery is considered complete
3856 (Abhijit Menon-Sen, Andres Freund)
3860 This prevents scenarios in which unlogged relations might contain
3861 garbage data following database crash recovery.
3866 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3867 Branch: REL9_3_STABLE [861d3aa43] 2014-11-13 20:01:55 +0200
3868 Branch: REL9_2_STABLE [7eab804c2] 2014-11-13 20:01:18 +0200
3869 Branch: REL9_1_STABLE [5f1d931cf] 2014-11-13 20:01:09 +0200
3870 Branch: REL9_0_STABLE [681dbe7d4] 2014-11-13 20:00:51 +0200
3875 Fix race condition between hot standby queries and replaying a
3876 full-page image (Heikki Linnakangas)
3880 This mistake could result in transient errors in queries being
3881 executed in hot standby.
3886 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3887 Branch: REL9_3_STABLE [a2a718b22] 2014-07-29 11:57:52 +0300
3888 Branch: REL9_2_STABLE [1578d13dc] 2014-07-29 11:58:01 +0300
3889 Branch: REL9_1_STABLE [de88ec6bf] 2014-07-29 11:58:09 +0300
3890 Branch: REL9_0_STABLE [804983961] 2014-07-29 11:58:17 +0300
3895 Fix several cases where recovery logic improperly ignored WAL records
3896 for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
3900 The most notable oversight was
3901 that <varname>recovery_target_xid</> could not be used to stop at
3907 Author: Fujii Masao <fujii@postgresql.org>
3908 Branch: REL9_3_STABLE [d45cd9e19] 2014-10-23 16:22:46 +0900
3909 Branch: REL9_2_STABLE [f904e9afd] 2014-10-23 16:31:44 +0900
3914 Prevent latest WAL file from being archived a second time at completion
3915 of crash recovery (Fujii Masao)
3920 Author: Fujii Masao <fujii@postgresql.org>
3921 Branch: REL9_3_STABLE [3a3b7e316] 2014-11-06 21:25:18 +0900
3922 Branch: REL9_2_STABLE [38eb5d9e8] 2014-11-06 21:25:45 +0900
3923 Branch: REL9_1_STABLE [4e7468074] 2014-11-06 21:26:15 +0900
3924 Branch: REL9_0_STABLE [83c7bfb9a] 2014-11-06 21:26:21 +0900
3929 Avoid creating unnecessary <filename>.ready</> marker files for
3930 timeline history files (Fujii Masao)
3935 Author: Fujii Masao <fujii@postgresql.org>
3936 Branch: REL9_3_STABLE [52eed3d42] 2014-09-05 02:19:29 +0900
3937 Branch: REL9_2_STABLE [78b1228ef] 2014-09-05 02:19:45 +0900
3938 Branch: REL9_1_STABLE [81bffe63c] 2014-09-05 02:19:50 +0900
3939 Branch: REL9_0_STABLE [857a5d6b5] 2014-09-05 02:19:57 +0900
3944 Fix possible null pointer dereference when an empty prepared statement
3945 is used and the <varname>log_statement</> setting is <literal>mod</>
3946 or <literal>ddl</> (Fujii Masao)
3951 Author: Tom Lane <tgl@sss.pgh.pa.us>
3952 Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
3953 Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
3954 Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
3955 Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
3956 Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
3957 Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
3962 Change <quote>pgstat wait timeout</> warning message to be LOG level,
3963 and rephrase it to be more understandable (Tom Lane)
3967 This message was originally thought to be essentially a can't-happen
3968 case, but it occurs often enough on our slower buildfarm members to be
3969 a nuisance. Reduce it to LOG level, and expend a bit more effort on
3970 the wording: it now reads <quote>using stale statistics instead of
3971 current ones because stats collector is not responding</>.
3976 Author: Andres Freund <andres@anarazel.de>
3977 Branch: REL9_3_STABLE [cbd9619ac] 2014-10-01 14:34:06 +0200
3982 Fix possible corruption of postmaster's list of dynamic background
3983 workers (Andres Freund)
3988 Author: Andres Freund <andres@anarazel.de>
3989 Branch: REL9_3_STABLE [27ef6b653] 2014-09-09 23:37:33 +0200
3990 Branch: REL9_2_STABLE [d0b7ffc0f] 2014-09-09 23:37:50 +0200
3991 Branch: REL9_1_STABLE [5af508f66] 2014-09-09 23:45:07 +0200
3992 Branch: REL9_0_STABLE [f25e89601] 2014-09-09 23:48:03 +0200
3997 Fix SPARC spinlock implementation to ensure correctness if the CPU is
3998 being run in a non-TSO coherency mode, as some non-Solaris kernels do
4004 Author: Noah Misch <noah@leadboat.com>
4005 Branch: master [894459e59] 2015-01-07 22:35:44 -0500
4006 Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
4007 Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
4008 Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
4009 Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
4010 Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
4015 Warn if OS X's <function>setlocale()</> starts an unwanted extra
4016 thread inside the postmaster (Noah Misch)
4021 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4022 Branch: REL9_3_STABLE [08cd4d9a6] 2014-11-25 17:39:00 +0200
4023 Branch: REL9_2_STABLE [9b468bcec] 2014-11-25 17:39:04 +0200
4024 Branch: REL9_1_STABLE [95be34362] 2014-11-25 17:39:07 +0200
4025 Branch: REL9_0_STABLE [9880fea4f] 2014-11-25 17:39:09 +0200
4030 Fix processing of repeated <literal>dbname</> parameters
4031 in <function>PQconnectdbParams()</> (Alex Shulgin)
4035 Unexpected behavior ensued if the first occurrence
4036 of <literal>dbname</> contained a connection string or URI to be
4042 Author: Tom Lane <tgl@sss.pgh.pa.us>
4043 Branch: REL9_3_STABLE [52ef33f72] 2014-10-22 18:41:51 -0400
4044 Branch: REL9_2_STABLE [6fa31d8d1] 2014-10-22 18:41:54 -0400
4045 Branch: REL9_1_STABLE [98144378c] 2014-10-22 18:41:57 -0400
4046 Branch: REL9_0_STABLE [ac6e87537] 2014-10-22 18:42:01 -0400
4051 Ensure that <application>libpq</> reports a suitable error message on
4052 unexpected socket EOF (Marko Tiikkaja, Tom Lane)
4056 Depending on kernel behavior, <application>libpq</> might return an
4057 empty error string rather than something useful when the server
4058 unexpectedly closed the socket.
4063 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4064 Branch: REL9_3_STABLE [1325b239b] 2014-10-29 14:40:47 +0200
4065 Branch: REL9_2_STABLE [1a27fbd07] 2014-10-29 14:39:10 +0200
4066 Branch: REL9_1_STABLE [8f7bd8e91] 2014-10-29 14:36:19 +0200
4067 Branch: REL9_0_STABLE [49ef4eba2] 2014-10-29 14:35:39 +0200
4072 Clear any old error message during <function>PQreset()</>
4073 (Heikki Linnakangas)
4077 If <function>PQreset()</> is called repeatedly, and the connection
4078 cannot be re-established, error messages from the failed connection
4079 attempts kept accumulating in the <structname>PGconn</>'s error
4085 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4086 Branch: REL9_3_STABLE [d3b162a3d] 2014-11-25 14:10:29 +0200
4087 Branch: REL9_2_STABLE [abcab2a64] 2014-11-25 14:10:43 +0200
4088 Branch: REL9_1_STABLE [5053ad206] 2014-11-25 14:10:48 +0200
4089 Branch: REL9_0_STABLE [1f3517039] 2014-11-25 14:10:54 +0200
4094 Properly handle out-of-memory conditions while parsing connection
4095 options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
4100 Author: Tom Lane <tgl@sss.pgh.pa.us>
4101 Branch: REL9_3_STABLE [d3cfe20c6] 2014-10-06 21:23:35 -0400
4102 Branch: REL9_2_STABLE [b513205bc] 2014-10-06 21:23:39 -0400
4103 Branch: REL9_1_STABLE [037b912ec] 2014-10-06 21:23:45 -0400
4104 Branch: REL9_0_STABLE [d9a1e9de5] 2014-10-06 21:23:50 -0400
4109 Fix array overrun in <application>ecpg</>'s version
4110 of <function>ParseDateTime()</> (Michael Paquier)
4115 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4116 Branch: REL9_3_STABLE [2df66f01a] 2014-12-05 14:31:51 +0200
4117 Branch: REL9_2_STABLE [2b53d583d] 2014-12-05 14:31:45 +0200
4118 Branch: REL9_1_STABLE [729202754] 2014-12-05 14:31:37 +0200
4119 Branch: REL9_0_STABLE [d67be559e] 2014-12-05 14:30:55 +0200
4124 In <application>initdb</>, give a clearer error message if a password
4125 file is specified but is empty (Mats Erik Andersson)
4130 Author: Tom Lane <tgl@sss.pgh.pa.us>
4131 Branch: REL9_3_STABLE [b0fd5c552] 2014-09-08 16:09:52 -0400
4132 Branch: REL9_2_STABLE [886b58b47] 2014-09-08 16:09:56 -0400
4133 Branch: REL9_1_STABLE [440fcc568] 2014-09-08 16:10:01 -0400
4134 Branch: REL9_0_STABLE [44c518328] 2014-09-08 16:10:05 -0400
4139 Fix <application>psql</>'s <command>\s</> command to work nicely with
4140 libedit, and add pager support (Stepan Rutz, Tom Lane)
4144 When using libedit rather than readline, <command>\s</> printed the
4145 command history in a fairly unreadable encoded format, and on recent
4146 libedit versions might fail altogether. Fix that by printing the
4147 history ourselves rather than having the library do it. A pleasant
4148 side-effect is that the pager is used if appropriate.
4152 This patch also fixes a bug that caused newline encoding to be applied
4153 inconsistently when saving the command history with libedit.
4154 Multiline history entries written by older <application>psql</>
4155 versions will be read cleanly with this patch, but perhaps not
4156 vice versa, depending on the exact libedit versions involved.
4161 Author: Tom Lane <tgl@sss.pgh.pa.us>
4162 Branch: master [28551797a] 2014-12-31 12:18:50 -0500
4163 Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
4164 Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
4165 Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
4166 Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
4167 Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
4172 Improve consistency of parsing of <application>psql</>'s special
4173 variables (Tom Lane)
4177 Allow variant spellings of <literal>on</> and <literal>off</> (such
4178 as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
4179 and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
4180 values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
4181 <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
4182 <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
4183 all values for all these variables case-insensitively; previously
4184 there was a mishmash of case-sensitive and case-insensitive behaviors.
4189 Author: Fujii Masao <fujii@postgresql.org>
4190 Branch: REL9_3_STABLE [4b1953079] 2014-11-28 02:44:40 +0900
4195 Make <application>psql</>'s <command>\watch</> command display
4196 nulls as specified by <command>\pset null</> (Fujii Masao)
4201 Author: Stephen Frost <sfrost@snowman.net>
4202 Branch: REL9_3_STABLE [7ec399094] 2014-09-12 11:24:28 -0400
4203 Branch: REL9_2_STABLE [5d63f2159] 2014-09-12 11:24:32 -0400
4204 Branch: REL9_1_STABLE [4d96e93cb] 2014-09-12 11:24:36 -0400
4205 Branch: REL9_0_STABLE [1f89fc218] 2014-09-12 11:24:39 -0400
4210 Fix <application>psql</>'s expanded-mode display to work
4211 consistently when using <literal>border</> = 3
4212 and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
4218 Author: Tom Lane <tgl@sss.pgh.pa.us>
4219 Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
4220 Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
4221 Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
4226 Fix <application>pg_dump</> to handle comments on event triggers
4227 without failing (Tom Lane)
4232 Author: Kevin Grittner <kgrittn@postgresql.org>
4233 Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
4234 Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
4235 Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
4240 Allow parallel <application>pg_dump</> to
4241 use <option>--serializable-deferrable</> (Kevin Grittner)
4246 Author: Tom Lane <tgl@sss.pgh.pa.us>
4247 Branch: REL9_3_STABLE [51fc61334] 2014-07-25 19:48:48 -0400
4248 Branch: REL9_2_STABLE [a6c567437] 2014-07-25 19:48:51 -0400
4249 Branch: REL9_1_STABLE [40c333c39] 2014-07-25 19:48:54 -0400
4254 Improve performance of <application>pg_dump</> when the database
4255 contains many instances of multiple dependency paths between the same
4256 two objects (Tom Lane)
4261 Author: Tom Lane <tgl@sss.pgh.pa.us>
4262 Branch: REL9_3_STABLE [9fc887121] 2014-11-13 18:19:32 -0500
4263 Branch: REL9_2_STABLE [3c5ce5102] 2014-11-13 18:19:35 -0500
4268 Fix <application>pg_dumpall</> to restore its ability to dump from
4269 pre-8.1 servers (Gilles Darold)
4274 Author: Robert Haas <rhaas@postgresql.org>
4275 Branch: REL9_3_STABLE [d72ecc91c] 2014-09-26 11:23:43 -0400
4276 Branch: REL9_2_STABLE [a97c8c393] 2014-09-26 11:25:57 -0400
4277 Branch: REL9_1_STABLE [d1844c21b] 2014-09-26 11:36:25 -0400
4278 Branch: REL9_0_STABLE [bbe3c069a] 2014-09-26 11:43:56 -0400
4283 Fix possible deadlock during parallel restore of a schema-only dump
4284 (Robert Haas, Tom Lane)
4289 Author: Tom Lane <tgl@sss.pgh.pa.us>
4290 Branch: REL9_3_STABLE [9a540c1ef] 2014-10-17 12:49:06 -0400
4291 Branch: REL9_2_STABLE [787e20bd4] 2014-10-17 12:49:09 -0400
4292 Branch: REL9_1_STABLE [0c9391e52] 2014-10-17 12:49:11 -0400
4293 Branch: REL9_0_STABLE [31021e7ba] 2014-10-17 12:49:15 -0400
4298 Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
4299 composite type (Rushabh Lathia)
4304 Author: Andres Freund <andres@anarazel.de>
4305 Branch: REL9_3_STABLE [26a4e0ed7] 2014-11-15 01:21:11 +0100
4310 Fix failure to fsync tables in nondefault tablespaces
4311 during <application>pg_upgrade</> (Abhijit Menon-Sen, Andres Freund)
4315 With an operating system crash and some bad luck, this could result in
4316 data loss during an upgrade.
4321 Author: Bruce Momjian <bruce@momjian.us>
4322 Branch: REL9_3_STABLE [fca9f349b] 2014-08-07 14:56:13 -0400
4327 In <application>pg_upgrade</>, cope with cases where the new cluster
4328 creates a TOAST table for a table that didn't previously have one
4333 Previously this could result in failures due to OID conflicts.
4338 Author: Bruce Momjian <bruce@momjian.us>
4339 Branch: REL9_3_STABLE [24ae44914] 2014-08-04 11:45:45 -0400
4344 In <application>pg_upgrade</>, don't try to
4345 set <literal>autovacuum_multixact_freeze_max_age</> for the old cluster
4350 This could result in failure because not all 9.3.X versions have that
4351 parameter. Fortunately, we don't actually need to set it at all.
4356 Author: Bruce Momjian <bruce@momjian.us>
4357 Branch: REL9_3_STABLE [5724f491d] 2014-09-11 18:39:46 -0400
4362 In <application>pg_upgrade</>, preserve the transaction ID epoch
4367 This oversight did not bother <productname>PostgreSQL</> proper,
4368 but could confuse some external replication tools.
4373 Author: Andres Freund <andres@anarazel.de>
4374 Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
4375 Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
4376 Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
4377 Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
4378 Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
4383 Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
4384 being archived again when the standby is promoted (Andres Freund)
4389 Author: Fujii Masao <fujii@postgresql.org>
4390 Branch: REL9_3_STABLE [9747a9898] 2014-08-02 15:19:45 +0900
4395 Fix memory leak in <application>pg_receivexlog</> (Fujii Masao)
4400 Author: Fujii Masao <fujii@postgresql.org>
4401 Branch: REL9_3_STABLE [39217ce41] 2014-08-02 14:59:10 +0900
4406 Fix unintended suppression of <application>pg_receivexlog</> verbose
4407 messages (Fujii Masao)
4412 Author: Tom Lane <tgl@sss.pgh.pa.us>
4413 Branch: REL9_3_STABLE [9474c9d81] 2014-09-19 13:19:02 -0400
4414 Branch: REL9_2_STABLE [5ff8c2d7d] 2014-09-19 13:19:05 -0400
4419 Fix failure of <filename>contrib/auto_explain</> to print per-node
4420 timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
4425 Author: Tom Lane <tgl@sss.pgh.pa.us>
4426 Branch: REL9_3_STABLE [0ad403c98] 2014-08-28 18:21:14 -0400
4427 Branch: REL9_2_STABLE [f3998521f] 2014-08-28 18:21:17 -0400
4428 Branch: REL9_1_STABLE [9807c8220] 2014-08-28 18:21:20 -0400
4433 Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
4439 Author: Tom Lane <tgl@sss.pgh.pa.us>
4440 Branch: REL9_3_STABLE [f44290b7b] 2014-11-04 16:54:59 -0500
4445 Avoid integer overflow and buffer overrun
4446 in <filename>contrib/hstore</>'s <function>hstore_to_json()</>
4447 (Heikki Linnakangas)
4452 Author: Andrew Dunstan <andrew@dunslane.net>
4453 Branch: REL9_3_STABLE [55c880797] 2014-12-01 11:44:48 -0500
4458 Fix recognition of numbers in <function>hstore_to_json_loose()</>,
4459 so that JSON numbers and strings are correctly distinguished
4465 Author: Tom Lane <tgl@sss.pgh.pa.us>
4466 Branch: REL9_3_STABLE [f59c8eff7] 2014-07-22 11:45:53 -0400
4467 Branch: REL9_2_STABLE [810f0d2a2] 2014-07-22 11:45:57 -0400
4468 Branch: REL9_1_STABLE [3c5232ae8] 2014-07-22 11:46:00 -0400
4469 Branch: REL9_0_STABLE [9dc2a3fd0] 2014-07-22 11:46:04 -0400
4474 Fix block number checking
4475 in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
4480 The incorrect checking logic could prevent access to some pages in
4481 non-main relation forks.
4486 Author: Tom Lane <tgl@sss.pgh.pa.us>
4487 Branch: REL9_3_STABLE [419de696a] 2014-11-11 17:22:38 -0500
4488 Branch: REL9_2_STABLE [4a9710e6e] 2014-11-11 17:22:44 -0500
4489 Branch: REL9_1_STABLE [4ddd9e72f] 2014-11-11 17:22:51 -0500
4490 Branch: REL9_0_STABLE [ef5a3b957] 2014-11-11 17:22:58 -0500
4495 Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
4496 to not fail on messages whose length is 6 less than a power of 2
4502 Author: Robert Haas <rhaas@postgresql.org>
4503 Branch: REL9_3_STABLE [8cf825974] 2014-11-19 12:14:22 -0500
4504 Branch: REL9_2_STABLE [57ce74661] 2014-11-19 12:20:47 -0500
4505 Branch: REL9_1_STABLE [a855c90a7] 2014-11-19 12:26:06 -0500
4510 Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
4515 This could cause failure to remove temporary files on Windows.
4520 Author: Tom Lane <tgl@sss.pgh.pa.us>
4521 Branch: master [37507962c] 2015-01-29 20:18:33 -0500
4522 Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
4523 Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
4524 Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
4525 Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
4526 Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
4531 Handle unexpected query results, especially NULLs, safely in
4532 <filename>contrib/tablefunc</>'s <function>connectby()</>
4537 <function>connectby()</> previously crashed if it encountered a NULL
4538 key value. It now prints that row but doesn't recurse further.
4543 Author: Tom Lane <tgl@sss.pgh.pa.us>
4544 Branch: REL9_3_STABLE [c393847a1] 2014-11-27 11:12:51 -0500
4545 Branch: REL9_2_STABLE [a1cd04cd0] 2014-11-27 11:12:55 -0500
4546 Branch: REL9_1_STABLE [168636a99] 2014-11-27 11:12:59 -0500
4547 Branch: REL9_0_STABLE [6a694bbab] 2014-11-27 11:13:03 -0500
4552 Avoid a possible crash in <filename>contrib/xml2</>'s
4553 <function>xslt_process()</> (Mark Simonetti)
4557 <application>libxslt</> seems to have an undocumented dependency on
4558 the order in which resources are freed; reorder our calls to avoid a
4564 Author: Tom Lane <tgl@sss.pgh.pa.us>
4565 Branch: REL9_3_STABLE [0247935c7] 2014-11-05 11:34:19 -0500
4566 Branch: REL9_2_STABLE [0ef754cad] 2014-11-05 11:34:22 -0500
4567 Branch: REL9_1_STABLE [7225abf00] 2014-11-05 11:34:25 -0500
4572 Mark some <filename>contrib</> I/O functions with correct volatility
4573 properties (Tom Lane)
4577 The previous over-conservative marking was immaterial in normal use,
4578 but could cause optimization problems or rejection of valid index
4579 expression definitions. Since the consequences are not large, we've
4580 just adjusted the function definitions in the extension modules'
4581 scripts, without changing version numbers.
4586 Author: Tom Lane <tgl@sss.pgh.pa.us>
4587 Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
4588 Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
4589 Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
4590 Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
4591 Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
4592 Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
4593 Author: Tom Lane <tgl@sss.pgh.pa.us>
4594 Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
4595 Author: Robert Haas <rhaas@postgresql.org>
4596 Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
4597 Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
4598 Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
4599 Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
4600 Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
4601 Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
4602 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4603 Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
4604 Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
4605 Author: Andres Freund <andres@anarazel.de>
4606 Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
4607 Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
4608 Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
4609 Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
4610 Author: Andres Freund <andres@anarazel.de>
4611 Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
4612 Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
4613 Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
4614 Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
4615 Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
4616 Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
4617 Author: Andres Freund <andres@anarazel.de>
4618 Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
4619 Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
4620 Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
4621 Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
4622 Author: Tatsuo Ishii <ishii@postgresql.org>
4623 Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
4624 Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
4625 Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
4626 Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
4627 Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
4628 Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
4629 Author: Tom Lane <tgl@sss.pgh.pa.us>
4630 Branch: master [66709133c] 2014-12-16 15:35:33 -0500
4631 Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
4632 Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
4633 Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
4634 Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
4635 Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
4636 Author: Tom Lane <tgl@sss.pgh.pa.us>
4637 Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
4638 Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
4639 Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
4640 Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
4641 Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
4642 Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
4643 Author: Tom Lane <tgl@sss.pgh.pa.us>
4644 Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
4645 Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
4646 Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
4647 Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
4648 Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
4649 Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
4654 Numerous cleanups of warnings from Coverity static code analyzer
4655 (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
4659 These changes are mostly cosmetic but in some cases fix corner-case
4660 bugs, for example a crash rather than a proper error report after an
4661 out-of-memory failure. None are believed to represent security
4667 Author: Robert Haas <rhaas@postgresql.org>
4668 Branch: REL9_3_STABLE [05c0059b3] 2014-07-30 12:10:20 -0400
4673 Fix setup of background workers in EXEC_BACKEND builds, eg Windows
4679 Author: Noah Misch <noah@leadboat.com>
4680 Branch: REL9_3_STABLE [07115248f] 2014-07-22 11:01:41 -0400
4681 Branch: REL9_2_STABLE [cec0c2182] 2014-07-22 11:01:51 -0400
4682 Branch: REL9_1_STABLE [81af4185a] 2014-07-22 11:02:00 -0400
4683 Branch: REL9_0_STABLE [4c6d0abde] 2014-07-22 11:02:25 -0400
4688 Detect incompatible OpenLDAP versions during build (Noah Misch)
4692 With OpenLDAP versions 2.4.24 through 2.4.31,
4693 inclusive, <productname>PostgreSQL</> backends can crash at exit.
4694 Raise a warning during <application>configure</> based on the
4695 compile-time OpenLDAP version number, and test the crashing scenario
4696 in the <filename>contrib/dblink</> regression test.
4701 Author: Noah Misch <noah@leadboat.com>
4702 Branch: REL9_3_STABLE [318fe2321] 2014-08-18 23:01:04 -0400
4703 Branch: REL9_2_STABLE [ebd4d9cdd] 2014-08-18 23:01:09 -0400
4704 Branch: REL9_1_STABLE [ba72fc054] 2014-08-18 23:01:13 -0400
4705 Branch: REL9_0_STABLE [e6841c4d6] 2014-08-18 23:01:23 -0400
4710 In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
4711 with execute permissions (Noah Misch)
4716 Author: Tom Lane <tgl@sss.pgh.pa.us>
4717 Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
4718 Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
4719 Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
4720 Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
4721 Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
4722 Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
4727 Make <application>pg_regress</> remove any temporary installation it
4728 created upon successful exit (Tom Lane)
4732 This results in a very substantial reduction in disk space usage
4733 during <literal>make check-world</>, since that sequence involves
4734 creation of numerous temporary installations.
4739 Author: Tom Lane <tgl@sss.pgh.pa.us>
4740 Branch: REL9_3_STABLE [137e7c164] 2014-10-16 15:22:17 -0400
4741 Branch: REL9_2_STABLE [7c67b9365] 2014-10-16 15:22:20 -0400
4742 Branch: REL9_1_STABLE [2784b68b3] 2014-10-16 15:22:23 -0400
4743 Branch: REL9_0_STABLE [870a980aa] 2014-10-16 15:22:26 -0400
4748 Support time zone abbreviations that change UTC offset from time to
4753 Previously, <productname>PostgreSQL</> assumed that the UTC offset
4754 associated with a time zone abbreviation (such as <literal>EST</>)
4755 never changes in the usage of any particular locale. However this
4756 assumption fails in the real world, so introduce the ability for a
4757 zone abbreviation to represent a UTC offset that sometimes changes.
4758 Update the zone abbreviation definition files to make use of this
4759 feature in timezone locales that have changed the UTC offset of their
4760 abbreviations since 1970 (according to the IANA timezone database).
4761 In such timezones, <productname>PostgreSQL</> will now associate the
4762 correct UTC offset with the abbreviation depending on the given date.
4767 Author: Tom Lane <tgl@sss.pgh.pa.us>
4768 Branch: REL9_3_STABLE [9701f238b] 2014-10-03 17:44:56 -0400
4769 Branch: REL9_2_STABLE [d7d546bbc] 2014-10-03 17:44:59 -0400
4770 Branch: REL9_1_STABLE [252af79d9] 2014-10-03 17:45:03 -0400
4771 Branch: REL9_0_STABLE [cc7bad30c] 2014-10-03 17:45:07 -0400
4772 Author: Tom Lane <tgl@sss.pgh.pa.us>
4773 Branch: REL9_3_STABLE [0190f0a76] 2014-12-24 16:35:40 -0500
4774 Branch: REL9_2_STABLE [5c8665892] 2014-12-24 16:35:44 -0500
4775 Branch: REL9_1_STABLE [310597e31] 2014-12-24 16:35:48 -0500
4776 Branch: REL9_0_STABLE [8b70023af] 2014-12-24 16:35:54 -0500
4781 Update time zone abbreviations lists (Tom Lane)
4785 Add CST (China Standard Time) to our lists.
4786 Remove references to ADT as <quote>Arabia Daylight Time</>, an
4787 abbreviation that's been out of use since 2007; therefore, claiming
4788 there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
4790 Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
4791 (Fiji); we didn't even have them on the proper side of the date line.
4796 Author: Tom Lane <tgl@sss.pgh.pa.us>
4797 Branch: REL9_3_STABLE [8470cd473] 2015-01-30 22:46:05 -0500
4798 Branch: REL9_2_STABLE [c9048d353] 2015-01-30 22:46:12 -0500
4799 Branch: REL9_1_STABLE [cb24cd3f4] 2015-01-30 22:46:17 -0500
4800 Branch: REL9_0_STABLE [3553d9c6e] 2015-01-30 22:46:22 -0500
4801 Author: Tom Lane <tgl@sss.pgh.pa.us>
4802 Branch: REL9_3_STABLE [ab45d907b] 2014-11-17 12:08:25 -0500
4803 Branch: REL9_2_STABLE [b1e996035] 2014-11-17 12:08:32 -0500
4804 Branch: REL9_1_STABLE [b96c47a3d] 2014-11-17 12:08:39 -0500
4805 Branch: REL9_0_STABLE [92979576e] 2014-11-17 12:08:46 -0500
4806 Author: Tom Lane <tgl@sss.pgh.pa.us>
4807 Branch: REL9_3_STABLE [c66199151] 2014-10-04 14:18:33 -0400
4808 Branch: REL9_2_STABLE [8f75d7a25] 2014-10-04 14:18:36 -0400
4809 Branch: REL9_1_STABLE [745723c9e] 2014-10-04 14:18:39 -0400
4810 Branch: REL9_0_STABLE [b6391f587] 2014-10-04 14:18:43 -0400
4815 Update time zone data files to <application>tzdata</> release 2015a.
4819 The IANA timezone database has adopted abbreviations of the form
4820 <literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
4821 for all Australian time zones, reflecting what they believe to be
4822 current majority practice Down Under. These names do not conflict
4823 with usage elsewhere (other than ACST for Acre Summer Time, which has
4824 been in disuse since 1994). Accordingly, adopt these names into
4825 our <quote>Default</> timezone abbreviation set.
4826 The <quote>Australia</> abbreviation set now contains only CST, EAST,
4827 EST, SAST, SAT, and WST, all of which are thought to be mostly
4828 historical usage. Note that SAST has also been changed to be South
4829 Africa Standard Time in the <quote>Default</> abbreviation set.
4833 Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
4834 (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
4835 DST law changes in Chile, Mexico, the Turks & Caicos Islands
4836 (America/Grand_Turk), and Fiji. There is a new zone
4837 Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
4838 corrections for historical (pre-1970) time zone data.
4847 <sect1 id="release-9-3-5">
4848 <title>Release 9.3.5</title>
4851 <title>Release Date</title>
4852 <simpara>2014-07-24</simpara>
4856 This release contains a variety of fixes from 9.3.4.
4857 For information about new features in the 9.3 major release, see
4858 <xref linkend="release-9-3">.
4862 <title>Migration to Version 9.3.5</title>
4865 A dump/restore is not required for those running 9.3.X.
4869 However, this release corrects a logic error
4870 in <application>pg_upgrade</>, as well as an index corruption problem in
4871 some GiST indexes. See the first two changelog entries below to find out
4872 whether your installation has been affected and what steps you should take
4877 Also, if you are upgrading from a version earlier than 9.3.4,
4878 see <xref linkend="release-9-3-4">.
4884 <title>Changes</title>
4889 Author: Bruce Momjian <bruce@momjian.us>
4890 Branch: master [0f7482733] 2014-06-24 16:11:06 -0400
4891 Branch: REL9_4_STABLE [dd5369047] 2014-06-24 16:11:06 -0400
4892 Branch: REL9_3_STABLE [cc5841809] 2014-06-24 16:11:06 -0400
4897 In <application>pg_upgrade</>, remove <filename>pg_multixact</> files
4898 left behind by <application>initdb</> (Bruce Momjian)
4902 If you used a pre-9.3.5 version of <application>pg_upgrade</> to
4903 upgrade a database cluster to 9.3, it might have left behind a file
4904 <filename>$PGDATA/pg_multixact/offsets/0000</> that should not be
4905 there and will eventually cause problems in <command>VACUUM</>.
4906 <emphasis>However, in common cases this file is actually valid and
4907 must not be removed.</emphasis>
4908 To determine whether your installation has this problem, run this
4909 query as superuser, in any database of the cluster:
4911 WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))
4912 SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND
4913 NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND
4914 NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND
4915 EXISTS (SELECT * FROM list WHERE file != '0000')
4916 AS file_0000_removal_required;
4918 If this query returns <literal>t</>, manually remove the file
4919 <filename>$PGDATA/pg_multixact/offsets/0000</>.
4920 Do nothing if the query returns <literal>f</>.
4925 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4926 Branch: master Release: REL9_4_BR [540ac7cea] 2014-05-13 15:15:13 +0300
4927 Branch: REL9_3_STABLE [d5b912c90] 2014-05-13 15:27:14 +0300
4928 Branch: REL9_2_STABLE [0d8d0d027] 2014-05-13 15:27:21 +0300
4929 Branch: REL9_1_STABLE [1913d0f28] 2014-05-13 15:27:28 +0300
4930 Branch: REL9_0_STABLE [c87c43f08] 2014-05-13 15:27:36 +0300
4931 Branch: REL8_4_STABLE [e31d77c96] 2014-05-13 15:27:43 +0300
4936 Correctly initialize padding bytes in <filename>contrib/btree_gist</>
4937 indexes on <type>bit</> columns (Heikki Linnakangas)
4941 This error could result in incorrect query results due to values that
4942 should compare equal not being seen as equal.
4943 Users with GiST indexes on <type>bit</> or <type>bit varying</>
4944 columns should <command>REINDEX</> those indexes after installing this
4950 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4951 Branch: master Release: REL9_4_BR [4f7bb4b2a] 2014-05-08 14:50:22 +0300
4952 Branch: REL9_3_STABLE [34572920c] 2014-05-08 14:43:04 +0300
4953 Branch: REL9_2_STABLE [31633f992] 2014-05-08 14:43:39 +0300
4954 Branch: REL9_1_STABLE [686a7194e] 2014-05-08 14:43:58 +0300
4955 Branch: REL9_0_STABLE [8b4efe1f3] 2014-05-08 14:44:06 +0300
4956 Branch: REL8_4_STABLE [be7830596] 2014-05-08 14:46:43 +0300
4961 Protect against torn pages when deleting GIN list pages (Heikki
4966 This fix prevents possible index corruption if a system crash occurs
4967 while the page update is being written to disk.
4972 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4973 Branch: master Release: REL9_4_BR [7ca32e255] 2014-04-08 14:51:40 +0300
4974 Branch: REL9_3_STABLE [601c01e08] 2014-04-08 14:51:49 +0300
4975 Branch: REL9_2_STABLE [02b9fd73e] 2014-04-08 14:51:56 +0300
4976 Branch: REL9_1_STABLE [ac0078c1d] 2014-04-08 14:52:01 +0300
4977 Branch: REL9_0_STABLE [d034e9b3b] 2014-04-08 14:52:07 +0300
4982 Don't clear the right-link of a GiST index page while replaying
4983 updates from WAL (Heikki Linnakangas)
4987 This error could lead to transiently wrong answers from GiST index
4988 scans performed in Hot Standby.
4993 Author: Tom Lane <tgl@sss.pgh.pa.us>
4994 Branch: master Release: REL9_4_BR [c170655cc] 2014-06-09 16:31:11 -0400
4995 Branch: REL9_3_STABLE [717c116f1] 2014-06-09 16:31:16 -0400
4996 Branch: REL9_2_STABLE [93328b2df] 2014-06-09 16:30:46 -0400
5001 Fix corner-case infinite loop during insertion into an SP-GiST text
5007 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5008 Branch: master [1264ef31a] 2014-07-16 09:19:06 +0300
5009 Branch: REL9_4_STABLE [9b3ef66af] 2014-07-16 09:20:20 +0300
5010 Branch: REL9_3_STABLE [a4867d041] 2014-07-16 09:20:31 +0300
5015 Fix incorrect answers from SP-GiST index searches
5016 with <literal>-|-</literal> (range adjacency) operator
5017 (Heikki Linnakangas)
5022 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5023 Branch: master Release: REL9_4_BR [b0b263baa] 2014-06-09 15:17:23 -0400
5024 Branch: REL9_3_STABLE [167a2535f] 2014-06-09 15:17:23 -0400
5029 Fix wraparound handling for <filename>pg_multixact/members</>
5030 (Álvaro Herrera)
5035 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5036 Branch: master [f741300c9] 2014-06-27 14:43:53 -0400
5037 Branch: REL9_4_STABLE [56f86bb76] 2014-06-27 14:43:52 -0400
5038 Branch: REL9_3_STABLE [9a28c3752] 2014-06-27 14:43:52 -0400
5043 Truncate <structname>pg_multixact</> during checkpoints, not
5044 during <command>VACUUM</> (Álvaro Herrera)
5048 This change ensures that <structname>pg_multixact</> segments can't be
5049 removed if they'd still be needed during WAL replay after a crash.
5054 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5055 Branch: master Release: REL9_4_BR [2a8e1ac59] 2014-04-17 17:47:50 +0300
5056 Branch: REL9_3_STABLE [95aa823eb] 2014-04-17 17:47:58 +0300
5061 Fix possible inconsistency of all-visible flags after WAL recovery
5062 (Heikki Linnakangas)
5067 Author: Tom Lane <tgl@sss.pgh.pa.us>
5068 Branch: master Release: REL9_4_BR [0f928a85e] 2014-05-05 14:43:39 -0400
5069 Branch: REL9_3_STABLE [4f4ef042f] 2014-05-05 14:43:42 -0400
5070 Branch: REL9_2_STABLE [c8fbeeb45] 2014-05-05 14:43:46 -0400
5071 Branch: REL9_1_STABLE [2f4ee3a2f] 2014-05-05 14:43:49 -0400
5072 Branch: REL9_0_STABLE [7d5b68621] 2014-05-05 14:43:52 -0400
5073 Branch: REL8_4_STABLE [3ada1fab8] 2014-05-05 14:43:55 -0400
5078 Fix possibly-incorrect cache invalidation during nested calls
5079 to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
5084 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5085 Branch: master Release: REL9_4_BR [1a917ae86] 2014-04-24 15:41:55 -0300
5086 Branch: REL9_3_STABLE [c0bd128c8] 2014-04-24 15:41:55 -0300
5091 Fix race condition when updating a tuple concurrently locked by
5092 another process (Andres Freund, Álvaro Herrera)
5097 Author: Tom Lane <tgl@sss.pgh.pa.us>
5098 Branch: REL9_3_STABLE [a2db7b7d0] 2014-06-26 10:41:59 -0700
5099 Branch: REL9_2_STABLE [0cf16686b] 2014-06-26 10:42:03 -0700
5100 Branch: REL9_1_STABLE [555d0b200] 2014-06-26 10:42:08 -0700
5105 Fix <quote>could not find pathkey item to sort</> planner failures
5106 with <literal>UNION ALL</> over subqueries reading from tables with
5107 inheritance children (Tom Lane)
5112 Author: Tom Lane <tgl@sss.pgh.pa.us>
5113 Branch: master [9e2f2d7a0] 2014-07-08 14:03:56 -0400
5114 Branch: REL9_4_STABLE [ac45aa1dd] 2014-07-08 14:03:45 -0400
5115 Branch: REL9_3_STABLE [6d36aee5b] 2014-07-08 14:03:19 -0400
5116 Branch: REL9_2_STABLE [189bd09cb] 2014-07-08 14:03:23 -0400
5117 Branch: REL9_1_STABLE [fa21a760b] 2014-07-08 14:03:26 -0400
5118 Branch: REL9_0_STABLE [2865d5952] 2014-07-08 14:03:30 -0400
5119 Branch: REL8_4_STABLE [2e7469dc8] 2014-07-08 14:03:32 -0400
5124 Don't assume a subquery's output is unique if there's a set-returning
5125 function in its targetlist (David Rowley)
5129 This oversight could lead to misoptimization of constructs
5130 like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
5136 Author: Tom Lane <tgl@sss.pgh.pa.us>
5137 Branch: master Release: REL9_4_BR [95811032d] 2014-04-29 13:12:46 -0400
5138 Branch: REL9_3_STABLE [150a44e83] 2014-04-29 13:12:29 -0400
5139 Branch: REL9_2_STABLE [0901dbab3] 2014-04-29 13:12:33 -0400
5144 Improve planner to drop constant-NULL inputs
5145 of <literal>AND</>/<literal>OR</> when possible (Tom Lane)
5149 This change fixes some cases where the more aggressive parameter
5150 substitution done by 9.2 and later can lead to a worse plan than
5151 older versions produced.
5156 Author: Tom Lane <tgl@sss.pgh.pa.us>
5157 Branch: master Release: REL9_4_BR [c7b353959] 2014-04-03 22:02:24 -0400
5158 Branch: REL9_3_STABLE [d359f71ac] 2014-04-03 22:02:27 -0400
5163 Ensure that the planner sees equivalent <literal>VARIADIC</> and
5164 non-<literal>VARIADIC</> function calls as equivalent (Tom Lane)
5168 This bug could for example result in failure to use expression indexes
5169 involving variadic functions. It might be necessary to re-create such
5170 indexes, and/or re-create views including variadic function calls that
5171 should match the indexes, for the fix to be effective for existing 9.3
5177 Author: Tom Lane <tgl@sss.pgh.pa.us>
5178 Branch: master [57d8c1270] 2014-06-24 21:22:40 -0700
5179 Branch: REL9_4_STABLE [a331512de] 2014-06-24 21:22:43 -0700
5180 Branch: REL9_3_STABLE [a1fc36495] 2014-06-24 21:22:47 -0700
5185 Fix handling of nested <type>JSON</> objects
5186 in <function>json_populate_recordset()</> and friends
5187 (Michael Paquier, Tom Lane)
5191 A nested <type>JSON</> object could result in previous fields of the
5192 parent object not being shown in the output.
5197 Author: Tom Lane <tgl@sss.pgh.pa.us>
5198 Branch: master Release: REL9_4_BR [0ca6bda8e] 2014-05-09 12:55:31 -0400
5199 Branch: REL9_3_STABLE [13c679995] 2014-05-09 12:55:03 -0400
5200 Branch: REL9_2_STABLE [25c933c5c] 2014-05-09 12:55:06 -0400
5205 Fix identification of input type category in <function>to_json()</>
5206 and friends (Tom Lane)
5210 This is known to have led to inadequate quoting of <type>money</>
5211 fields in the <type>JSON</> result, and there may have been wrong
5212 results for other data types as well.
5217 Author: Tom Lane <tgl@sss.pgh.pa.us>
5218 Branch: master Release: REL9_4_BR [3f8c8e3c6] 2014-05-01 15:19:06 -0400
5219 Branch: REL9_3_STABLE [b72e90bc3] 2014-05-01 15:19:10 -0400
5220 Branch: REL9_2_STABLE [8c43980a1] 2014-05-01 15:19:14 -0400
5221 Branch: REL9_1_STABLE [db1fdc945] 2014-05-01 15:19:17 -0400
5222 Branch: REL9_0_STABLE [7a4f114f3] 2014-05-01 15:19:20 -0400
5223 Branch: REL8_4_STABLE [70debcf09] 2014-05-01 15:19:23 -0400
5228 Fix failure to detoast fields in composite elements of structured
5233 This corrects cases where TOAST pointers could be copied into other
5234 tables without being dereferenced. If the original data is later
5235 deleted, it would lead to errors like <quote>missing chunk number 0
5236 for toast value ...</> when the now-dangling pointer is used.
5241 Author: Tom Lane <tgl@sss.pgh.pa.us>
5242 Branch: master [d68581483] 2014-07-11 19:12:35 -0400
5243 Branch: REL9_4_STABLE [f280eff94] 2014-07-11 19:12:38 -0400
5244 Branch: REL9_3_STABLE [b77e6b959] 2014-07-11 19:12:42 -0400
5245 Branch: REL9_2_STABLE [261f954e7] 2014-07-11 19:12:45 -0400
5246 Branch: REL9_1_STABLE [c45841f9e] 2014-07-11 19:12:48 -0400
5247 Branch: REL9_0_STABLE [cd8ba91a0] 2014-07-11 19:12:51 -0400
5248 Branch: REL8_4_STABLE [a81fbcfb3] 2014-07-11 19:12:56 -0400
5253 Fix <quote>record type has not been registered</> failures with
5254 whole-row references to the output of Append plan nodes (Tom Lane)
5259 Author: Tom Lane <tgl@sss.pgh.pa.us>
5260 Branch: master Release: REL9_4_BR [04e5025be] 2014-05-07 14:25:11 -0400
5261 Branch: REL9_3_STABLE [fc58c39d4] 2014-05-07 14:25:13 -0400
5262 Branch: REL9_2_STABLE [022b5f2b2] 2014-05-07 14:25:17 -0400
5263 Branch: REL9_1_STABLE [229101db4] 2014-05-07 14:25:22 -0400
5264 Branch: REL9_0_STABLE [7f66ade71] 2014-05-07 14:25:25 -0400
5265 Branch: REL8_4_STABLE [2a527baa3] 2014-05-07 14:25:28 -0400
5270 Fix possible crash when invoking a user-defined function while
5271 rewinding a cursor (Tom Lane)
5276 Author: Tom Lane <tgl@sss.pgh.pa.us>
5277 Branch: master [45b0f3572] 2014-06-19 22:14:26 -0400
5278 Branch: REL9_4_STABLE [1044e79a0] 2014-06-19 22:13:44 -0400
5279 Branch: REL9_3_STABLE [c1f8fb9bf] 2014-06-19 22:13:47 -0400
5280 Branch: REL9_2_STABLE [b568d3836] 2014-06-19 22:13:51 -0400
5281 Branch: REL9_1_STABLE [06d5eacbc] 2014-06-19 22:13:54 -0400
5282 Branch: REL9_0_STABLE [83131e634] 2014-06-19 22:13:58 -0400
5283 Branch: REL8_4_STABLE [d297c91d4] 2014-06-19 22:14:00 -0400
5288 Fix query-lifespan memory leak while evaluating the arguments for a
5289 function in <literal>FROM</> (Tom Lane)
5294 Author: Tom Lane <tgl@sss.pgh.pa.us>
5295 Branch: master [1567e659a] 2014-07-18 13:00:27 -0400
5296 Branch: REL9_4_STABLE [4a66f0f2d] 2014-07-18 13:00:39 -0400
5297 Branch: REL9_3_STABLE [5ef588b22] 2014-07-18 13:00:43 -0400
5298 Branch: REL9_2_STABLE [a223b9e36] 2014-07-18 13:00:48 -0400
5299 Branch: REL9_1_STABLE [8a817785a] 2014-07-18 13:00:52 -0400
5300 Branch: REL9_0_STABLE [b8c24f7ab] 2014-07-18 13:00:57 -0400
5301 Branch: REL8_4_STABLE [e0a233744] 2014-07-18 13:01:04 -0400
5306 Fix session-lifespan memory leaks in regular-expression processing
5307 (Tom Lane, Arthur O'Dwyer, Greg Stark)
5312 Author: Tom Lane <tgl@sss.pgh.pa.us>
5313 Branch: master [fd90b5d57] 2014-06-10 22:48:16 -0400
5314 Branch: REL9_4_STABLE [7f9fbb842] 2014-06-10 22:48:31 -0400
5315 Branch: REL9_3_STABLE [87db9534a] 2014-06-10 22:48:39 -0400
5316 Branch: REL9_2_STABLE [802323535] 2014-06-10 22:48:45 -0400
5317 Branch: REL9_1_STABLE [62f134954] 2014-06-10 22:48:52 -0400
5318 Branch: REL9_0_STABLE [4d5ea4290] 2014-06-10 22:48:59 -0400
5319 Branch: REL8_4_STABLE [f3f40434b] 2014-06-10 22:49:08 -0400
5324 Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
5329 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5330 Branch: master [a87a7dc8b] 2014-06-24 13:27:18 +0300
5331 Branch: REL9_4_STABLE [1818ae0a7] 2014-06-24 13:31:06 +0300
5332 Branch: REL9_3_STABLE [2a7512bc7] 2014-06-24 13:31:00 +0300
5333 Branch: REL9_2_STABLE [1c9f9e888] 2014-06-24 13:30:54 +0300
5334 Branch: REL9_1_STABLE [dd1a5b09b] 2014-06-24 13:30:41 +0300
5339 Prevent foreign tables from being created with OIDS
5340 when <xref linkend="guc-default-with-oids"> is true
5346 Author: Andres Freund <andres@anarazel.de>
5347 Branch: master Release: REL9_4_BR [621a99a66] 2014-06-04 21:36:19 +0200
5348 Branch: REL9_3_STABLE [edde59db1] 2014-06-04 23:26:08 +0200
5349 Branch: REL9_2_STABLE [315442c01] 2014-06-04 23:25:52 +0200
5350 Branch: REL9_1_STABLE [6bf6e528a] 2014-06-04 23:26:30 +0200
5351 Branch: REL9_0_STABLE [037c6fb9f] 2014-06-04 23:27:10 +0200
5352 Branch: REL8_4_STABLE [80d45ae4e] 2014-06-04 23:27:38 +0200
5357 Fix liveness checks for rows that were inserted in the current
5358 transaction and then deleted by a now-rolled-back subtransaction
5363 This could cause problems (at least spurious warnings, and at worst an
5364 infinite loop) if <command>CREATE INDEX</> or <command>CLUSTER</> were
5365 done later in the same transaction.
5370 Author: Tom Lane <tgl@sss.pgh.pa.us>
5371 Branch: master Release: REL9_4_BR [d19bd29f0] 2014-04-24 13:29:48 -0400
5372 Branch: REL9_3_STABLE [12e41a5d7] 2014-04-24 13:29:56 -0400
5373 Branch: REL9_2_STABLE [ea9ac7741] 2014-04-24 13:30:00 -0400
5374 Branch: REL9_1_STABLE [70e7be264] 2014-04-24 13:30:04 -0400
5375 Branch: REL9_0_STABLE [b7a3e1173] 2014-04-24 13:30:08 -0400
5376 Branch: REL8_4_STABLE [82fbd88a7] 2014-04-24 13:30:14 -0400
5381 Clear <structname>pg_stat_activity</>.<structfield>xact_start</>
5382 during <command>PREPARE TRANSACTION</> (Andres Freund)
5386 After the <command>PREPARE</>, the originating session is no longer in
5387 a transaction, so it should not continue to display a transaction
5393 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5394 Branch: master [6bdf4b9c7] 2014-07-15 13:24:07 -0400
5395 Branch: REL9_4_STABLE [e45229bb6] 2014-07-15 13:24:07 -0400
5396 Branch: REL9_3_STABLE [12c5bbdcb] 2014-07-15 13:24:07 -0400
5397 Branch: REL9_2_STABLE [b42f09fc8] 2014-07-15 13:24:07 -0400
5398 Branch: REL9_1_STABLE [a41dc7321] 2014-07-15 13:24:07 -0400
5399 Branch: REL9_0_STABLE [bf08864b8] 2014-07-15 13:24:07 -0400
5400 Branch: REL8_4_STABLE [4b767789d] 2014-07-15 13:24:07 -0400
5405 Fix <command>REASSIGN OWNED</> to not fail for text search objects
5406 (Álvaro Herrera)
5411 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5412 Branch: master [b7e51d9c0] 2014-06-27 14:43:46 -0400
5413 Branch: REL9_4_STABLE [9eecc8a7c] 2014-06-27 14:43:46 -0400
5414 Branch: REL9_3_STABLE [e86cfc4bb] 2014-06-27 14:43:45 -0400
5419 Prevent <structname>pg_class</>.<structfield>relminmxid</> values from
5420 going backwards during <command>VACUUM FULL</> (Álvaro Herrera)
5425 Author: Tom Lane <tgl@sss.pgh.pa.us>
5426 Branch: master Release: REL9_4_BR [41de93c53] 2014-04-30 13:26:26 -0400
5427 Branch: REL9_3_STABLE [0652d77fb] 2014-04-30 13:26:29 -0400
5432 Reduce indentation in rule/view dumps to improve readability and avoid
5433 excessive whitespace (Greg Stark, Tom Lane)
5437 This change reduces the amount of indentation applied to nested
5438 constructs, including some cases that the user probably doesn't think
5439 of as nested, such as UNION lists. Previously, deeply nested
5440 constructs were printed with an amount of whitespace growing as
5441 O(N^2), which created a performance problem and even risk of
5442 out-of-memory failures. Now the indentation is reduced modulo 40,
5443 which is initially odd to look at but seems to preserve readability
5444 better than simply limiting the indentation would do.
5445 Redundant parenthesization of UNION lists has been reduced as well.
5450 Author: Tom Lane <tgl@sss.pgh.pa.us>
5451 Branch: master Release: REL9_4_BR [91e16b980] 2014-05-01 20:22:37 -0400
5452 Branch: REL9_3_STABLE [e31193d49] 2014-05-01 20:22:39 -0400
5457 Fix dumping of rules/views when subsequent addition of a column has
5458 resulted in multiple input columns matching a <literal>USING</>
5459 specification (Tom Lane)
5464 Author: Tom Lane <tgl@sss.pgh.pa.us>
5465 Branch: master [9b35ddce9] 2014-07-19 14:28:52 -0400
5466 Branch: REL9_4_STABLE [f0a497e4c] 2014-07-19 14:29:00 -0400
5467 Branch: REL9_3_STABLE [b978ab5f6] 2014-07-19 14:29:05 -0400
5472 Repair view printing for some cases involving functions
5473 in <literal>FROM</> that return a composite type containing dropped
5479 Author: Tom Lane <tgl@sss.pgh.pa.us>
5480 Branch: master Release: REL9_4_BR [5d8117e1f] 2014-04-05 18:16:08 -0400
5481 Branch: REL9_3_STABLE [21aa47d01] 2014-04-05 18:16:11 -0400
5482 Branch: REL9_2_STABLE [53463e247] 2014-04-05 18:16:14 -0400
5483 Branch: REL9_1_STABLE [093d3da1d] 2014-04-05 18:16:17 -0400
5484 Branch: REL9_0_STABLE [5c26ab659] 2014-04-05 18:16:20 -0400
5485 Branch: REL8_4_STABLE [969735cf1] 2014-04-05 18:16:24 -0400
5490 Block signals during postmaster startup (Tom Lane)
5494 This ensures that the postmaster will properly clean up after itself
5495 if, for example, it receives <systemitem>SIGINT</> while still
5501 Author: Tom Lane <tgl@sss.pgh.pa.us>
5502 Branch: master Release: REL9_4_BR [fc752505a] 2014-04-02 17:11:24 -0400
5503 Branch: REL9_3_STABLE [65183fb78] 2014-04-02 17:11:27 -0400
5504 Branch: REL9_2_STABLE [029decfec] 2014-04-02 17:11:31 -0400
5505 Branch: REL9_1_STABLE [b7a424371] 2014-04-02 17:11:34 -0400
5510 Fix client host name lookup when processing <filename>pg_hba.conf</>
5511 entries that specify host names instead of IP addresses (Tom Lane)
5515 Ensure that reverse-DNS lookup failures are reported, instead of just
5516 silently not matching such entries. Also ensure that we make only
5517 one reverse-DNS lookup attempt per connection, not one per host name
5518 entry, which is what previously happened if the lookup attempts failed.
5523 Author: Tom Lane <tgl@sss.pgh.pa.us>
5524 Branch: master Release: REL9_4_BR [b203c57bb] 2014-04-04 22:03:35 -0400
5525 Branch: REL9_3_STABLE [7d1a0f585] 2014-04-04 22:03:38 -0400
5526 Branch: REL9_2_STABLE [6d25eb314] 2014-04-04 22:03:42 -0400
5531 Allow the root user to use <literal>postgres -C variable</> and
5532 <literal>postgres --describe-config</> (MauMau)
5536 The prohibition on starting the server as root does not need to extend
5537 to these operations, and relaxing it prevents failure
5538 of <application>pg_ctl</> in some scenarios.
5543 Author: Noah Misch <noah@leadboat.com>
5544 Branch: master [be76a6d39] 2014-06-14 09:41:13 -0400
5545 Branch: REL9_4_STABLE [6583a75b2] 2014-06-14 09:41:16 -0400
5546 Branch: REL9_3_STABLE [1442b426e] 2014-06-14 09:41:17 -0400
5547 Branch: REL9_2_STABLE [453a5d91d] 2014-06-14 09:41:17 -0400
5548 Branch: REL9_1_STABLE [481831b43] 2014-06-14 09:41:18 -0400
5549 Branch: REL9_0_STABLE [5f09c583c] 2014-06-14 09:41:18 -0400
5550 Branch: REL8_4_STABLE [95cefd30e] 2014-06-14 09:41:18 -0400
5555 Secure Unix-domain sockets of temporary postmasters started during
5556 <literal>make check</> (Noah Misch)
5560 Any local user able to access the socket file could connect as the
5561 server's bootstrap superuser, then proceed to execute arbitrary code as
5562 the operating-system user running the test, as we previously noted in
5563 CVE-2014-0067. This change defends against that risk by placing the
5564 server's socket in a temporary, mode 0700 subdirectory
5565 of <filename>/tmp</>. The hazard remains however on platforms where
5566 Unix sockets are not supported, notably Windows, because then the
5567 temporary postmaster must accept local TCP connections.
5571 A useful side effect of this change is to simplify
5572 <literal>make check</> testing in builds that
5573 override <literal>DEFAULT_PGSOCKET_DIR</>. Popular non-default values
5574 like <filename>/var/run/postgresql</> are often not writable by the
5575 build user, requiring workarounds that will no longer be necessary.
5580 Author: Tom Lane <tgl@sss.pgh.pa.us>
5581 Branch: master Release: REL9_4_BR [abe075dff] 2014-04-04 23:09:35 -0400
5582 Branch: REL9_3_STABLE [84520f91c] 2014-04-04 23:09:38 -0400
5583 Branch: REL9_2_STABLE [1a496a12b] 2014-04-04 23:09:41 -0400
5584 Branch: REL9_1_STABLE [af7738fe6] 2014-04-04 23:09:45 -0400
5585 Branch: REL9_0_STABLE [634056567] 2014-04-04 23:09:49 -0400
5590 Fix tablespace creation WAL replay to work on Windows (MauMau)
5595 Author: Bruce Momjian <bruce@momjian.us>
5596 Branch: master Release: REL9_4_BR [418093465] 2014-04-16 10:45:48 -0400
5597 Branch: REL9_3_STABLE [f716c3250] 2014-04-16 10:45:48 -0400
5598 Branch: REL9_2_STABLE [966f015b6] 2014-04-16 10:45:48 -0400
5599 Branch: REL9_1_STABLE [bed499ed1] 2014-04-16 10:45:48 -0400
5600 Branch: REL9_0_STABLE [a86b2daff] 2014-04-16 10:45:48 -0400
5605 Fix detection of socket creation failures on Windows (Bruce Momjian)
5610 Author: Tom Lane <tgl@sss.pgh.pa.us>
5611 Branch: master Release: REL9_4_BR [6862ca697] 2014-04-05 12:41:25 -0400
5612 Branch: REL9_3_STABLE [18db2150c] 2014-04-05 12:41:28 -0400
5613 Branch: REL9_2_STABLE [bdc3e95c2] 2014-04-05 12:41:31 -0400
5614 Branch: REL9_1_STABLE [cb11f4d8d] 2014-04-05 12:41:34 -0400
5615 Branch: REL9_0_STABLE [9500d8f89] 2014-04-05 12:41:38 -0400
5616 Branch: REL8_4_STABLE [30e434bdf] 2014-04-05 12:41:40 -0400
5621 On Windows, allow new sessions to absorb values of PGC_BACKEND
5622 parameters (such as <xref linkend="guc-log-connections">) from the
5623 configuration file (Amit Kapila)
5627 Previously, if such a parameter were changed in the file post-startup,
5628 the change would have no effect.
5633 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5634 Branch: master Release: REL9_4_BR [503de5462] 2014-04-30 10:35:52 +0300
5635 Branch: REL9_3_STABLE [8a90a39b4] 2014-04-30 10:35:46 +0300
5636 Branch: REL9_2_STABLE [e2558e016] 2014-04-30 10:36:31 +0300
5637 Branch: REL9_1_STABLE [94095e341] 2014-04-30 10:36:41 +0300
5638 Branch: REL9_0_STABLE [c06b7219a] 2014-04-30 10:38:32 +0300
5639 Branch: REL8_4_STABLE [e3f273ff6] 2014-04-30 10:39:03 +0300
5644 Properly quote executable path names on Windows (Nikhil Deshpande)
5648 This oversight could cause <application>initdb</>
5649 and <application>pg_upgrade</> to fail on Windows, if the installation
5650 path contained both spaces and <literal>@</> signs.
5655 Author: Tom Lane <tgl@sss.pgh.pa.us>
5656 Branch: master Release: REL9_4_BR [20561acf9] 2014-05-30 18:19:06 -0400
5657 Branch: REL9_3_STABLE [4f5f4da79] 2014-05-30 18:19:14 -0400
5658 Branch: REL9_2_STABLE [83ed4598b] 2014-05-30 18:18:20 -0400
5659 Branch: REL9_1_STABLE [a784a39c4] 2014-05-30 18:18:24 -0400
5660 Branch: REL9_0_STABLE [4f725bbc4] 2014-05-30 18:18:28 -0400
5661 Branch: REL8_4_STABLE [ae41bb4be] 2014-05-30 18:18:32 -0400
5666 Fix linking of <application>libpython</> on OS X (Tom Lane)
5670 The method we previously used can fail with the Python library
5671 supplied by Xcode 5.0 and later.
5676 Author: Tom Lane <tgl@sss.pgh.pa.us>
5677 Branch: master Release: REL9_4_BR [2f557167b] 2014-05-07 21:39:13 -0400
5678 Branch: REL9_3_STABLE [b4f9c93ce] 2014-05-07 21:38:38 -0400
5679 Branch: REL9_2_STABLE [f7672c8ce] 2014-05-07 21:38:41 -0400
5680 Branch: REL9_1_STABLE [86888054a] 2014-05-07 21:38:44 -0400
5681 Branch: REL9_0_STABLE [77e662827] 2014-05-07 21:38:47 -0400
5682 Branch: REL8_4_STABLE [664ac3de7] 2014-05-07 21:38:50 -0400
5687 Avoid buffer bloat in <application>libpq</> when the server
5688 consistently sends data faster than the client can absorb it
5689 (Shin-ichi Morita, Tom Lane)
5693 <application>libpq</> could be coerced into enlarging its input buffer
5694 until it runs out of memory (which would be reported misleadingly
5695 as <quote>lost synchronization with server</>). Under ordinary
5696 circumstances it's quite far-fetched that data could be continuously
5697 transmitted more quickly than the <function>recv()</> loop can
5698 absorb it, but this has been observed when the client is artificially
5699 slowed by scheduler constraints.
5704 Author: Magnus Hagander <magnus@hagander.net>
5705 Branch: master Release: REL9_4_BR [585bca393] 2014-04-16 18:58:10 +0200
5706 Branch: REL9_3_STABLE [cc269272c] 2014-04-16 18:58:55 +0200
5707 Branch: REL9_2_STABLE [b764080ee] 2014-04-16 18:59:11 +0200
5708 Branch: REL9_1_STABLE [c4bf15b9c] 2014-04-16 18:59:28 +0200
5709 Branch: REL9_0_STABLE [96752b02d] 2014-04-16 18:59:37 +0200
5710 Branch: REL8_4_STABLE [b4ae2e37d] 2014-04-16 18:59:48 +0200
5715 Ensure that LDAP lookup attempts in <application>libpq</> time out as
5716 intended (Laurenz Albe)
5721 Author: Michael Meskes <meskes@postgresql.org>
5722 Branch: master Release: REL9_4_BR [8d6a07fa0] 2014-05-06 13:09:51 +0200
5723 Branch: REL9_3_STABLE [b4eeb9d58] 2014-05-06 13:04:30 +0200
5724 Branch: REL9_2_STABLE [3a024c110] 2014-05-06 13:14:01 +0200
5725 Branch: REL9_1_STABLE [fb66e88cf] 2014-05-06 13:20:22 +0200
5726 Branch: REL9_0_STABLE [91c8c106f] 2014-05-06 13:24:13 +0200
5728 Author: Michael Meskes <meskes@postgresql.org>
5729 Branch: master Release: REL9_4_BR [f91796853] 2014-04-09 11:23:38 +0200
5730 Branch: REL9_3_STABLE [3b8fda676] 2014-04-09 11:38:40 +0200
5731 Branch: REL9_2_STABLE [2b3136de9] 2014-04-09 11:43:13 +0200
5732 Branch: REL9_1_STABLE [0de106836] 2014-04-09 12:04:33 +0200
5733 Branch: REL9_0_STABLE [0c2eb989e] 2014-04-09 12:12:32 +0200
5738 Fix <application>ecpg</> to do the right thing when an array
5739 of <type>char *</> is the target for a FETCH statement returning more
5740 than one row, as well as some other array-handling fixes
5746 Author: Tom Lane <tgl@sss.pgh.pa.us>
5747 Branch: master Release: REL9_4_BR [62215de29] 2014-03-29 17:34:00 -0400
5748 Branch: REL9_3_STABLE [3080bbaa9] 2014-03-29 17:34:03 -0400
5753 Fix <application>pg_dump</> to cope with a materialized view that
5754 depends on a table's primary key (Tom Lane)
5758 This occurs if the view's query relies on functional dependency to
5759 abbreviate a <literal>GROUP BY</> list. <application>pg_dump</> got
5760 sufficiently confused that it dumped the materialized view as a
5766 Author: Tom Lane <tgl@sss.pgh.pa.us>
5767 Branch: master Release: REL9_4_BR [19f2d6cda] 2014-03-18 10:38:25 -0400
5768 Branch: REL9_3_STABLE [63817f86b] 2014-03-18 10:38:38 -0400
5773 Fix parsing of <application>pg_dumpall</>'s <option>-i</> switch
5779 Author: Tom Lane <tgl@sss.pgh.pa.us>
5780 Branch: master [c81e63d85] 2014-06-12 20:14:32 -0400
5781 Branch: REL9_4_STABLE [c3c1401ca] 2014-06-12 20:14:36 -0400
5782 Branch: REL9_3_STABLE [a11577f47] 2014-06-12 20:14:39 -0400
5783 Branch: REL9_2_STABLE [ce7fc4fbb] 2014-06-12 20:14:46 -0400
5784 Branch: REL9_1_STABLE [294a48985] 2014-06-12 20:14:49 -0400
5785 Branch: REL9_0_STABLE [3fec825f9] 2014-06-12 20:14:52 -0400
5786 Branch: REL8_4_STABLE [6adddac8a] 2014-06-12 20:14:55 -0400
5791 Fix <application>pg_restore</>'s processing of old-style large object
5796 A direct-to-database restore from an archive file generated by a
5797 pre-9.0 version of <application>pg_dump</> would usually fail if the
5798 archive contained more than a few comments for large objects.
5803 Author: Bruce Momjian <bruce@momjian.us>
5804 Branch: master [3088cc370] 2014-07-07 13:24:08 -0400
5805 Branch: REL9_4_STABLE [f64fe2cbe] 2014-07-07 13:24:08 -0400
5806 Branch: REL9_3_STABLE [f1d7ff5bb] 2014-07-07 13:24:08 -0400
5807 Branch: REL9_2_STABLE [759c9fb63] 2014-07-07 13:24:08 -0400
5812 Fix <application>pg_upgrade</> for cases where the new server creates
5813 a TOAST table but the old version did not (Bruce Momjian)
5817 This rare situation would manifest as <quote>relation OID mismatch</>
5823 Author: Bruce Momjian <bruce@momjian.us>
5824 Branch: master [a61daa14d] 2014-07-02 15:29:38 -0400
5825 Branch: REL9_4_STABLE [b446a384b] 2014-07-02 15:29:38 -0400
5826 Branch: REL9_3_STABLE [3d2e18510] 2014-07-02 15:29:38 -0400
5828 Author: Tom Lane <tgl@sss.pgh.pa.us>
5829 Branch: master [78db307bb] 2014-07-21 11:41:53 -0400
5830 Branch: REL9_4_STABLE [d122387d7] 2014-07-21 11:42:00 -0400
5831 Branch: REL9_3_STABLE [e7984cca0] 2014-07-21 11:42:05 -0400
5836 In <application>pg_upgrade</>,
5837 preserve <structname>pg_database</>.<structfield>datminmxid</>
5838 and <structname>pg_class</>.<structfield>relminmxid</> values from the
5839 old cluster, or insert reasonable values when upgrading from pre-9.3;
5840 also defend against unreasonable values in the core server
5841 (Bruce Momjian, Álvaro Herrera, Tom Lane)
5845 These changes prevent scenarios in which autovacuum might insist on
5846 scanning the entire cluster's contents immediately upon starting the
5847 new cluster, or in which tracking of unfrozen MXID values might be
5848 disabled completely.
5853 Author: Tom Lane <tgl@sss.pgh.pa.us>
5854 Branch: master Release: REL9_4_BR [e416830a2] 2014-05-20 12:20:47 -0400
5855 Branch: REL9_3_STABLE [0266a9c78] 2014-05-20 12:20:52 -0400
5856 Branch: REL9_2_STABLE [31f579f09] 2014-05-20 12:20:57 -0400
5861 Prevent <filename>contrib/auto_explain</> from changing the output of
5862 a user's <command>EXPLAIN</> (Tom Lane)
5866 If <filename>auto_explain</> is active, it could cause
5867 an <literal>EXPLAIN (ANALYZE, TIMING OFF)</> command to nonetheless
5868 print timing information.
5873 Author: Joe Conway <mail@joeconway.com>
5874 Branch: master [1dde5782e] 2014-06-20 12:24:59 -0700
5875 Branch: REL9_4_STABLE [9d884a34c] 2014-06-20 12:26:26 -0700
5876 Branch: REL9_3_STABLE [b3a3f3d2f] 2014-06-20 12:26:43 -0700
5877 Branch: REL9_2_STABLE [3e2cfa42f] 2014-06-20 12:27:04 -0700
5882 Fix query-lifespan memory leak in <filename>contrib/dblink</>
5883 (MauMau, Joe Conway)
5888 Author: Bruce Momjian <bruce@momjian.us>
5889 Branch: master Release: REL9_4_BR [9fe55259f] 2014-04-17 12:37:53 -0400
5890 Branch: REL9_3_STABLE [fc72e94a1] 2014-04-17 12:37:53 -0400
5891 Branch: REL9_2_STABLE [ea8725a8b] 2014-04-17 12:37:53 -0400
5892 Branch: REL9_1_STABLE [fc02b87e2] 2014-04-17 12:37:53 -0400
5893 Branch: REL9_0_STABLE [a1b9c4630] 2014-04-17 12:37:53 -0400
5894 Branch: REL8_4_STABLE [df2e62603] 2014-04-17 12:37:53 -0400
5899 In <filename>contrib/pgcrypto</> functions, ensure sensitive
5900 information is cleared from stack variables before returning
5906 Author: Noah Misch <noah@leadboat.com>
5907 Branch: master [9d0826c59] 2014-06-30 16:59:19 -0400
5908 Branch: REL9_4_STABLE [37a4d3d70] 2014-06-30 16:59:44 -0400
5909 Branch: REL9_3_STABLE [f14e40852] 2014-06-30 17:00:22 -0400
5910 Branch: REL9_2_STABLE [f6d6b7b1e] 2014-06-30 17:00:40 -0400
5915 Prevent use of already-freed memory in
5916 <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
5922 Author: Tom Lane <tgl@sss.pgh.pa.us>
5923 Branch: master Release: REL9_4_BR [c941aed96] 2014-05-29 13:51:02 -0400
5924 Branch: REL9_3_STABLE [961dd203a] 2014-05-29 13:51:05 -0400
5925 Branch: REL9_2_STABLE [2fb9fb661] 2014-05-29 13:51:09 -0400
5926 Branch: REL9_1_STABLE [3606754da] 2014-05-29 13:51:12 -0400
5927 Branch: REL9_0_STABLE [b2f6754d2] 2014-05-29 13:51:15 -0400
5928 Branch: REL8_4_STABLE [fd785441f] 2014-05-29 13:51:18 -0400
5933 In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID
5934 library across calls (Tom Lane)
5938 This improves the efficiency of UUID generation and reduces the amount
5939 of entropy drawn from <filename>/dev/urandom</>, on platforms that
5945 Author: Tom Lane <tgl@sss.pgh.pa.us>
5946 Branch: master [b1864fabf] 2014-07-19 15:00:50 -0400
5947 Branch: REL9_4_STABLE [e5ea60e80] 2014-07-19 15:01:05 -0400
5948 Branch: REL9_3_STABLE [bd5458f52] 2014-07-19 15:01:12 -0400
5949 Branch: REL9_2_STABLE [7d09e4854] 2014-07-19 15:01:18 -0400
5950 Branch: REL9_1_STABLE [40ccb6530] 2014-07-19 15:01:28 -0400
5951 Branch: REL9_0_STABLE [7659b6913] 2014-07-19 15:01:38 -0400
5952 Branch: REL8_4_STABLE [c51da696b] 2014-07-19 15:01:45 -0400
5957 Update time zone data files to <application>tzdata</> release 2014e
5958 for DST law changes in Crimea, Egypt, and Morocco.
5967 <sect1 id="release-9-3-4">
5968 <title>Release 9.3.4</title>
5971 <title>Release Date</title>
5972 <simpara>2014-03-20</simpara>
5976 This release contains a variety of fixes from 9.3.3.
5977 For information about new features in the 9.3 major release, see
5978 <xref linkend="release-9-3">.
5982 <title>Migration to Version 9.3.4</title>
5985 A dump/restore is not required for those running 9.3.X.
5989 However, the error fixed in the first changelog entry below could have
5990 resulted in corrupt data on standby servers. It may be prudent to
5991 reinitialize standby servers from fresh base backups after installing
5996 Also, if you are upgrading from a version earlier than 9.3.3,
5997 see <xref linkend="release-9-3-3">.
6003 <title>Changes</title>
6008 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6009 Branch: master [6bfa88acd] 2014-02-27 11:13:39 -0300
6010 Branch: REL9_3_STABLE [9a57858f1] 2014-02-27 11:23:24 -0300
6015 Fix WAL replay of locking an already-updated tuple (Andres Freund,
6016 Álvaro Herrera)
6020 This error caused updated rows to not be found by index scans, resulting
6021 in inconsistent query results depending on whether an index scan was
6022 used. Subsequent processing could result in constraint violations,
6023 since the previously updated row would not be found by later index
6024 searches, thus possibly allowing conflicting rows to be inserted.
6025 Since this error is in WAL replay, it would only manifest during crash
6026 recovery or on standby servers. The improperly-replayed case most
6027 commonly arises when a table row that is referenced by a foreign-key
6028 constraint is updated concurrently with creation of a referencing row.
6033 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6034 Branch: master [fecfc2b91] 2014-03-12 10:04:57 +0200
6035 Branch: REL9_3_STABLE [4738cc356] 2014-03-12 10:05:46 +0200
6036 Branch: REL9_2_STABLE [91f932cf4] 2014-03-12 10:07:22 +0200
6037 Branch: REL9_1_STABLE [63e59c259] 2014-03-12 10:09:22 +0200
6038 Branch: REL9_0_STABLE [9954e1f03] 2014-03-12 10:09:43 +0200
6039 Branch: REL8_4_STABLE [e2bccdfcc] 2014-03-12 10:10:04 +0200
6044 Restore GIN metapages unconditionally to avoid torn-page risk
6045 (Heikki Linnakangas)
6049 Although this oversight could theoretically result in a corrupted
6050 index, it is unlikely to have caused any problems in practice, since
6051 the active part of a GIN metapage is smaller than a standard 512-byte
6057 Author: Tom Lane <tgl@sss.pgh.pa.us>
6058 Branch: master [7bae0284e] 2014-03-13 12:02:54 -0400
6059 Branch: REL9_3_STABLE [0d11fed8e] 2014-03-13 12:02:56 -0400
6060 Branch: REL9_2_STABLE [bbe9621a9] 2014-03-13 12:03:00 -0400
6061 Branch: REL9_1_STABLE [7bfdf10f5] 2014-03-13 12:03:03 -0400
6062 Branch: REL9_0_STABLE [7aea1050e] 2014-03-13 12:03:07 -0400
6067 Avoid race condition in checking transaction commit status during
6068 receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
6072 This prevents a scenario wherein a sufficiently fast client might
6073 respond to a notification before database updates made by the
6074 notifier have become visible to the recipient.
6079 Author: Tom Lane <tgl@sss.pgh.pa.us>
6080 Branch: master [bf4052faa] 2014-03-06 11:37:02 -0500
6081 Branch: REL9_3_STABLE [3973034e6] 2014-03-06 11:37:04 -0500
6086 Allow materialized views to be referenced in <command>UPDATE</>
6087 and <command>DELETE</> commands (Michael Paquier)
6091 Previously such queries failed with a complaint about not being able
6092 to lock rows in the materialized view.
6097 Author: Tom Lane <tgl@sss.pgh.pa.us>
6098 Branch: master [9662143f0] 2014-03-01 15:20:56 -0500
6099 Branch: REL9_3_STABLE [f5f21315d] 2014-03-01 15:21:00 -0500
6100 Branch: REL9_2_STABLE [03e6423fc] 2014-03-01 15:21:04 -0500
6101 Branch: REL9_1_STABLE [a9eb4924a] 2014-03-01 15:21:07 -0500
6102 Branch: REL9_0_STABLE [43af0e8c6] 2014-03-01 15:21:11 -0500
6103 Branch: REL8_4_STABLE [b6e143458] 2014-03-01 15:21:13 -0500
6108 Allow regular-expression operators to be terminated early by query
6109 cancel requests (Tom Lane)
6113 This prevents scenarios wherein a pathological regular expression
6114 could lock up a server process uninterruptably for a long time.
6119 Author: Tom Lane <tgl@sss.pgh.pa.us>
6120 Branch: master [a222f7fda] 2014-02-18 12:44:20 -0500
6121 Branch: REL9_3_STABLE [0aaa42241] 2014-02-18 12:44:24 -0500
6122 Branch: REL9_2_STABLE [d7cd6a9d5] 2014-02-18 12:44:27 -0500
6123 Branch: REL9_1_STABLE [e6f7fe983] 2014-02-18 12:44:30 -0500
6124 Branch: REL9_0_STABLE [19d66ab05] 2014-02-18 12:44:33 -0500
6125 Branch: REL8_4_STABLE [dd378dd1e] 2014-02-18 12:44:36 -0500
6130 Remove incorrect code that tried to allow <literal>OVERLAPS</> with
6131 single-element row arguments (Joshua Yanovski)
6135 This code never worked correctly, and since the case is neither
6136 specified by the SQL standard nor documented, it seemed better to
6137 remove it than fix it.
6142 Author: Tom Lane <tgl@sss.pgh.pa.us>
6143 Branch: master [7c3187494] 2014-03-06 19:31:05 -0500
6144 Branch: REL9_3_STABLE [f557826f8] 2014-03-06 19:31:09 -0500
6145 Branch: REL9_2_STABLE [5ec41e345] 2014-03-06 19:31:12 -0500
6146 Branch: REL9_1_STABLE [f3e3f6c5b] 2014-03-06 19:31:16 -0500
6147 Branch: REL9_0_STABLE [bed1259e5] 2014-03-06 19:31:19 -0500
6148 Branch: REL8_4_STABLE [f043bddfe] 2014-03-06 19:31:22 -0500
6153 Avoid getting more than <literal>AccessShareLock</> when de-parsing a
6154 rule or view (Dean Rasheed)
6158 This oversight resulted in <application>pg_dump</> unexpectedly
6159 acquiring <literal>RowExclusiveLock</> locks on tables mentioned as
6160 the targets of <literal>INSERT</>/<literal>UPDATE</>/<literal>DELETE</>
6161 commands in rules. While usually harmless, that could interfere with
6162 concurrent transactions that tried to acquire, for example,
6163 <literal>ShareLock</> on those tables.
6168 Author: Tom Lane <tgl@sss.pgh.pa.us>
6169 Branch: master [fccebe421] 2014-02-25 16:04:06 -0500
6170 Branch: REL9_3_STABLE [4162a55c7] 2014-02-25 16:04:09 -0500
6171 Branch: REL9_2_STABLE [00283cae1] 2014-02-25 16:04:12 -0500
6172 Branch: REL9_1_STABLE [3e2db4c80] 2014-02-25 16:04:16 -0500
6173 Branch: REL9_0_STABLE [1e0fb6a2c] 2014-02-25 16:04:20 -0500
6178 Improve performance of index endpoint probes during planning (Tom Lane)
6182 This change fixes a significant performance problem that occurred
6183 when there were many not-yet-committed rows at the end of the index,
6184 which is a common situation for indexes on sequentially-assigned
6185 values such as timestamps or sequence-generated identifiers.
6190 Author: Tom Lane <tgl@sss.pgh.pa.us>
6191 Branch: master [77585bce0] 2014-02-21 17:10:46 -0500
6192 Branch: REL9_3_STABLE [e8655a77f] 2014-02-21 17:10:49 -0500
6197 Use non-default selectivity estimates for
6198 <literal><replaceable>value</> IN (<replaceable>list</>)</literal> and
6199 <literal><replaceable>value</> <replaceable>operator</> ANY
6200 (<replaceable>array</>)</literal>
6201 expressions when the righthand side is a stable expression (Tom Lane)
6206 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6207 Branch: master [2b4f2ab33] 2014-03-05 13:03:29 -0300
6208 Branch: REL9_3_STABLE [13ea43ab8] 2014-03-05 13:03:29 -0300
6213 Remove the correct per-database statistics file during <command>DROP
6214 DATABASE</> (Tomas Vondra)
6218 This fix prevents a permanent leak of statistics file space.
6219 Users who have done many <command>DROP DATABASE</> commands since
6220 upgrading to <productname>PostgreSQL</> 9.3 may wish to check their
6221 statistics directory and delete statistics files that do not
6222 correspond to any existing database. Please note
6223 that <filename>db_0.stat</> should not be removed.
6228 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6229 Branch: master [94ae6ba74] 2014-03-06 21:38:51 +0200
6230 Branch: REL9_3_STABLE [dcd1131c8] 2014-03-06 21:40:50 +0200
6235 Fix <application>walsender</> ping logic to avoid inappropriate
6236 disconnects under continuous load (Andres Freund, Heikki Linnakangas)
6240 <application>walsender</> failed to send ping messages to the client
6241 if it was constantly busy sending WAL data; but it expected to see
6242 ping responses despite that, and would therefore disconnect
6243 once <xref linkend="guc-wal-sender-timeout"> elapsed.
6248 Author: Fujii Masao <fujii@postgresql.org>
6249 Branch: master [5c6d9fc4b] 2014-03-17 20:37:50 +0900
6250 Branch: REL9_3_STABLE [385723405] 2014-03-17 20:41:12 +0900
6251 Branch: REL9_2_STABLE [7899aa356] 2014-03-17 20:41:52 +0900
6252 Branch: REL9_1_STABLE [65e8dbb18] 2014-03-17 20:42:35 +0900
6257 Fix <application>walsender</>'s failure to shut down cleanly when client
6258 is <application>pg_receivexlog</> (Fujii Masao)
6263 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6264 Branch: master [956685f82] 2014-03-05 14:48:14 +0200
6265 Branch: REL9_3_STABLE [a5363a696] 2014-03-05 14:46:56 +0200
6266 Branch: REL9_2_STABLE [e7ec05562] 2014-03-05 14:45:55 +0200
6271 Check WAL level and hot standby parameters correctly when doing crash
6272 recovery that will be followed by archive recovery (Heikki Linnakangas)
6277 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6278 Branch: master [af246c37c] 2014-03-05 13:51:19 +0200
6279 Branch: REL9_3_STABLE [2cd72ba42] 2014-03-05 13:52:21 +0200
6280 Branch: REL9_2_STABLE [931dc26b0] 2014-03-05 13:57:32 +0200
6281 Branch: REL9_1_STABLE [7552d3d1a] 2014-03-05 13:58:14 +0200
6282 Branch: REL9_0_STABLE [4521cc850] 2014-03-05 13:58:22 +0200
6287 Fix test to see if hot standby connections can be allowed immediately
6288 after a crash (Heikki Linnakangas)
6293 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6294 Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
6299 Add read-only <xref linkend="guc-data-checksums"> parameter to
6300 display whether page checksums are enabled (Heikki Linnakangas)
6304 Without this parameter, determining the state of checksum
6305 processing was difficult.
6310 Author: Tom Lane <tgl@sss.pgh.pa.us>
6311 Branch: master [6c461cb92] 2014-03-13 20:59:42 -0400
6312 Branch: REL9_3_STABLE [41bd2cf55] 2014-03-13 20:59:45 -0400
6313 Branch: REL9_2_STABLE [7a289bb6d] 2014-03-13 20:59:48 -0400
6314 Branch: REL9_1_STABLE [f16ca9755] 2014-03-13 20:59:51 -0400
6315 Branch: REL9_0_STABLE [dad55e1e9] 2014-03-13 20:59:55 -0400
6316 Branch: REL8_4_STABLE [172c53e92] 2014-03-13 20:59:57 -0400
6321 Prevent interrupts while reporting non-<literal>ERROR</> messages
6326 This guards against rare server-process freezeups due to recursive
6327 entry to <function>syslog()</>, and perhaps other related problems.
6332 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6333 Branch: master [bd1154ede] 2014-03-16 23:22:21 -0300
6334 Branch: REL9_3_STABLE [60829079d] 2014-03-16 23:22:22 -0300
6335 Branch: REL9_2_STABLE [ba5946e86] 2014-03-16 23:22:22 -0300
6336 Branch: REL9_1_STABLE [f84997c7e] 2014-03-16 23:22:22 -0300
6341 Fix memory leak in PL/Perl when returning a composite result, including
6342 multiple-OUT-parameter cases (Alex Hunsaker)
6347 Author: Tom Lane <tgl@sss.pgh.pa.us>
6348 Branch: master [e85a5ffba] 2014-03-10 15:47:40 -0400
6349 Branch: REL9_3_STABLE [f64f4c370] 2014-03-10 15:47:09 -0400
6350 Branch: REL9_2_STABLE [b315b767f] 2014-03-10 15:47:13 -0400
6355 Fix tracking of <application>psql</> script line numbers
6356 during <literal>\copy</> from out-of-line data
6357 (Kumar Rajeev Rastogi, Amit Khandekar)
6361 <literal>\copy ... from</> incremented the script file line number
6362 for each data line, even if the data was not coming from the script
6363 file. This mistake resulted in wrong line numbers being reported for
6364 any errors occurring later in the same script file.
6369 Author: Tom Lane <tgl@sss.pgh.pa.us>
6370 Branch: master [83204e100] 2014-03-07 16:36:40 -0500
6371 Branch: REL9_3_STABLE [73f0483fd] 2014-03-07 16:36:50 -0500
6376 Fix <application>contrib/postgres_fdw</> to handle multiple join
6377 conditions properly (Tom Lane)
6381 This oversight could result in sending <literal>WHERE</> clauses to
6382 the remote server for execution even though the clauses are not known
6383 to have the same semantics on the remote server (for example, clauses
6384 that use non-built-in operators). The query might succeed anyway,
6385 but it could also fail with errors from the remote server, or worse
6386 give silently wrong answers.
6391 Author: Magnus Hagander <magnus@hagander.net>
6392 Branch: master [7f3e17b48] 2014-02-18 14:45:58 +0100
6393 Branch: REL9_3_STABLE [b88ecb002] 2014-02-18 14:49:41 +0100
6394 Branch: REL9_2_STABLE [062deb313] 2014-02-18 14:50:19 +0100
6395 Branch: REL9_1_STABLE [fae12f331] 2014-03-16 11:46:20 +0100
6396 Branch: REL9_0_STABLE [665515539] 2014-03-16 11:47:37 +0100
6401 Prevent intermittent <quote>could not reserve shared memory region</>
6402 failures on recent Windows versions (MauMau)
6407 Author: Tom Lane <tgl@sss.pgh.pa.us>
6408 Branch: master [aba7f5677] 2014-03-15 13:36:07 -0400
6409 Branch: REL9_3_STABLE [b5de16997] 2014-03-15 13:36:24 -0400
6410 Branch: REL9_2_STABLE [f2063b379] 2014-03-15 13:36:32 -0400
6411 Branch: REL9_1_STABLE [2df1bf21c] 2014-03-15 13:36:41 -0400
6412 Branch: REL9_0_STABLE [0033f5324] 2014-03-15 13:36:49 -0400
6413 Branch: REL8_4_STABLE [6e6c2c2e1] 2014-03-15 13:36:57 -0400
6418 Update time zone data files to <application>tzdata</> release 2014a
6419 for DST law changes in Fiji and Turkey, plus historical changes in
6429 <sect1 id="release-9-3-3">
6430 <title>Release 9.3.3</title>
6433 <title>Release Date</title>
6434 <simpara>2014-02-20</simpara>
6438 This release contains a variety of fixes from 9.3.2.
6439 For information about new features in the 9.3 major release, see
6440 <xref linkend="release-9-3">.
6444 <title>Migration to Version 9.3.3</title>
6447 A dump/restore is not required for those running 9.3.X.
6451 However, several of the issues corrected in this release could have
6452 resulted in corruption of foreign-key constraints; that is, there
6453 might now be referencing rows for which there is no matching row in
6454 the referenced table. It may be worthwhile to recheck such
6455 constraints after installing this update. The simplest way to do that
6456 is to drop and recreate each suspect constraint; however, that will
6457 require taking an exclusive lock on both tables, so it is unlikely to
6458 be acceptable in production databases. Alternatively, you can do a
6459 manual join query between the two tables to look for unmatched rows.
6463 Note also the requirement for replication standby servers to be
6464 upgraded before their master server is upgraded.
6468 Also, if you are upgrading from a version earlier than 9.3.2,
6469 see <xref linkend="release-9-3-2">.
6475 <title>Changes</title>
6480 Author: Noah Misch <noah@leadboat.com>
6481 Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
6482 Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
6483 Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
6484 Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
6485 Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
6486 Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
6491 Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
6496 Granting a role without <literal>ADMIN OPTION</> is supposed to
6497 prevent the grantee from adding or removing members from the granted
6498 role, but this restriction was easily bypassed by doing <literal>SET
6499 ROLE</> first. The security impact is mostly that a role member can
6500 revoke the access of others, contrary to the wishes of his grantor.
6501 Unapproved role member additions are a lesser concern, since an
6502 uncooperative role member could provide most of his rights to others
6503 anyway by creating views or <literal>SECURITY DEFINER</> functions.
6509 Author: Noah Misch <noah@leadboat.com>
6510 Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
6511 Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
6512 Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
6513 Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
6514 Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
6515 Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
6520 Prevent privilege escalation via manual calls to PL validator
6521 functions (Andres Freund)
6525 The primary role of PL validator functions is to be called implicitly
6526 during <command>CREATE FUNCTION</>, but they are also normal SQL
6527 functions that a user can call explicitly. Calling a validator on
6528 a function actually written in some other language was not checked
6529 for and could be exploited for privilege-escalation purposes.
6530 The fix involves adding a call to a privilege-checking function in
6531 each validator function. Non-core procedural languages will also
6532 need to make this change to their own validator functions, if any.
6538 Author: Robert Haas <rhaas@postgresql.org>
6539 Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
6540 Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
6541 Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
6542 Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
6543 Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
6544 Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
6549 Avoid multiple name lookups during table and index DDL
6550 (Robert Haas, Andres Freund)
6554 If the name lookups come to different conclusions due to concurrent
6555 activity, we might perform some parts of the DDL on a different table
6556 than other parts. At least in the case of <command>CREATE INDEX</>,
6557 this can be used to cause the permissions checks to be performed
6558 against a different table than the index creation, allowing for a
6559 privilege escalation attack.
6565 Author: Noah Misch <noah@leadboat.com>
6566 Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
6567 Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
6568 Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
6569 Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
6570 Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
6571 Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
6576 Prevent buffer overrun with long datetime strings (Noah Misch)
6580 The <literal>MAXDATELEN</> constant was too small for the longest
6581 possible value of type <type>interval</>, allowing a buffer overrun
6582 in <function>interval_out()</>. Although the datetime input
6583 functions were more careful about avoiding buffer overrun, the limit
6584 was short enough to cause them to reject some valid inputs, such as
6585 input containing a very long timezone name. The <application>ecpg</>
6586 library contained these vulnerabilities along with some of its own.
6592 Author: Noah Misch <noah@leadboat.com>
6593 Branch: master [31400a673] 2014-02-17 09:33:31 -0500
6594 Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
6595 Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
6596 Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
6597 Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
6598 Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
6603 Prevent buffer overrun due to integer overflow in size calculations
6604 (Noah Misch, Heikki Linnakangas)
6608 Several functions, mostly type input functions, calculated an
6609 allocation size without checking for overflow. If overflow did
6610 occur, a too-small buffer would be allocated and then written past.
6616 Author: Tom Lane <tgl@sss.pgh.pa.us>
6617 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
6618 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
6619 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
6620 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
6621 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
6622 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
6627 Prevent overruns of fixed-size buffers
6628 (Peter Eisentraut, Jozef Mlich)
6632 Use <function>strlcpy()</> and related functions to provide a clear
6633 guarantee that fixed-size buffers are not overrun. Unlike the
6634 preceding items, it is unclear whether these cases really represent
6635 live issues, since in most cases there appear to be previous
6636 constraints on the size of the input string. Nonetheless it seems
6637 prudent to silence all Coverity warnings of this type.
6643 Author: Tom Lane <tgl@sss.pgh.pa.us>
6644 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
6645 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
6646 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
6647 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
6648 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
6649 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
6654 Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
6659 There are relatively few scenarios in which <function>crypt()</>
6660 could return NULL, but <filename>contrib/chkpass</> would crash
6661 if it did. One practical case in which this could be an issue is
6662 if <application>libc</> is configured to refuse to execute unapproved
6663 hashing algorithms (e.g., <quote>FIPS mode</>).
6669 Author: Tom Lane <tgl@sss.pgh.pa.us>
6670 Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
6671 Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
6672 Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
6673 Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
6674 Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
6675 Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
6680 Document risks of <literal>make check</> in the regression testing
6681 instructions (Noah Misch, Tom Lane)
6685 Since the temporary server started by <literal>make check</>
6686 uses <quote>trust</> authentication, another user on the same machine
6687 could connect to it as database superuser, and then potentially
6688 exploit the privileges of the operating-system user who started the
6689 tests. A future release will probably incorporate changes in the
6690 testing procedure to prevent this risk, but some public discussion is
6691 needed first. So for the moment, just warn people against using
6692 <literal>make check</> when there are untrusted users on the
6699 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6700 Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
6701 Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
6706 Rework tuple freezing protocol
6707 (Álvaro Herrera, Andres Freund)
6711 The logic for tuple freezing was unable to handle some cases involving
6713 <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
6714 IDs</link>, with the practical effect that shared row-level locks
6715 might be forgotten once old enough.
6719 Fixing this required changing the WAL record format for tuple
6720 freezing. While this is no issue for standalone servers, when using
6721 replication it means that <emphasis>standby servers must be upgraded
6722 to 9.3.3 or later before their masters are</>. An older standby will
6723 be unable to interpret freeze records generated by a newer master, and
6724 will fail with a PANIC message. (In such a case, upgrading the
6725 standby should be sufficient to let it resume execution.)
6730 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6731 Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
6732 Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
6737 Create separate GUC parameters to control multixact freezing
6738 (Álvaro Herrera)
6742 9.3 requires multixact tuple labels to be frozen before
6743 they grow too old, in the same fashion as plain transaction ID labels
6744 have been frozen for some time. Previously, the transaction ID
6745 freezing parameters were used for multixact IDs too; but since
6746 the consumption rates of transaction IDs and multixact IDs can be
6747 quite different, this did not work very well. Introduce new settings
6748 <xref linkend="guc-vacuum-multixact-freeze-min-age">,
6749 <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
6750 <xref linkend="guc-autovacuum-multixact-freeze-max-age">
6751 to control when to freeze multixacts.
6756 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6757 Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
6758 Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
6763 Account for remote row locks propagated by local updates
6764 (Álvaro Herrera)
6768 If a row was locked by transaction A, and transaction B updated it,
6769 the new version of the row created by B would be locked by A, yet
6770 visible only to B. If transaction B then again updated the row, A's
6771 lock wouldn't get checked, thus possibly allowing B to complete when
6772 it shouldn't. This case is new in 9.3 since prior versions did not
6773 have any types of row locking that would permit another transaction
6774 to update the row at all.
6778 This oversight could allow referential integrity checks to give false
6779 positives (for instance, allow deletes that should have been rejected).
6780 Applications using the new commands <literal>SELECT FOR KEY SHARE</>
6781 and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
6782 locking failures of this kind.
6787 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6788 Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
6789 Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
6794 Prevent <quote>forgetting</> valid row locks when one of several
6795 holders of a row lock aborts (Álvaro Herrera)
6799 This was yet another mechanism by which a shared row lock could be
6800 lost, thus possibly allowing updates that should have been prevented
6801 by foreign-key constraints.
6806 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6807 Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
6808 Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
6813 Fix incorrect logic during update chain locking
6814 (Álvaro Herrera)
6818 This mistake could result in spurious <quote>could not serialize access
6819 due to concurrent update</> errors in <literal>REPEATABLE READ</>
6820 and <literal>SERIALIZABLE</> transaction isolation modes.
6825 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6826 Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
6827 Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
6832 Handle wraparound correctly during extension or truncation
6833 of <filename>pg_multixact/members</>
6834 (Andres Freund, Álvaro Herrera)
6839 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6840 Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
6841 Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
6846 Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
6847 (Álvaro Herrera)
6851 As of 9.3, these names can be more than 4 digits, but the directory
6852 cleanup code ignored such files.
6857 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6858 Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
6859 Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
6864 Improve performance of multixact cache code
6865 (Álvaro Herrera)
6870 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6871 Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
6872 Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
6877 Optimize updating a row that's already locked by the same transaction
6878 (Andres Freund, Álvaro Herrera)
6882 This fixes a performance regression from pre-9.3 versions when doing
6883 <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
6888 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6889 Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
6890 Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
6895 During archive recovery, prefer highest timeline number when WAL
6896 segments with the same ID are present in both the archive
6897 and <filename>pg_xlog/</> (Kyotaro Horiguchi)
6901 Previously, not-yet-archived segments could get ignored during
6902 recovery. This reverts an undesirable behavioral change in 9.3.0
6903 back to the way things worked pre-9.3.
6908 Author: Tom Lane <tgl@sss.pgh.pa.us>
6909 Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
6910 Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
6911 Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
6912 Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
6913 Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
6914 Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
6919 Fix possible mis-replay of WAL records when some segments of a
6920 relation aren't full size (Greg Stark, Tom Lane)
6924 The WAL update could be applied to the wrong page, potentially many
6925 pages past where it should have been. Aside from corrupting data,
6926 this error has been observed to result in significant <quote>bloat</>
6927 of standby servers compared to their masters, due to updates being
6928 applied far beyond where the end-of-file should have been. This
6929 failure mode does not appear to be a significant risk during crash
6930 recovery, only when initially synchronizing a standby created from a
6931 base backup taken from a quickly-changing master.
6936 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6937 Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
6938 Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
6939 Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
6940 Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
6941 Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
6946 Fix bug in determining when recovery has reached consistency
6947 (Tomonari Katsumata, Heikki Linnakangas)
6951 In some cases WAL replay would mistakenly conclude that the database
6952 was already consistent at the start of replay, thus possibly allowing
6953 hot-standby queries before the database was really consistent. Other
6954 symptoms such as <quote>PANIC: WAL contains references to invalid
6955 pages</> were also possible.
6960 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6961 Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
6962 Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
6967 Fix WAL logging of visibility map changes (Heikki Linnakangas)
6972 Author: Tom Lane <tgl@sss.pgh.pa.us>
6973 Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
6974 Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
6975 Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
6976 Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
6977 Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
6982 Fix improper locking of btree index pages while replaying
6983 a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
6984 Heikki Linnakangas, Tom Lane)
6988 This error could result in <quote>PANIC: WAL contains references to
6989 invalid pages</> failures.
6994 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6995 Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
6996 Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
6997 Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
6998 Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
6999 Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
7000 Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
7005 Ensure that insertions into non-leaf GIN index pages write a full-page
7006 WAL record when appropriate (Heikki Linnakangas)
7010 The previous coding risked index corruption in the event of a
7011 partial-page write during a system crash.
7016 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7017 Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
7018 Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
7019 Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
7020 Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
7025 When <literal>pause_at_recovery_target</>
7026 and <literal>recovery_target_inclusive</> are both set, ensure the
7027 target record is applied before pausing, not after (Heikki
7033 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7034 Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
7035 Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
7040 Ensure walreceiver sends hot-standby feedback messages on time even
7041 when there is a continuous stream of data (Andres Freund, Amit
7047 Author: Tom Lane <tgl@sss.pgh.pa.us>
7048 Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
7049 Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
7054 Prevent timeout interrupts from taking control away from mainline
7055 code unless <varname>ImmediateInterruptOK</> is set
7056 (Andres Freund, Tom Lane)
7060 This is a serious issue for any application making use of statement
7061 timeouts, as it could cause all manner of strange failures after a
7062 timeout occurred. We have seen reports of <quote>stuck</> spinlocks,
7063 ERRORs being unexpectedly promoted to PANICs, unkillable backends,
7064 and other misbehaviors.
7069 Author: Robert Haas <rhaas@postgresql.org>
7070 Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
7071 Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
7072 Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
7073 Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
7074 Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
7075 Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
7080 Fix race conditions during server process exit (Robert Haas)
7084 Ensure that signal handlers don't attempt to use the
7085 process's <varname>MyProc</> pointer after it's no longer valid.
7090 Author: Tom Lane <tgl@sss.pgh.pa.us>
7091 Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
7092 Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
7093 Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
7094 Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
7099 Fix race conditions in walsender shutdown logic and walreceiver
7100 SIGHUP signal handler (Tom Lane)
7105 Author: Tom Lane <tgl@sss.pgh.pa.us>
7106 Branch: master [571addd72] 2014-01-29 20:04:43 -0500
7107 Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
7108 Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
7109 Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
7110 Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
7111 Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
7116 Fix unsafe references to <varname>errno</> within error reporting
7117 logic (Christian Kruse)
7121 This would typically lead to odd behaviors such as missing or
7122 inappropriate <literal>HINT</> fields.
7127 Author: Tom Lane <tgl@sss.pgh.pa.us>
7128 Branch: master [910bac595] 2014-01-11 16:36:07 -0500
7129 Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
7130 Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
7131 Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
7132 Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
7133 Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
7138 Fix possible crashes from using <function>ereport()</> too early
7139 during server startup (Tom Lane)
7143 The principal case we've seen in the field is a crash if the server
7144 is started in a directory it doesn't have permission to read.
7149 Author: Tom Lane <tgl@sss.pgh.pa.us>
7150 Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
7151 Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
7152 Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
7153 Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
7154 Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
7155 Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
7160 Clear retry flags properly in OpenSSL socket write
7161 function (Alexander Kukushkin)
7165 This omission could result in a server lockup after unexpected loss
7166 of an SSL-encrypted connection.
7171 Author: Tom Lane <tgl@sss.pgh.pa.us>
7172 Branch: master [44c216330] 2014-02-13 14:24:42 -0500
7173 Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
7174 Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
7175 Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
7176 Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
7177 Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
7182 Fix length checking for Unicode identifiers (<literal>U&"..."</>
7183 syntax) containing escapes (Tom Lane)
7187 A spurious truncation warning would be printed for such identifiers
7188 if the escaped form of the identifier was too long, but the
7189 identifier actually didn't need truncation after de-escaping.
7194 Author: Tom Lane <tgl@sss.pgh.pa.us>
7195 Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
7196 Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
7201 Fix parsing of Unicode literals and identifiers just before the end
7202 of a command string or function body (Tom Lane)
7207 Author: Stephen Frost <sfrost@snowman.net>
7208 Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
7209 Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
7210 Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
7211 Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
7212 Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
7217 Allow keywords that are type names to be used in lists of roles
7222 A previous patch allowed such keywords to be used without quoting
7223 in places such as role identifiers; but it missed cases where a
7224 list of role identifiers was permitted, such as <literal>DROP ROLE</>.
7229 Author: Tom Lane <tgl@sss.pgh.pa.us>
7230 Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
7231 Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
7232 Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
7233 Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
7238 Fix parser crash for <literal>EXISTS(SELECT * FROM
7239 zero_column_table)</literal> (Tom Lane)
7244 Author: Tom Lane <tgl@sss.pgh.pa.us>
7245 Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
7246 Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
7247 Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
7248 Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
7249 Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
7250 Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
7255 Fix possible crash due to invalid plan for nested sub-selects, such
7256 as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
7262 Author: Tom Lane <tgl@sss.pgh.pa.us>
7263 Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
7264 Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
7269 Fix mishandling of <literal>WHERE</> conditions pulled up from
7270 a <literal>LATERAL</> subquery (Tom Lane)
7274 The typical symptom of this bug was a <quote>JOIN qualification
7275 cannot refer to other relations</> error, though subtle logic
7276 errors in created plans seem possible as well.
7281 Author: Tom Lane <tgl@sss.pgh.pa.us>
7282 Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
7283 Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
7288 Disallow <literal>LATERAL</> references to the target table of
7289 an <literal>UPDATE/DELETE</> (Tom Lane)
7293 While this might be allowed in some future release, it was
7294 unintentional in 9.3, and didn't work quite right anyway.
7299 Author: Tom Lane <tgl@sss.pgh.pa.us>
7300 Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
7301 Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
7302 Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
7307 Fix <literal>UPDATE/DELETE</> of an inherited target table
7308 that has <literal>UNION ALL</> subqueries (Tom Lane)
7312 Without this fix, <literal>UNION ALL</> subqueries aren't correctly
7313 inserted into the update plans for inheritance child tables after the
7314 first one, typically resulting in no update happening for those child
7320 Author: Tom Lane <tgl@sss.pgh.pa.us>
7321 Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
7322 Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
7327 Fix <command>ANALYZE</> to not fail on a column that's a domain over
7328 a range type (Tom Lane)
7333 Author: Tom Lane <tgl@sss.pgh.pa.us>
7334 Branch: master [628652620] 2014-01-11 13:42:42 -0500
7335 Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
7336 Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
7337 Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
7338 Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
7339 Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
7344 Ensure that <command>ANALYZE</> creates statistics for a table column
7345 even when all the values in it are <quote>too wide</> (Tom Lane)
7349 <command>ANALYZE</> intentionally omits very wide values from its
7350 histogram and most-common-values calculations, but it neglected to do
7351 something sane in the case that all the sampled entries are too wide.
7356 Author: Stephen Frost <sfrost@snowman.net>
7357 Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
7358 Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
7359 Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
7360 Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
7361 Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
7362 Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
7367 In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
7368 default tablespace to be used without a permissions check
7373 <literal>CREATE TABLE</> has always allowed such usage,
7374 but <literal>ALTER TABLE</> didn't get the memo.
7379 Author: Tom Lane <tgl@sss.pgh.pa.us>
7380 Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
7381 Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
7386 Fix support for extensions containing event triggers (Tom Lane)
7391 Author: Tom Lane <tgl@sss.pgh.pa.us>
7392 Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
7393 Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
7394 Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
7395 Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
7396 Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
7397 Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
7402 Fix <quote>cannot accept a set</> error when some arms of
7403 a <literal>CASE</> return a set and others don't (Tom Lane)
7408 Author: Andrew Dunstan <andrew@dunslane.net>
7409 Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
7410 Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
7415 Fix memory leakage in JSON functions (Craig Ringer)
7420 Author: Andrew Dunstan <andrew@dunslane.net>
7421 Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
7422 Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
7423 Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
7428 Properly distinguish numbers from non-numbers when generating JSON
7429 output (Andrew Dunstan)
7434 Author: Kevin Grittner <kgrittn@postgresql.org>
7435 Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
7436 Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
7437 Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
7438 Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
7439 Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
7440 Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
7445 Fix checks for all-zero client addresses in pgstat functions (Kevin
7451 Author: Tom Lane <tgl@sss.pgh.pa.us>
7452 Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
7453 Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
7454 Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
7455 Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
7456 Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
7457 Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
7462 Fix possible misclassification of multibyte characters by the text
7463 search parser (Tom Lane)
7467 Non-ASCII characters could be misclassified when using C locale with
7468 a multibyte encoding. On Cygwin, non-C locales could fail as well.
7473 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7474 Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
7475 Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
7476 Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
7477 Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
7478 Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
7479 Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
7484 Fix possible misbehavior in <function>plainto_tsquery()</>
7485 (Heikki Linnakangas)
7489 Use <function>memmove()</> not <function>memcpy()</> for copying
7490 overlapping memory regions. There have been no field reports of
7491 this actually causing trouble, but it's certainly risky.
7496 Author: Magnus Hagander <magnus@hagander.net>
7497 Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
7498 Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
7499 Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
7500 Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
7505 Fix placement of permissions checks in <function>pg_start_backup()</>
7506 and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
7510 The previous coding might attempt to do catalog access when it
7516 Author: Tatsuo Ishii <ishii@postgresql.org>
7517 Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
7518 Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
7519 Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
7520 Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
7521 Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
7522 Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
7527 Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
7528 purposes (Tatsuo Ishii)
7533 Author: Tom Lane <tgl@sss.pgh.pa.us>
7534 Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
7535 Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
7536 Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
7541 Fix <literal>*</>-qualification of named parameters in SQL-language
7542 functions (Tom Lane)
7546 Given a composite-type parameter
7547 named <literal>foo</>, <literal>$1.*</> worked fine,
7548 but <literal>foo.*</> not so much.
7553 Author: Fujii Masao <fujii@postgresql.org>
7554 Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
7555 Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
7556 Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
7557 Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
7558 Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
7559 Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
7564 Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
7568 It should return <literal>localhost</> if no host has been specified.
7573 Author: Tom Lane <tgl@sss.pgh.pa.us>
7574 Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
7575 Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
7576 Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
7577 Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
7578 Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
7579 Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
7584 Improve error handling in <application>libpq</> and <application>psql</>
7585 for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
7589 In particular this fixes an infinite loop that could occur in 9.2 and
7590 up if the server connection was lost during <literal>COPY FROM
7591 STDIN</>. Variants of that scenario might be possible in older
7592 versions, or with other client applications.
7597 Author: Tom Lane <tgl@sss.pgh.pa.us>
7598 Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
7599 Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
7600 Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
7605 Fix incorrect translation handling in
7606 some <application>psql</> <literal>\d</> commands
7607 (Peter Eisentraut, Tom Lane)
7612 Author: Magnus Hagander <magnus@hagander.net>
7613 Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
7614 Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
7615 Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
7620 Ensure <application>pg_basebackup</>'s background process is killed
7621 when exiting its foreground process (Magnus Hagander)
7626 Author: Magnus Hagander <magnus@hagander.net>
7627 Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
7628 Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
7629 Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
7630 Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
7635 Fix possible incorrect printing of filenames
7636 in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
7641 Author: Magnus Hagander <magnus@hagander.net>
7642 Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
7643 Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
7644 Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
7645 Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
7650 Avoid including tablespaces inside PGDATA twice in base backups
7651 (Dimitri Fontaine, Magnus Hagander)
7656 Author: Michael Meskes <meskes@postgresql.org>
7657 Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
7658 Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
7659 Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
7660 Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
7661 Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
7662 Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
7667 Fix misaligned descriptors in <application>ecpg</> (MauMau)
7672 Author: Michael Meskes <meskes@postgresql.org>
7673 Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
7674 Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
7675 Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
7676 Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
7677 Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
7678 Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
7683 In <application>ecpg</>, handle lack of a hostname in the connection
7684 parameters properly (Michael Meskes)
7689 Author: Joe Conway <mail@joeconway.com>
7690 Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
7691 Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
7692 Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
7693 Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
7694 Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
7695 Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
7700 Fix performance regression in <filename>contrib/dblink</> connection
7701 startup (Joe Conway)
7705 Avoid an unnecessary round trip when client and server encodings match.
7710 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7711 Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
7712 Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
7713 Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
7714 Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
7715 Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
7716 Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
7721 In <filename>contrib/isn</>, fix incorrect calculation of the check
7722 digit for ISMN values (Fabien Coelho)
7727 Author: Tatsuo Ishii <ishii@postgresql.org>
7728 Branch: master [841a65482] 2013-12-12 19:10:35 +0900
7729 Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
7734 Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
7735 when the scale factor is large (Tatsuo Ishii)
7740 Author: Tom Lane <tgl@sss.pgh.pa.us>
7741 Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
7742 Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
7743 Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
7748 Fix <filename>contrib/pg_stat_statement</>'s handling
7749 of <literal>CURRENT_DATE</> and related constructs (Kyotaro
7755 Author: Tom Lane <tgl@sss.pgh.pa.us>
7756 Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
7757 Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
7762 Improve lost-connection error handling
7763 in <filename>contrib/postgres_fdw</> (Tom Lane)
7768 Author: Peter Eisentraut <peter_e@gmx.net>
7769 Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
7770 Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
7771 Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
7772 Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
7773 Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
7774 Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
7779 Ensure client-code-only installation procedure works as documented
7785 Author: Andrew Dunstan <andrew@dunslane.net>
7786 Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
7787 Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
7788 Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
7789 Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
7790 Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
7791 Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
7796 In Mingw and Cygwin builds, install the <application>libpq</> DLL
7797 in the <filename>bin</> directory (Andrew Dunstan)
7801 This duplicates what the MSVC build has long done. It should fix
7802 problems with programs like <application>psql</> failing to start
7803 because they can't find the DLL.
7808 Author: Andrew Dunstan <andrew@dunslane.net>
7809 Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
7810 Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
7811 Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
7812 Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
7813 Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
7818 Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
7824 Author: Andrew Dunstan <andrew@dunslane.net>
7825 Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
7826 Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
7831 Enable building with Visual Studio 2013 (Brar Piening)
7836 Author: Tom Lane <tgl@sss.pgh.pa.us>
7837 Branch: master [289541520] 2014-02-10 20:48:04 -0500
7838 Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
7839 Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
7840 Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
7841 Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
7842 Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
7847 Don't generate plain-text <filename>HISTORY</>
7848 and <filename>src/test/regress/README</> files anymore (Tom Lane)
7852 These text files duplicated the main HTML and PDF documentation
7853 formats. The trouble involved in maintaining them greatly outweighs
7854 the likely audience for plain-text format. Distribution tarballs
7855 will still contain files by these names, but they'll just be stubs
7856 directing the reader to consult the main documentation.
7857 The plain-text <filename>INSTALL</> file will still be maintained, as
7858 there is arguably a use-case for that.
7863 Author: Tom Lane <tgl@sss.pgh.pa.us>
7864 Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
7865 Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
7866 Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
7867 Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
7868 Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
7869 Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
7874 Update time zone data files to <application>tzdata</> release 2013i
7875 for DST law changes in Jordan and historical changes in Cuba.
7879 In addition, the zones <literal>Asia/Riyadh87</>,
7880 <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
7881 removed, as they are no longer maintained by IANA, and never
7882 represented actual civil timekeeping practice.
7891 <sect1 id="release-9-3-2">
7892 <title>Release 9.3.2</title>
7895 <title>Release Date</title>
7896 <simpara>2013-12-05</simpara>
7900 This release contains a variety of fixes from 9.3.1.
7901 For information about new features in the 9.3 major release, see
7902 <xref linkend="release-9-3">.
7906 <title>Migration to Version 9.3.2</title>
7909 A dump/restore is not required for those running 9.3.X.
7913 However, this release corrects a number of potential data corruption
7914 issues. See the first three changelog entries below to find out whether
7915 your installation has been affected and what steps you can take if so.
7919 Also, if you are upgrading from a version earlier than 9.3.1,
7920 see <xref linkend="release-9-3-1">.
7926 <title>Changes</title>
7932 Fix <command>VACUUM</>'s tests to see whether it can
7933 update <structfield>relfrozenxid</> (Andres Freund)
7937 In some cases <command>VACUUM</> (either manual or autovacuum) could
7938 incorrectly advance a table's <structfield>relfrozenxid</> value,
7939 allowing tuples to escape freezing, causing those rows to become
7940 invisible once 2^31 transactions have elapsed. The probability of
7941 data loss is fairly low since multiple incorrect advancements would
7942 need to happen before actual loss occurs, but it's not zero. In 9.2.0
7943 and later, the probability of loss is higher, and it's also possible
7944 to get <quote>could not access status of transaction</> errors as a
7945 consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8
7946 or earlier are not affected, but all later versions contain the bug.
7950 The issue can be ameliorated by, after upgrading, vacuuming all tables
7951 in all databases while having <link
7952 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
7953 set to zero. This will fix any latent corruption but will not be able
7954 to fix all pre-existing data errors. However, an installation can be
7955 presumed safe after performing this vacuuming if it has executed fewer
7956 than 2^31 update transactions in its lifetime (check this with
7957 <literal>SELECT txid_current() < 2^31</>).
7963 Fix multiple bugs in MultiXactId freezing (Andres Freund,
7964 Álvaro Herrera)
7968 These bugs could lead to <quote>could not access status of
7969 transaction</> errors, or to duplicate or vanishing rows.
7970 Users upgrading from releases prior to 9.3.0 are not affected.
7974 The issue can be ameliorated by, after upgrading, vacuuming all tables
7975 in all databases while having <link
7976 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
7977 set to zero. This will fix latent corruption but will not be able to
7978 fix all pre-existing data errors.
7982 As a separate issue, these bugs can also cause standby servers to get
7983 out of sync with the primary, thus exhibiting data errors that are not
7984 in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1
7985 standby servers be re-cloned from the primary (e.g., with a new base
7986 backup) after upgrading.
7992 Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
7993 during hot standby startup (Andres Freund, Heikki Linnakangas)
7997 This bug can cause data loss on standby servers at the moment they
7998 start to accept hot-standby queries, by marking committed transactions
7999 as uncommitted. The likelihood of such corruption is small unless, at
8000 the time of standby startup, the primary server has executed many
8001 updating transactions since its last checkpoint. Symptoms include
8002 missing rows, rows that should have been deleted being still visible,
8003 and obsolete versions of updated rows being still visible alongside
8004 their newer versions.
8008 This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
8009 Standby servers that have only been running earlier releases are not
8010 at risk. It's recommended that standby servers that have ever run any
8011 of the buggy releases be re-cloned from the primary (e.g., with a new
8012 base backup) after upgrading.
8018 Fix multiple bugs in update chain traversal (Andres Freund,
8019 Álvaro Herrera)
8023 These bugs could result in incorrect behavior, such as locking or even
8024 updating the wrong row, in the presence of concurrent updates.
8025 Spurious <quote>unable to fetch updated version of tuple</> errors
8032 Fix dangling-pointer problem in fast-path locking (Tom Lane)
8036 This could lead to corruption of the lock data structures in shared
8037 memory, causing <quote>lock already held</> and other odd errors.
8043 Fix assorted race conditions in timeout management (Tom Lane)
8047 These errors could result in a server process becoming unresponsive
8048 because it had blocked SIGALRM and/or SIGINT.
8054 Truncate <filename>pg_multixact</> contents during WAL replay
8059 This avoids ever-increasing disk space consumption in standby servers.
8065 Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
8066 when it's only verified that no tuples need freezing (Sergey
8067 Burladyan, Jeff Janes)
8071 This bug could result in failing to
8072 advance <structfield>relfrozenxid</>, so that the table would still be
8073 thought to need another anti-wraparound vacuum. In the worst case the
8074 database might even shut down to prevent wraparound.
8080 Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
8084 This bug could result in large amounts of useless autovacuum activity.
8090 Fix race condition in GIN index posting tree page deletion (Heikki
8095 This could lead to transient wrong answers or query failures.
8101 Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
8102 index creation (Teodor Sigaev)
8108 Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
8114 Re-allow duplicate table aliases if they're within aliased JOINs
8119 Historically <productname>PostgreSQL</> has accepted queries like
8121 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
8123 although a strict reading of the SQL standard would forbid the
8124 duplicate usage of table alias <literal>x</>. A misguided change in
8125 9.3.0 caused it to reject some such cases that were formerly accepted.
8126 Restore the previous behavior.
8132 Avoid flattening a subquery whose <literal>SELECT</> list contains a
8133 volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
8137 This avoids unexpected results due to extra evaluations of the
8144 Fix planner's processing of non-simple-variable subquery outputs
8145 nested within outer joins (Tom Lane)
8149 This error could lead to incorrect plans for queries involving
8150 multiple levels of subqueries within <literal>JOIN</> syntax.
8156 Fix incorrect planning in cases where the same non-strict expression
8157 appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
8158 equality clauses (Tom Lane)
8164 Fix planner crash with whole-row reference to a subquery (Tom Lane)
8170 Fix incorrect generation of optimized MIN()/MAX() plans for
8171 inheritance trees (Tom Lane)
8175 The planner could fail in cases where the MIN()/MAX() argument was an
8176 expression rather than a simple variable.
8182 Fix premature deletion of temporary files (Andres Freund)
8188 Prevent intra-transaction memory leak when printing range values
8193 This fix actually cures transient memory leaks in any datatype output
8194 function, but range types are the only ones known to have had a
8195 significant problem.
8201 Fix memory leaks when reloading configuration files (Heikki
8202 Linnakangas, Hari Babu)
8208 Prevent incorrect display of dropped columns in NOT NULL and CHECK
8209 constraint violation messages (Michael Paquier and Tom Lane)
8215 Allow default arguments and named-argument notation for window
8216 functions (Tom Lane)
8220 Previously, these cases were likely to crash.
8226 Suppress trailing whitespace on each line when pretty-printing rules
8227 and views (Tom Lane)
8231 9.3.0 generated such whitespace in many more cases than previous
8232 versions did. To reduce unexpected behavioral changes, suppress
8233 unnecessary whitespace in all cases.
8239 Fix possible read past end of memory in rule printing (Peter Eisentraut)
8245 Fix array slicing of <type>int2vector</> and <type>oidvector</> values
8250 Expressions of this kind are now implicitly promoted to
8251 regular <type>int2</> or <type>oid</> arrays.
8257 Return a valid JSON value when converting an empty <type>hstore</> value
8265 Fix incorrect behaviors when using a SQL-standard, simple GMT offset
8270 In some cases, the system would use the simple GMT offset value when
8271 it should have used the regular timezone setting that had prevailed
8272 before the simple offset was selected. This change also causes
8273 the <function>timeofday</> function to honor the simple GMT offset
8280 Prevent possible misbehavior when logging translations of Windows
8281 error codes (Tom Lane)
8287 Properly quote generated command lines in <application>pg_ctl</>
8288 (Naoya Anzai and Tom Lane)
8292 This fix applies only to Windows.
8298 Fix <application>pg_dumpall</> to work when a source database
8300 linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
8301 via <command>ALTER DATABASE SET</> (Kevin Grittner)
8305 Previously, the generated script would fail during restore.
8311 Fix <application>pg_isready</> to handle its <option>-d</> option
8312 properly (Fabrízio de Royes Mello and Fujii Masao)
8318 Fix parsing of WAL file names in <application>pg_receivexlog</>
8319 (Heikki Linnakangas)
8323 This error made <application>pg_receivexlog</> unable to restart
8324 streaming after stopping, once at least 4 GB of WAL had been written.
8330 Report out-of-disk-space failures properly
8331 in <application>pg_upgrade</> (Peter Eisentraut)
8337 Make <application>ecpg</> search for quoted cursor names
8338 case-sensitively (Zoltán Böszörményi)
8344 Fix <application>ecpg</>'s processing of lists of variables
8345 declared <type>varchar</> (Zoltán Böszörményi)
8351 Make <filename>contrib/lo</> defend against incorrect trigger definitions
8358 Update time zone data files to <application>tzdata</> release 2013h
8359 for DST law changes in Argentina, Brazil, Jordan, Libya,
8360 Liechtenstein, Morocco, and Palestine. Also, new timezone
8361 abbreviations WIB, WIT, WITA for Indonesia.
8370 <sect1 id="release-9-3-1">
8371 <title>Release 9.3.1</title>
8374 <title>Release Date</title>
8375 <simpara>2013-10-10</simpara>
8379 This release contains a variety of fixes from 9.3.0.
8380 For information about new features in the 9.3 major release, see
8381 <xref linkend="release-9-3">.
8385 <title>Migration to Version 9.3.1</title>
8388 A dump/restore is not required for those running 9.3.X.
8392 However, if you use the <literal>hstore</> extension, see the
8393 first changelog entry.
8399 <title>Changes</title>
8405 Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
8406 extension during an update (Andrew Dunstan)
8410 Users who upgraded a pre-9.3 database containing <literal>hstore</>
8413 ALTER EXTENSION hstore UPDATE;
8415 after installing 9.3.1, to add two new JSON functions and a cast.
8416 (If <literal>hstore</> is already up to date, this command does
8423 Fix memory leak when creating B-tree indexes on range columns
8424 (Heikki Linnakangas)
8430 Fix memory leak caused by <function>lo_open()</function> failure
8431 (Heikki Linnakangas)
8437 Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
8443 Fix deadlock bug in libpq when using SSL (Stephen Frost)
8449 Fix timeline handling bugs in <application>pg_receivexlog</>
8450 (Heikki Linnakangas, Andrew Gierth)
8456 Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
8457 variables unless function body checking is enabled (Tom Lane)
8463 Remove rare inaccurate warning during vacuum of index-less tables
8464 (Heikki Linnakangas)
8473 <sect1 id="release-9-3">
8474 <title>Release 9.3</title>
8477 <title>Release Date</title>
8478 <simpara>2013-09-09</simpara>
8482 <title>Overview</title>
8485 Major enhancements in <productname>PostgreSQL</> 9.3 include:
8488 <!-- This list duplicates items below, but without authors or details-->
8494 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
8501 Make simple views <link
8502 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
8508 Add many features for the <type>JSON</> data type,
8509 including <link linkend="functions-json">operators and functions</link>
8510 to extract elements from <type>JSON</> values
8516 Implement <acronym>SQL</>-standard <link
8517 linkend="queries-lateral"><literal>LATERAL</></link> option for
8518 <literal>FROM</>-clause subqueries and function calls
8524 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
8525 wrappers</link> to support writes (inserts/updates/deletes) on foreign
8532 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
8533 data wrapper</link> to allow access to
8534 other <productname>Postgres</> servers
8540 Add support for <link linkend="event-triggers">event triggers</link>
8546 Add optional ability to <link
8547 linkend="app-initdb-data-checksums">checksum</link> data pages and
8554 Prevent non-key-field row updates from blocking foreign key checks
8560 Greatly reduce System V <link linkend="sysvipc">shared
8561 memory</link> requirements
8568 The above items are explained in more detail in the sections below.
8575 <title>Migration to Version 9.3</title>
8578 A dump/restore using <link
8579 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
8580 of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
8581 required for those wishing to migrate data from any previous release.
8585 Version 9.3 contains a number of changes that may affect compatibility
8586 with previous releases. Observe the following incompatibilities:
8590 <title>Server Settings</title>
8596 Rename <varname>replication_timeout</> to <link
8597 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
8602 This setting controls the <link
8603 linkend="wal"><acronym>WAL</></link> sender timeout.
8609 Require superuser privileges to set <link
8610 linkend="guc-commit-delay"><varname>commit_delay</></link>
8611 because it can now potentially delay other sessions (Simon Riggs)
8617 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
8621 Users who have set <link
8622 linkend="guc-work-mem"><varname>work_mem</></link> based on the
8623 previous behavior may need to revisit that setting.
8632 <title>Other</title>
8638 Throw an error if a tuple to be updated or deleted has already been
8639 updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
8643 Formerly, the originally-intended update was silently skipped,
8644 resulting in logical inconsistency since the trigger might have
8645 propagated data to other places based on the intended update.
8646 Now an error is thrown to prevent the inconsistent results from being
8647 committed. If this change affects your application, the best solution
8648 is usually to move the data-propagation actions to
8649 an <literal>AFTER</> trigger.
8653 This error will also be thrown if a query invokes a volatile function
8654 that modifies rows that are later modified by the query itself.
8655 Such cases likewise previously resulted in silently skipping updates.
8661 Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
8662 SET NULL/SET DEFAULT</></link> foreign key actions to affect
8663 all columns of the constraint, not just those changed in the
8664 <command>UPDATE</> (Tom Lane)
8668 Previously, we would set only those referencing columns that
8669 correspond to referenced columns that were changed by
8670 the <command>UPDATE</>. This was what was required by SQL-92,
8671 but more recent editions of the SQL standard specify the new behavior.
8677 Force cached plans to be replanned if the <link
8678 linkend="guc-search-path"><varname>search_path</></link> changes
8683 Previously, cached plans already generated in the current session were
8684 not redone if the query was re-executed with a
8685 new <varname>search_path</> setting, resulting in surprising behavior.
8692 linkend="functions-formatting-table"><function>to_number()</></link>
8693 to properly handle a period used as a thousands separator (Tom Lane)
8697 Previously, a period was considered to be a decimal point even when
8698 the locale says it isn't and the <literal>D</> format code is used to
8699 specify use of the locale-specific decimal point. This resulted in
8700 wrong answers if <literal>FM</> format was also used.
8706 Fix <literal>STRICT</> non-set-returning functions that have
8707 set-returning functions in their arguments to properly return null
8712 A null value passed to the strict function should result in a null
8713 output, but instead, that output row was suppressed entirely.
8719 Store <link linkend="wal"><acronym>WAL</></link> in a continuous
8720 stream, rather than skipping the last 16MB segment every 4GB
8721 (Heikki Linnakangas)
8725 Previously, <acronym>WAL</> files with names ending in <literal>FF</>
8726 were not used because of this skipping. If you have <acronym>WAL</>
8727 backup or restore scripts that took this behavior into account, they
8728 will need to be adjusted.
8735 linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
8736 store the default foreign key match type (non-<literal>FULL</>,
8737 non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
8742 Previously this case was represented by <literal>u</>
8743 for <quote>unspecified</>.
8754 <title>Changes</title>
8757 Below you will find a detailed account of the changes between
8758 <productname>PostgreSQL</productname> 9.3 and the previous major
8763 <title>Server</title>
8766 <title>Locking</title>
8772 Prevent non-key-field row updates from blocking foreign key checks
8773 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
8774 Shulgin, Marti Raudsepp, Alexander Shulgin)
8778 This change improves concurrency and reduces the probability of
8779 deadlocks when updating tables involved in a foreign-key constraint.
8780 <command>UPDATE</>s that do not change any columns referenced in a
8781 foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
8782 the row, while foreign key checks use the new <literal>KEY SHARE</>
8783 lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
8784 So there is no blocking unless a foreign-key column is changed.
8790 Add configuration variable <link
8791 linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
8792 allow limiting how long a session will wait to acquire any one lock
8793 (Zoltán Böszörményi)
8802 <title>Indexes</title>
8808 Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
8809 support for range data types (Alexander Korotkov)
8815 Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
8816 unlogged (Jeevan Chalke)
8822 Improve performance of <acronym>GiST</> index insertion by randomizing
8823 the choice of which page to descend to when there are multiple equally
8824 good alternatives (Heikki Linnakangas)
8830 Improve concurrency of hash index operations (Robert Haas)
8839 <title>Optimizer</title>
8845 Collect and use histograms of upper and lower bounds, as well as range
8846 lengths, for <link linkend="rangetypes">range types</link>
8847 (Alexander Korotkov)
8853 Improve optimizer's cost estimation for index access (Tom Lane)
8859 Improve optimizer's hash table size estimate for
8860 doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
8866 Suppress no-op Result and Limit plan nodes
8867 (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
8873 Reduce optimizer overhead by not keeping plans on the basis of cheap
8874 startup cost when the optimizer only cares about total cost overall
8884 <title>General Performance</title>
8890 Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
8891 option to avoid the overhead of marking tuples as frozen later
8892 (Simon Riggs, Jeff Davis)
8898 Improve performance of <link
8899 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
8906 Improve synchronization of sessions waiting for <link
8907 linkend="guc-commit-delay"><varname>commit_delay</></link>
8912 This greatly improves the usefulness of <varname>commit_delay</>.
8918 Improve performance of the <link
8919 linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
8920 COMMIT DELETE ROWS</></link> option by not truncating such temporary
8921 tables in transactions that haven't touched any temporary tables
8922 (Heikki Linnakangas)
8928 Make vacuum recheck visibility after it has removed expired tuples
8933 This increases the chance of a page being marked as all-visible.
8939 Add per-resource-owner lock caches (Jeff Janes)
8943 This speeds up lock bookkeeping at statement completion in
8944 multi-statement transactions that hold many locks; it is particularly
8945 useful for <application>pg_dump</>.
8951 Avoid scanning the entire relation cache at commit of a transaction
8952 that creates a new relation (Jeff Janes)
8956 This speeds up sessions that create many tables in successive
8957 small transactions, such as a <application>pg_restore</> run.
8963 Improve performance of transactions that drop many relations
8973 <title>Monitoring</title>
8979 Add optional ability to <link
8980 linkend="app-initdb-data-checksums">checksum</link> data pages and
8981 report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
8985 The checksum option can be set during <link
8986 linkend="APP-INITDB">initdb</link>.
8992 Split the <link linkend="monitoring-stats">statistics collector's</link>
8993 data file into separate global and per-database files (Tomas Vondra)
8997 This reduces the I/O required for statistics tracking.
9003 Fix the statistics collector to operate properly in cases where the
9004 system clock goes backwards (Tom Lane)
9008 Previously, statistics collection would stop until the time again
9009 reached the latest time previously recorded.
9015 Emit an informative message to postmaster standard error when we
9016 are about to stop logging there
9021 This should help reduce user confusion about where to look for log
9022 output in common configurations that log to standard error only during
9032 <title>Authentication</title>
9038 When an authentication failure occurs, log the relevant
9039 <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
9040 line, to ease debugging of unintended failures
9047 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
9048 reporting and documentation (Peter Eisentraut)
9054 Add support for specifying <acronym>LDAP</> authentication parameters
9055 in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
9062 linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
9063 to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
9064 then remove insecure ciphers (Magnus Hagander)
9068 This should yield a more appropriate SSL cipher set.
9074 Parse and load <link
9075 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
9076 once, not during each connection (Amit Kapila)
9080 This is similar to how <filename>pg_hba.conf</> is processed.
9089 <title>Server Settings</title>
9095 Greatly reduce System V <link linkend="sysvipc">shared
9096 memory</link> requirements (Robert Haas)
9100 On Unix-like systems, <function>mmap()</> is now used for most
9101 of <productname>PostgreSQL</>'s shared memory. For most users, this
9102 will eliminate any need to adjust kernel parameters for shared memory.
9108 Allow the postmaster to listen on multiple Unix-domain sockets
9109 (Honza Horák)
9113 The configuration parameter
9114 <varname>unix_socket_directory</> is replaced by <link
9115 linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
9116 which accepts a list of directories.
9122 Allow a directory of configuration files to be processed (Magnus
9123 Hagander, Greg Smith, Selena Deckelmann)
9127 Such a directory is specified with <link
9128 linkend="config-includes"><varname>include_dir</></link> in the server
9135 Increase the maximum <link
9136 linkend="APP-INITDB">initdb</link>-configured value for <link
9137 linkend="guc-shared-buffers"><varname>shared_buffers</></link>
9138 to 128MB (Robert Haas)
9142 This is the maximum value that initdb will attempt to set in <link
9143 linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
9144 the previous maximum was 32MB.
9150 Remove the <link linkend="guc-external-pid-file">external
9151 <acronym>PID</> file</link>, if any, on postmaster exit
9163 <title>Replication and Recovery</title>
9169 Allow a streaming replication standby to <link
9170 linkend="protocol-replication">follow a timeline switch</link>
9171 (Heikki Linnakangas)
9175 This allows streaming standby servers to receive WAL data from a slave
9176 newly promoted to master status. Previously, other standbys would
9177 require a resync to begin following the new master.
9183 Add <acronym>SQL</> functions <link
9184 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
9186 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
9191 These functions report the status of base backups.
9197 Improve performance of streaming log shipping with <link
9198 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
9199 disabled (Andres Freund)
9205 Allow much faster promotion of a streaming standby to primary (Simon
9206 Riggs, Kyotaro Horiguchi)
9212 Add the last checkpoint's redo location to <link
9213 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
9214 output (Fujii Masao)
9218 This information is useful for determining which <acronym>WAL</>
9219 files are needed for restore.
9225 Allow tools like <link
9226 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
9227 to run on computers with different architectures (Heikki
9232 WAL files can still only be replayed on servers with the same
9233 architecture as the primary; but they can now be transmitted to and
9234 stored on machines of any architecture, since the
9235 streaming replication protocol is now machine-independent.
9242 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
9243 <option>--write-recovery-conf</> output a
9244 minimal <filename>recovery.conf</> file (Zoltán
9245 Böszörményi, Magnus Hagander)
9249 This simplifies setting up a standby server.
9256 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
9258 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
9259 <option>--xlog-method</> to handle streaming timeline switches
9260 (Heikki Linnakangas)
9267 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
9268 parameter to control the <acronym>WAL</> receiver's timeout
9273 This allows more rapid detection of connection failure.
9279 Change the <link linkend="wal"><acronym>WAL</></link> record format to
9280 allow splitting the record header across pages (Heikki Linnakangas)
9284 The new format is slightly more compact, and is more efficient to
9294 <title>Queries</title>
9300 Implement <acronym>SQL</>-standard <link
9301 linkend="queries-lateral"><literal>LATERAL</></link> option for
9302 <literal>FROM</>-clause subqueries and function calls (Tom Lane)
9306 This feature allows subqueries and functions in <literal>FROM</> to
9307 reference columns from other tables in the <literal>FROM</>
9308 clause. The <literal>LATERAL</> keyword is optional for functions.
9314 Add support for piping <link
9315 linkend="SQL-COPY"><command>COPY</></link> and <link
9316 linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
9317 data to/from an external program (Etsuro Fujita)
9323 Allow a multirow <link
9324 linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
9325 to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
9334 <title>Object Manipulation</title>
9340 Add support for <link linkend="event-triggers">event triggers</link>
9341 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
9345 This allows server-side functions written in event-enabled
9346 languages to be called when DDL commands are run.
9352 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
9353 wrappers</link> to support writes (inserts/updates/deletes) on foreign
9354 tables (KaiGai Kohei)
9360 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
9361 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
9367 Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
9368 OWNED</></link> also change ownership of shared objects
9369 (Álvaro Herrera)
9375 Make <link linkend="sql-createaggregate"><command>CREATE
9376 AGGREGATE</></link> complain if the given initial value string is not
9377 valid input for the transition datatype (Tom Lane)
9383 Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
9384 TABLE</></link>'s messages about implicit index and sequence creation
9389 These messages now appear at <literal>DEBUG1</> verbosity, so that
9390 they will not be shown by default.
9396 Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
9397 EXISTS</></link> to succeed when a non-existent schema is specified
9398 in the table name (Bruce Momjian)
9402 Previously, it threw an error if the schema did not exist.
9408 Provide clients with <link
9409 linkend="libpq-pqresulterrorfield">constraint violation details</link>
9410 as separate fields (Pavel Stehule)
9414 This allows clients to retrieve table, column, data type, or
9415 constraint name error details. Previously such information had to be
9416 extracted from error strings. Client library support is required to
9417 access these fields.
9424 <title><command>ALTER</></title>
9430 Support <literal>IF NOT EXISTS</> option in <link
9431 linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
9436 This is useful for conditionally adding values to enumerated types.
9442 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
9443 SET</></link> to establish settings for all users (Peter Eisentraut)
9447 This allows settings to apply to all users in all databases. <link
9448 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
9449 already allowed addition of settings for all users in a single
9450 database. <filename>postgresql.conf</> has a similar effect.
9456 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
9457 ... RENAME</></link> (Ali Dar)
9466 <title><link linkend="rules-views"><command>VIEWs</></link></title>
9472 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
9473 views</link> (Kevin Grittner)
9477 Unlike ordinary views, where the base tables are read on every access,
9478 materialized views create physical tables at creation or refresh time.
9479 Access to the materialized view then reads from its physical
9480 table. There is not yet any facility for incrementally refreshing
9481 materialized views or auto-accessing them via base table access.
9487 Make simple views <link
9488 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
9493 Simple views that reference some or all columns from a
9494 single base table are now updatable by default. More
9495 complex views can be made updatable using <link
9496 linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
9497 or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
9503 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
9504 VIEW</></link> syntax (Peter Eisentraut)
9508 Internally this is translated into <command>CREATE VIEW ... WITH
9515 Improve view/rule printing code to handle cases where referenced
9516 tables are renamed, or columns are renamed, added, or dropped
9521 Table and column renamings can produce cases where, if we merely
9522 substitute the new name into the original text of a rule or view, the
9523 result is ambiguous. This change fixes the rule-dumping code to insert
9524 manufactured table and column aliases when needed to preserve the
9536 <title>Data Types</title>
9542 Increase the maximum size of <link linkend="largeObjects">large
9543 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
9547 This change includes adding 64-bit-capable large object access
9548 functions, both in the server and in libpq.
9554 Allow text <link linkend="datatype-timezones">timezone
9555 designations</link>, e.g. <quote>America/Chicago</>, in the
9556 <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
9557 input (Bruce Momjian)
9564 <title><link linkend="datatype-json"><type>JSON</></link></title>
9570 Add <link linkend="functions-json">operators and functions</link>
9571 to extract elements from <type>JSON</> values (Andrew Dunstan)
9577 Allow <type>JSON</> values to be <link
9578 linkend="functions-json">converted into records</link>
9585 Add <link linkend="functions-json">functions</link> to convert
9586 scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
9599 <title>Functions</title>
9606 linkend="array-functions-table"><function>array_remove()</></link>
9608 linkend="array-functions-table"><function>array_replace()</></link>
9609 functions (Marco Nenciarini, Gabriele Bartolini)
9616 linkend="functions-string-other"><function>concat()</></link>
9618 linkend="functions-string-format"><function>format()</></link>
9619 to properly expand <literal>VARIADIC</>-labeled arguments
9627 linkend="functions-string-format"><function>format()</></link>
9628 to provide field width and left/right alignment options (Pavel Stehule)
9635 linkend="functions-formatting-table"><function>to_char()</></link>,
9637 linkend="functions-formatting-table"><function>to_date()</></link>,
9639 linkend="functions-formatting-table"><function>to_timestamp()</></link>
9640 handle negative (BC) century values properly
9645 Previously the behavior was either wrong or inconsistent
9646 with positive/<acronym>AD</> handling, e.g. with the format mask
9647 <quote>IYYY-IW-DY</>.
9654 linkend="functions-formatting-table"><function>to_date()</></link>
9656 linkend="functions-formatting-table"><function>to_timestamp()</></link>
9657 return proper results when mixing <acronym>ISO</> and Gregorian
9658 week/day designations (Bruce Momjian)
9665 linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
9666 to start a new line by default after each <literal>SELECT</> target
9667 list entry and <literal>FROM</> entry (Marko Tiikkaja)
9671 This reduces line length in view printing, for instance in <link
9672 linkend="APP-PGDUMP"><application>pg_dump</></link> output.
9678 Fix <function>map_sql_value_to_xml_value()</> to print values of
9679 domain types the same way their base type would be printed
9684 There are special formatting rules for certain built-in types such as
9685 <type>boolean</>; these rules now also apply to domains over these
9695 <title>Server-Side Languages</title>
9698 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
9704 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
9705 expression (Asif Rehman)
9709 Previously, in a function returning a composite type,
9710 <literal>RETURN</> could only reference a variable of that type.
9716 Allow PL/pgSQL to access <link
9717 linkend="plpgsql-exception-diagnostics">constraint violation
9718 details</link> as separate fields (Pavel Stehule)
9724 Allow PL/pgSQL to access the number of rows processed by
9725 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
9729 A <command>COPY</> executed in a PL/pgSQL function now updates the
9730 value retrieved by <link
9731 linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
9732 x = ROW_COUNT</></link>.
9738 Allow unreserved keywords to be used as identifiers everywhere in
9743 In certain places in the PL/pgSQL grammar, keywords had to be quoted
9744 to be used as identifiers, even if they were nominally unreserved.
9753 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
9759 Add PL/Python result object string handler (Peter Eisentraut)
9763 This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
9769 Make PL/Python convert OID values to a proper Python numeric type
9776 Handle <link linkend="spi"><acronym>SPI</></link> errors raised
9777 explicitly (with PL/Python's <literal>RAISE</>) the same as
9778 internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
9789 <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
9795 Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
9800 At the end of any failed subtransaction, the core SPI code now
9801 releases any SPI tuple tables that were created during that
9802 subtransaction. This avoids the need for SPI-using code to keep track
9803 of such tuple tables and release them manually in error-recovery code.
9804 Failure to do so caused a number of transaction-lifespan memory leakage
9805 issues in PL/pgSQL and perhaps other SPI clients. <link
9806 linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
9807 now protects itself against multiple freeing requests, so any existing
9808 code that did take care to clean up shouldn't be broken by this change.
9814 Allow <acronym>SPI</> functions to access the number of rows processed
9815 by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
9824 <title>Client Applications</title>
9830 Add command-line utility <link
9831 linkend="app-pg-isready"><application>pg_isready</></link> to
9832 check if the server is ready to accept connections (Phil Sorber)
9838 Support multiple <option>--table</> arguments for <link
9839 linkend="APP-PGRESTORE"><application>pg_restore</></link>,
9840 <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
9841 <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
9842 and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
9847 This is similar to the way <link
9848 linkend="APP-PGDUMP"><application>pg_dump</></link>'s
9849 <option>--table</> option works.
9855 Add <option>--dbname</> option to <link
9856 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
9857 linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
9859 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
9860 to allow specifying a connection string (Amit Kapila)
9866 Add libpq function <link
9867 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
9868 to return connection information (Zoltán
9869 Böszörményi, Magnus Hagander)
9876 <title><link linkend="APP-PSQL"><application>psql</></link></title>
9882 Adjust function cost settings so <application>psql</> tab
9883 completion and pattern searching are more efficient (Tom Lane)
9889 Improve <application>psql</>'s tab completion coverage (Jeff Janes,
9890 Dean Rasheed, Peter Eisentraut, Magnus Hagander)
9896 Allow the <application>psql</> <option>--single-transaction</>
9897 mode to work when reading from standard input (Fabien Coelho,
9902 Previously this option only worked when reading from a file.
9908 Remove <application>psql</> warning when connecting to an older
9909 server (Peter Eisentraut)
9913 A warning is still issued when connecting to a server of a newer major
9914 version than <application>psql</>'s.
9921 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
9927 Add <application>psql</> command <command>\watch</> to repeatedly
9928 execute a SQL command (Will Leinweber)
9934 Add <application>psql</> command <command>\gset</> to store query
9935 results in <application>psql</> variables (Pavel Stehule)
9941 Add <acronym>SSL</> information to <application>psql</>'s
9942 <command>\conninfo</> command (Alastair Turner)
9948 Add <quote>Security</> column to <application>psql</>'s
9949 <command>\df+</> output (Jon Erdman)
9955 Allow <application>psql</> command <command>\l</> to accept a database
9956 name pattern (Peter Eisentraut)
9962 In <application>psql</>, do not allow <command>\connect</> to
9963 use defaults if there is no active connection (Bruce Momjian)
9967 This might be the case if the server had crashed.
9973 Properly reset state after failure of a SQL command executed with
9974 <application>psql</>'s <literal>\g</> <replaceable>file</>
9979 Previously, the output from subsequent SQL commands would unexpectedly
9980 continue to go to the same file.
9989 <title>Output</title>
9995 Add a <literal>latex-longtable</> output format to
9996 <application>psql</> (Bruce Momjian)
10000 This format allows tables to span multiple pages.
10006 Add a <literal>border=3</> output mode to the <application>psql</>
10007 <literal>latex</> format (Bruce Momjian)
10013 In <application>psql</>'s tuples-only and expanded output modes, no
10014 longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
10020 In <application>psql</>'s unaligned, expanded output mode, no longer
10021 print an empty line for zero rows (Peter Eisentraut)
10032 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
10038 Add <application>pg_dump</> <option>--jobs</> option to dump tables in
10039 parallel (Joachim Wieland)
10045 Make <application>pg_dump</> output functions in a more predictable
10046 order (Joel Jacobson)
10052 Fix tar files emitted by <application>pg_dump</>
10053 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
10059 Add <option>--dbname</> option to <application>pg_dump</>, for
10060 consistency with other client commands (Heikki Linnakangas)
10064 The database name could already be supplied last without a flag.
10073 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
10079 Make initdb fsync the newly created data directory (Jeff Davis)
10083 This insures data integrity in event of a system crash shortly after
10084 initdb. This can be disabled by using <option>--nosync</>.
10090 Add initdb <option>--sync-only</> option to sync the data directory to durable
10091 storage (Bruce Momjian)
10095 This is used by <link
10096 linkend="pgupgrade"><application>pg_upgrade</></link>.
10102 Make initdb issue a warning about placing the data directory at the
10103 top of a file system mount point (Bruce Momjian)
10114 <title>Source Code</title>
10120 Add infrastructure to allow plug-in <link
10121 linkend="bgworker">background worker processes</link>
10122 (Álvaro Herrera)
10128 Create a centralized timeout <acronym>API</> (Zoltán
10129 Böszörményi)
10135 Create libpgcommon and move <function>pg_malloc()</> and other
10136 functions there (Álvaro Herrera, Andres Freund)
10140 This allows libpgport to be used solely for portability-related code.
10146 Add support for list links embedded in larger structs (Andres Freund)
10152 Use <literal>SA_RESTART</> for all signals,
10153 including <literal>SIGALRM</> (Tom Lane)
10159 Ensure that the correct text domain is used when
10160 translating <function>errcontext()</> messages
10161 (Heikki Linnakangas)
10167 Standardize naming of client-side memory allocation functions (Tom Lane)
10173 Provide support for <quote>static assertions</> that will fail at
10174 compile time if some compile-time-constant condition is not met
10175 (Andres Freund, Tom Lane)
10181 Support <function>Assert()</> in client-side code (Andrew Dunstan)
10187 Add decoration to inform the C compiler that some <function>ereport()</>
10188 and <function>elog()</> calls do not return (Peter Eisentraut,
10189 Andres Freund, Tom Lane, Heikki Linnakangas)
10195 Allow options to be passed to the regression
10196 test output comparison utility via <link
10197 linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
10204 Add isolation tests for <link
10205 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
10206 CONCURRENTLY</></link> (Abhijit Menon-Sen)
10212 Remove typedefs for <type>int2</>/<type>int4</> as they are better
10213 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
10219 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
10220 X</> (Peter Eisentraut)
10226 Remove <link linkend="configure">configure</link> flag
10227 <option>--disable-shared</>, as it is no longer supported
10234 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
10240 Provide Emacs macro to set Perl formatting to
10241 match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
10247 Run tool to check the keyword list whenever the backend grammar is
10254 Change the way <literal>UESCAPE</> is lexed, to significantly reduce
10255 the size of the lexer tables (Heikki Linnakangas)
10261 Centralize <application>flex</> and <application>bison</>
10262 <application>make</> rules (Peter Eisentraut)
10266 This is useful for <application>pgxs</> authors.
10272 Change many internal backend functions to return object <type>OID</>s
10273 rather than void (Dimitri Fontaine)
10277 This is useful for event triggers.
10283 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
10284 callbacks (Tom Lane)
10288 Loadable modules that use transaction callbacks might need modification
10289 to handle these new event types.
10296 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
10297 to produce a machine-readable description of a database object
10298 (Álvaro Herrera)
10304 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
10310 Implement a generic binary heap and use it for Merge-Append
10311 operations (Abhijit Menon-Sen)
10317 Provide a tool to help detect timezone abbreviation changes when
10318 updating the <filename>src/timezone/data</> files
10325 Add <application>pkg-config</> support for <application>libpq</>
10326 and <application>ecpg</> libraries (Peter Eisentraut)
10332 Remove <filename>src/tools/backend</>, now that the content is on
10333 the <productname>PostgreSQL</> wiki (Bruce Momjian)
10339 Split out <link linkend="wal"><acronym>WAL</></link> reading as
10340 an independent facility (Heikki Linnakangas, Andres Freund)
10346 Use a 64-bit integer to represent <link
10347 linkend="wal"><acronym>WAL</></link> positions
10348 (<structname>XLogRecPtr</>) instead of two 32-bit integers
10349 (Heikki Linnakangas)
10353 Generally, tools that need to read the <acronym>WAL</> format
10354 will need to be adjusted.
10360 Allow <link linkend="plpython">PL/Python</link> to support
10361 platform-specific include directories (Peter Eisentraut)
10367 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
10368 X</> to build against custom versions of <application>Python</>
10378 <title>Additional Modules</title>
10384 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
10385 data wrapper</link> contrib module to allow access to
10386 other <productname>Postgres</> servers (Shigeru Hanada)
10390 This foreign data wrapper supports writes.
10396 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
10397 contrib program (Andres Freund)
10403 Add support for indexing of regular-expression searches in
10404 <link linkend="pgtrgm"><productname>pg_trgm</></link>
10405 (Alexander Korotkov)
10411 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
10412 handling of multibyte characters (Tom Lane)
10416 On a platform that does not have the wcstombs() or towlower() library
10417 functions, this could result in an incompatible change in the contents
10418 of <productname>pg_trgm</> indexes for non-ASCII data. In such cases,
10419 <command>REINDEX</> those indexes to ensure correct search results.
10425 Add a <link linkend="pgstattuple">pgstattuple</link> function to report
10426 the size of the pending-insertions list of a <acronym>GIN</> index
10433 Make <link linkend="oid2name"><application>oid2name</></link>,
10434 <link linkend="pgbench"><application>pgbench</></link>, and
10435 <link linkend="vacuumlo"><application>vacuumlo</></link> set
10436 <varname>fallback_application_name</> (Amit Kapila)
10442 Improve output of <link
10443 linkend="pgtesttiming"><application>pg_test_timing</></link>
10450 Improve output of <link
10451 linkend="pgtestfsync"><application>pg_test_fsync</></link>
10458 Create a dedicated foreign data wrapper, with its own option validator
10459 function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
10463 When using this FDW to define the target of a <application>dblink</>
10464 connection, instead of using a hard-wired list of connection options,
10465 the underlying <application>libpq</> library is consulted to see what
10466 connection options it supports.
10473 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
10479 Allow <application>pg_upgrade</> to do dumps and restores in
10480 parallel (Bruce Momjian, Andrew Dunstan)
10484 This allows parallel schema dump/restore of databases, as well as
10485 parallel copy/link of data files per tablespace. Use the
10486 <option>--jobs</> option to specify the level of parallelism.
10492 Make <application>pg_upgrade</> create Unix-domain sockets in
10493 the current directory (Bruce Momjian, Tom Lane)
10497 This reduces the possibility that someone will accidentally connect
10498 during the upgrade.
10504 Make <application>pg_upgrade</> <option>--check</> mode properly
10505 detect the location of non-default socket directories (Bruce
10512 Improve performance of <application>pg_upgrade</> for databases
10513 with many tables (Bruce Momjian)
10519 Improve <application>pg_upgrade</>'s logs by showing
10520 executed commands (Álvaro Herrera)
10526 Improve <application>pg_upgrade</>'s status display during
10527 copy/link (Bruce Momjian)
10536 <title><link linkend="pgbench"><application>pgbench</></link></title>
10542 Add <option>--foreign-keys</> option to <application>pgbench</>
10547 This adds foreign key constraints to the standard tables created by
10548 <application>pgbench</>, for use in foreign key performance testing.
10554 Allow <application>pgbench</> to aggregate performance statistics
10555 and produce output every <option>--aggregate-interval</>
10556 seconds (Tomas Vondra)
10562 Add <application>pgbench</> <option>--sampling-rate</> option
10563 to control the percentage of transactions logged (Tomas Vondra)
10569 Reduce and improve the status message output of
10570 <application>pgbench</>'s initialization mode (Robert Haas,
10577 Add <application>pgbench</> <option>-q</> mode to print one output
10578 line every five seconds (Tomas Vondra)
10584 Output <application>pgbench</> elapsed and estimated remaining
10585 time during initialization (Tomas Vondra)
10591 Allow <application>pgbench</> to use much larger scale factors,
10592 by changing relevant columns from <type>integer</> to <type>bigint</>
10593 when the requested scale factor exceeds 20000
10605 <title>Documentation</title>
10611 Allow <productname>EPUB</>-format documentation to be created
10618 Update <productname>FreeBSD</> kernel configuration documentation
10625 Improve <link linkend="tutorial-window"><literal>WINDOW</>
10626 function</link> documentation (Bruce Momjian, Florian Pflug)
10632 Add <link linkend="docguide-toolsets">instructions</link> for setting
10633 up the documentation tool chain on Mac <productname>OS X</>
10641 linkend="guc-commit-delay"><varname>commit_delay</></link>
10642 documentation (Peter Geoghegan)